public IHttpActionResult GetPorFiltro([FromUri] string dataDe, [FromUri] string dataAte, [FromUri] int tipo, [FromUri] int idLocal, [FromUri] int idCategoria, [FromUri] string obs) { EntidadesResponse <ReservaTO> response = new EntidadesResponse <ReservaTO>(); try { DateTime?dateTimeDe = null, dateTimeAte = null; if (dataDe != null && dataDe.Length > 0) { dateTimeDe = DateTime.ParseExact(dataDe, "dd/MM/yyyy", CultureInfo.InvariantCulture); } if (dataAte != null && dataAte.Length > 0) { dateTimeAte = DateTime.ParseExact(dataAte, "dd/MM/yyyy", CultureInfo.InvariantCulture); } List <Reserva> reservas = Reserva.ConsultarPorFiltro(dateTimeDe, dateTimeAte, tipo, idLocal, idCategoria, obs); foreach (Reserva r in reservas) { ReservaTO rTO = new ReservaTO(); rTO.Id = r.Id; rTO.Data = r.Data.ToString("dd/MM/yyyy"); rTO.Horario = r.Horario; rTO.Turno = r.Turno; rTO.Obs = r.Obs; rTO.ReservadoEm = r.ReservadoEm.ToString("dd/MM/yyyy HH:mm"); rTO.IdLocal = r.Local.Id; rTO.NomeLocal = r.Local.Nome; rTO.IdUsuario = r.Usuario.Id; rTO.NomeUsuario = r.Usuario.Nome; rTO.EmailUsuario = r.Usuario.Email; rTO.ComentarioUsuario = r.ComentarioUsuario; rTO.Satisfacao = r.Satisfacao.HasValue ? r.Satisfacao.Value : 0; rTO.ExibeAvaliacao = DateTime.Now > r.Data; rTO.Equipamentos = new List <string>(); rTO.IdEquipamentos = new List <int>(); foreach (CategoriaEquipamento ce in r.CategoriasEquipamentos) { rTO.IdEquipamentos.Add(ce.Id); rTO.Equipamentos.Add(ce.Nome); } response.Elementos.Add(rTO); } } catch (EntidadesException eex) { response.Status = (int)eex.Codigo; response.Detalhes = eex.Message; } catch (Exception ex) { response.Status = -1; response.Detalhes = ex.Message; } return(Ok(response)); }