public IActionResult GetConsultasByFilter([FromQuery] ConsultasFilterDTO consultas, [FromQuery] int pg, [FromQuery] int itensPg, [FromQuery] string sort, [FromQuery] int sortOrder) { try { return(Ok(_consultaBusiness.GetConsultasByFilter(consultas, pg, itensPg, sort, sortOrder))); } catch (Exception ex) { return(BadRequest("Ocorreu um erro ao tentar listar as consultas!", ex)); } }
public RetornoPaginacao GetConsultasByFilter(ConsultasFilterDTO consultas, int pg, int itensPg, string sort, int sortOrder) { IQueryable <RetornoConsultasDTO> resConsultas = ( from c in _bdTesteITIX.Consulta where ( (consultas.MedicoId != null ? c.MedicoId == consultas.MedicoId : true) && (consultas.DataInicialConsulta != null ? c.DataInicialConsulta >= consultas.DataInicialConsulta : true) && (consultas.DataFinalConsulta != null ? c.DataFinalConsulta <= consultas.DataFinalConsulta : true) && (consultas.DataNascimento != null ? c.DataNascimento == consultas.DataNascimento : true) && (consultas.NomePaciente != null ? c.Observacoes.Contains(consultas.NomePaciente) : true) && (consultas.Observacoes != null ? c.Observacoes.Contains(consultas.Observacoes) : true) ) select new RetornoConsultasDTO() { Id = c.Id, NomePaciente = c.NomePaciente, Observacoes = c.Observacoes, DataNascimento = c.DataNascimento, DataInicialConsulta = c.DataInicialConsulta, DataFinalConsulta = c.DataFinalConsulta, MedicoId = c.MedicoId, } ); if (sort != null) { switch (sort) { case "nomePaciente": resConsultas = (sortOrder == 1 ? resConsultas.OrderBy(a => a.NomePaciente).ThenBy(a => a.NomePaciente) : resConsultas.OrderByDescending(a => a.NomePaciente).ThenByDescending(a => a.NomePaciente)); break; case "observacoes": resConsultas = (sortOrder == 1 ? resConsultas.OrderBy(a => a.Observacoes) : resConsultas.OrderByDescending(a => a.Observacoes)); break; case "dataNascimento": resConsultas = (sortOrder == 1 ? resConsultas.OrderBy(a => a.DataNascimento.Value.Date) : resConsultas.OrderByDescending(a => a.DataNascimento.Value.Date)); break; case "dataInicialConsulta": resConsultas = (sortOrder == 1 ? resConsultas.OrderBy(a => a.DataInicialConsulta.Value.Date) : resConsultas.OrderByDescending(a => a.DataInicialConsulta.Value.Date)); break; case "dataFinalConsulta": resConsultas = (sortOrder == 1 ? resConsultas.OrderBy(a => a.DataFinalConsulta.Value.Date) : resConsultas.OrderByDescending(a => a.DataFinalConsulta.Value.Date)); break; case "medico": resConsultas = (sortOrder == 1 ? resConsultas.OrderBy(a => a.MedicoId) : resConsultas.OrderByDescending(a => a.MedicoId)); break; default: resConsultas = resConsultas.OrderBy(r => r.DataInicialConsulta.Value.Date).OrderByDescending(r => r.DataInicialConsulta.Value.Date); break; } } else { resConsultas = resConsultas.OrderBy(r => r.DataInicialConsulta.Value.Date).OrderByDescending(r => r.DataInicialConsulta.Value.Date); } var retorno = new RetornoPaginacao(pg, itensPg > 0 ? itensPg : _itensPorPaginaPadrao, resConsultas); return(retorno); }
public RetornoPaginacao GetConsultasByFilter(ConsultasFilterDTO consultas, int pg, int itensPg, string sort, int sortOrder) { return(_consultaData.GetConsultasByFilter(consultas, pg, itensPg, sort, sortOrder)); }