public AgendaExameDisponivelDTO PesquisarHorarioDisponivelExame(PesquisaAgendaDTO request) { var lista = new List <AgendaExameDisponivelDTO>(); var listaHorarios = db.GetCollection <Horario>(typeof(Horario).Name).Find(_ => true).ToList(); var listaAgenda = db.GetCollection <Agenda>(typeof(Agenda).Name).Find(x => x.Data == request.Data && x.CodigoTipoExame == request.CodigoServico).ToList(); listaAgenda.ForEach(agendaItem => listaHorarios.RemoveAll(x => x.Codigo == agendaItem.CodigoHorario)); return(new AgendaExameDisponivelDTO { CodigoTipoExame = request.CodigoServico.ToString(), Data = request.Data, Horarios = listaHorarios }); }
public List <AgendaConsultaDisponivelDTO> PesquisarHorarioDisponivelConsulta(PesquisaAgendaDTO request) { var filterBuilder = Builders <Agenda> .Filter; var filters = new List <FilterDefinition <Agenda> >(); var lista = new List <AgendaConsultaDisponivelDTO>(); var listaHorarios = db.GetCollection <Horario>(typeof(Horario).Name).Find(_ => true).ToList(); var listaMedicos = db.GetCollection <Medico>(typeof(Medico).Name).Find(x => x.CodigoEspecialidade == request.CodigoServico).ToList(); filters.Add(filterBuilder.Eq("Data", request.Data)); filters.Add(filterBuilder.In("CodigoMedico", listaMedicos.Select(x => x.Codigo))); var listaAgenda = db.GetCollection <Agenda>(typeof(Agenda).Name).Find(filterBuilder.And(filters)).ToList(); listaMedicos.ForEach(medicoItem => { var listaHorariosAux = listaHorarios.Select(x => x).ToList(); var agendaMedico = listaAgenda.FindAll(x => x.CodigoMedico == medicoItem.Codigo); agendaMedico.ForEach(agendaItem => listaHorariosAux.RemoveAll(x => x.Codigo == agendaItem.CodigoHorario)); lista.Add(new AgendaConsultaDisponivelDTO { CodigoMedico = medicoItem.Codigo, NomeMedico = medicoItem.Nome, Crm = medicoItem.CRM, Data = request.Data, Horarios = listaHorariosAux }); }); return(lista); }
public AgendaExameDisponivelDTO ListarOpcoesExame([FromQuery] PesquisaAgendaDTO request) { request.CodigoTipoAgenda = 2; return(this.Action.PesquisarHorarioDisponivelExame(request)); }
public IEnumerable <AgendaConsultaDisponivelDTO> ListarOpcoesConsulta([FromQuery] PesquisaAgendaDTO request) { request.CodigoTipoAgenda = 1; return(this.Action.PesquisarHorarioDisponivelConsulta(request)); }