Beispiel #1
0
        public string InscricaoEvento(InscricaoParticipanteEvento model)
        {
            try
            {
                var evento = Db.Evento.Find(model.EventoId);

                var eventoAluno = Db.ParticipanteEvento.Where(x => x.ParticipanteId == model.ParticipanteId).ToList();

                if (evento == null)
                {
                    throw new Exception("Evento não encotrado.");
                }
                else if (evento.NumeroVagas == 0)
                {
                    throw new Exception("Numero de vagas esgotadas");
                }
                else if (evento.Cancelado == true)
                {
                    throw new Exception("Evento cancelado, nâo e possivel realizar a inscrição.");
                }

                foreach (var item in eventoAluno)
                {
                    if (item.Evento.DataInicio == evento.DataInicio)
                    {
                        throw new Exception("Não e possivel realizar a inscrição em eventos que occoram na mesma hora.");
                    }
                }

                string codigo = CodigoUnico();

                ParticipanteEvento alunoEvento = new ParticipanteEvento()
                {
                    InscricaoPrevia     = true,
                    ConfirmacaoPresenca = false,
                    ParticipanteId      = model.ParticipanteId,
                    EventoId            = model.EventoId,
                    CodigoValidacao     = codigo
                };

                evento.NumeroVagas = evento.NumeroVagas - 1;


                Db.ParticipanteEvento.Add(alunoEvento);
                Db.SaveChanges();

                return("OK");
            }
            catch (Exception e)
            {
                return(e.Message);
            }
        }
Beispiel #2
0
        public string CancelaInscricaoEvento(InscricaoParticipanteEvento inscricao)
        {
            try
            {
                var evento       = Db.Evento.Find(inscricao.EventoId);
                var participante = Db.Participante.Find(inscricao.ParticipanteId);

                if (evento == null)
                {
                    throw new Exception("evento nao encontrado.");
                }
                if (participante == null)
                {
                    throw new Exception("Particpante não encontrado.");
                }

                var resultado = Db.ParticipanteEvento.First(x => x.ParticipanteId == inscricao.ParticipanteId && x.EventoId == inscricao.EventoId);

                if (resultado == null)
                {
                    throw new Exception("Não a inscricao desse participante nesse evento.");
                }


                Db.ParticipanteEvento.Remove(resultado);
                Db.SaveChanges();

                evento.NumeroVagas = evento.NumeroVagas + 1;

                Db.SaveChanges();
                return("OK");
            }
            catch (Exception e)
            {
                return(e.Message);
            }
        }
Beispiel #3
0
 public bool VerificarInscricao(InscricaoParticipanteEvento inscricao)
 {
     return(Db.ParticipanteEvento.Count(x => x.ParticipanteId == inscricao.ParticipanteId && x.EventoId == inscricao.EventoId) > 0);
 }