public async Task <IActionResult> Get(int id) { var db = new EventoRepository(Service.Unit); var evento = await db.Find(id); return(Ok(evento)); }
public async Task <Evento> Adicionar(Evento entity) { var sala = salaRepository.Find(entity.IdSala); if (sala != null) { var eventos = repository.Find(ev => (entity.DataInicio.Date >= ev.DataInicio.Date && entity.DataInicio.Date <= ev.DataFim.Date) || // Evento novo inicia durante outro evento (entity.DataFim.Date >= ev.DataInicio.Date && entity.DataFim.Date <= ev.DataFim.Date) || // Evento novo termina durante outro evento (entity.DataInicio.Date <ev.DataInicio.Date && entity.DataFim.Date> ev.DataFim.Date)).ToList(); // Evento novo começa antes e termina depois de um evento if (!eventos.Any()) { return(await repository.Add(entity)); } else { throw new Exception("A duração de um evento não pode sobrepor outro"); } } else { throw new Exception("Sala não encontrada"); } }
public async Task AddAgrupamentos(int eventoId, IEnumerable <EventoAgrupamento> data) { var db = new EventoRepository(Unit); var agrdb = new AgrupamentoRepository(Unit); var eagrdb = new EventoAgrupamentoRepository(Unit); var evento = await db.Find(eventoId); foreach (var item in data) { item.Evento = evento; if (item.Agrupamento.Id <= 0) { await agrdb.Add(item.Agrupamento); } else { item.Agrupamento = await agrdb.Find(item.Agrupamento.Id); } await eagrdb.Add(item); } }