private List <Evento> BuscarEventos(SimuladorFormularioDeEvento filtro)
        {
            using (SportingTrainingEntities context = new SportingTrainingEntities())
            {
                context.Configuration.ProxyCreationEnabled = false;

                var consultaEventos = context.Eventos.AsQueryable();
                if (!string.IsNullOrEmpty(filtro.EstadoBusca))
                {
                    consultaEventos = consultaEventos.Where(x => x.Estado == filtro.EstadoBusca);
                }
                if (!string.IsNullOrEmpty(filtro.ModalidadeBusca))
                {
                    consultaEventos = consultaEventos.Where(x => x.Modalidade.Contains(filtro.ModalidadeBusca));
                }
                if (!string.IsNullOrEmpty(filtro.SituacaoBusca))
                {
                    consultaEventos = consultaEventos.Where(x => x.Situacao.ToUpper() == filtro.SituacaoBusca.ToUpper());
                }
                if (!string.IsNullOrEmpty(filtro.DataInicioBusca))
                {
                    DateTime dataInicioBusca = DateTime.Parse(filtro.DataInicioBusca);
                    consultaEventos = consultaEventos.Where(x => x.Data >= dataInicioBusca);
                }
                if (!string.IsNullOrEmpty(filtro.DataFimBusca))
                {
                    DateTime dataFimBusca = DateTime.Parse(filtro.DataFimBusca);
                    consultaEventos = consultaEventos.Where(x => x.Data <= dataFimBusca);
                }

                return(consultaEventos.ToList());
            }
        }
 public HttpResponseMessage ListarEventos([FromBody] SimuladorFormularioDeEvento filtro)
 {
     try
     {
         var           response       = new HttpResponseMessage(HttpStatusCode.OK);
         List <Evento> listaDeEventos = BuscarEventos(filtro);
         response.Content = new StringContent(JsonConvert.SerializeObject(listaDeEventos));
         response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
         return(response);
     }
     catch (Exception ex)
     {
         throw new Exception("", ex);
     }
 }
        public string CancelarEvento([FromBody] SimuladorFormularioDeEvento cancelamento, string token)
        {
            if (cancelamento.IdEvento != 0)
            {
                if (!string.IsNullOrEmpty(cancelamento.MotivoCancelamento))
                {
                    using (SportingTrainingEntities context = new SportingTrainingEntities())
                    {
                        try
                        {
                            Usuario usuarioSessao = usuarioController.UsuarioLogado(token);
                            if (usuarioSessao != null && usuarioSessao.TipoUsuario == "Administrador")
                            {
                                Evento eventoNoBanco = context.Eventos.FirstOrDefault(x => x.IdEvento == cancelamento.IdEvento);
                                eventoNoBanco.Situacao           = "Cancelado";
                                eventoNoBanco.MotivoCancelamento = cancelamento.MotivoCancelamento;

                                context.SaveChanges();
                                return("Evento cancelado com sucesso!");
                            }
                            else
                            {
                                return("Usuário de sessão inválido!");
                            }
                        }
                        catch (Exception ex)
                        {
                            throw new Exception("Erro ao cancelar evento", ex);
                        }
                    }
                }
                else
                {
                    return("Informe um motivo para cancelar o evento.");
                }
            }
            else
            {
                return("Evento inválido!");
            }
        }