view Agendas/trunk/src/Agendas.Repositories.NHibernate/PonenteRepository.cs @ 298:9bc60d166c8a

Se corrigieron los tests por el cambio de Patrocinador, para que no persista el logo en disco. Se comentó el código de PatrocinadorApiController, que no se utiliza.
author juanjose.montesdeocaarbos
date Sun, 19 Feb 2012 16:00:38 -0300
parents 50442a103281
children
line wrap: on
line source

using System;
using System.Collections;
using System.Collections.Generic;
using AltNetHispano.Agendas.Domain;
using AltNetHispano.Agendas.Domain.Repositories;
using NHibernate;

namespace AltNetHispano.Agendas.Repositories.NHibernate
{
	public class PersonaRepository : RepositoryBase<Persona>, IPersonaRepository
	{
		public PersonaRepository(ISessionFactory sessionFactory) : base(sessionFactory)
		{
		}

		public IList<Persona> GetAll()
		{
            var personas = Session.QueryOver<Persona>().List();
            ((List<Persona>)personas).Sort((first, second) => first.Nombre.CompareTo(second.Nombre));

		    return personas;
		}

		public Persona GetByNombre(string ponenteNombre)
		{
			return Session.QueryOver<Persona>().Where(p => p.Nombre == ponenteNombre).SingleOrDefault();
		}

		public Cuenta GetCuenta(IdentityProviderEnum identityProvider, string username)
		{
			return
				Session.QueryOver<Cuenta>().Where(c => c.IdentityProvider == identityProvider && c.LogonName == username).
					SingleOrDefault();
		}

	    public Persona GetByTwitter(string username)
	    {
	        return Session.QueryOver<Persona>().Where(p => p.Twitter == username).SingleOrDefault();
	    }

	    public void Delete(Persona persona)
	    {
	        Session.Delete(persona);
	    }
	}
}