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); } }
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); } }
public bool VerificarInscricao(InscricaoParticipanteEvento inscricao) { return(Db.ParticipanteEvento.Count(x => x.ParticipanteId == inscricao.ParticipanteId && x.EventoId == inscricao.EventoId) > 0); }