view Agendas/trunk/src/Agendas.Repositories.Memory/EventoRepository.cs @ 214:7d838e7d83b3

Se soluciona ticket 176. Se agrega validación para que no se pueda agendar otro evento con el mismo título, buscando los eventos que no estén en estado propuesto.
author alabra
date Wed, 24 Aug 2011 19:49:18 -0300
parents a36a76bd6ec3
children c61954d24c8c
line wrap: on
line source

using System;
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.Ponente == 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();
		}
	}
}