public HttpResponseMessage Post(Evento obj)
 {
     try
     {
         _participanteRep.Add(obj);
         return(Request.CreateResponse(HttpStatusCode.OK, new { message = "Cadastrado com sucesso", success = true }));
     }
     catch (System.Exception e)
     {
         return(Request.CreateResponse(HttpStatusCode.InternalServerError, new { message = e.Message, success = false }));
     }
 }
예제 #2
0
        public async Task Add(Competicao competicao, Evento evento)
        {
            var db      = new EventoRepository(Unit);
            var criador = CriadorEvento.Get(competicao.EventoTipo);

            using (var tr = Unit.BeginTransaction())
            {
                await criador.Processar(Unit, competicao, evento);

                await db.Add(evento);

                tr.Commit();
            }
        }
예제 #3
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");
            }
        }