Exemple #1
0
        public async Task <IActionResult> Get(int id)
        {
            var db     = new EventoRepository(Service.Unit);
            var evento = await db.Find(id);

            return(Ok(evento));
        }
Exemple #2
0
        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);
            }
        }