view Agendas/trunk/src/Agendas.Repositories.Memory/EventoRepository.cs @ 278:6f5ab71614d4

#125: ABM de patrocinadores.
author juanjose.montesdeocaarbos
date Wed, 21 Dec 2011 08:47:05 -0300
parents c61954d24c8c
children
line wrap: on
line source

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

namespace AltNetHispano.Agendas.Repositories.Memory
{
	public class EventoRepository : RepositoryBase<Evento>, IEventoRepository
	{
		public void Update(Evento evento)
		{
			//nada que hacer en este método para este repositorio
		}

	    public bool ExistePonente(Persona ponente)
	    {
	        return Objects.Values.Any(ev => ev.Ponentes.Contains(ponente));
	    }

	    public IList<Evento> GetByState(EventoState state)
		{
			return Objects.Values.Where(e => e.Estado == state).ToList();
		}

		public IList<Evento> GetActivos()
		{
			return
				Objects.Values.Where(
					e =>
					e.Estado != EventoPublicadoState.GetInstance()).ToList();
		}

		public Evento GetPropuestaByTitulo(string titulo)
		{
			return Objects.Values.SingleOrDefault(e => e.Estado == EventoPropuestoState.GetInstance() && e.Titulo == titulo);
		}

	    public Evento GetNoPropuestoByTitulo(string titulo)
	    {
	        return Objects.Values.SingleOrDefault(e => e.Titulo == titulo && e.Estado != EventoPropuestoState.GetInstance());
	    }

	    public static void Clear()
		{
			Objects.Clear();
		}
	}
}