Esempio n. 1
0
        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
            });
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        public AgendaExameDisponivelDTO ListarOpcoesExame([FromQuery] PesquisaAgendaDTO request)
        {
            request.CodigoTipoAgenda = 2;

            return(this.Action.PesquisarHorarioDisponivelExame(request));
        }
Esempio n. 4
0
        public IEnumerable <AgendaConsultaDisponivelDTO> ListarOpcoesConsulta([FromQuery] PesquisaAgendaDTO request)
        {
            request.CodigoTipoAgenda = 1;

            return(this.Action.PesquisarHorarioDisponivelConsulta(request));
        }