Exemplo n.º 1
0
        public IActionResult AgendaEndereco(int pIndiceInicial, string pRua, string pCidade, string pBairro, string pCEP, string pUF)
        {
            List <Endereco> enderecos = _ServiceEndereco.EnderecosCadastrados(
                Convert.ToInt32(User.Claims.FirstOrDefault(c => c.Type == Constantes.IDUsuarioLogado).ValueType),
                pRua,
                pCidade,
                pBairro,
                pCEP,
                pUF);

            List <EnderecoAlteracaoVM> enderecosVm = new List <EnderecoAlteracaoVM>();

            if (enderecos.Any())
            {
                enderecosVm = enderecos.Select(c => new EnderecoAlteracaoVM()
                {
                    ID          = c.IdEndereco,
                    Bairro      = c.Bairro,
                    CEP         = c.CEP,
                    Cidade      = c.Cidade,
                    Complemento = c.Complemento,
                    Logradouro  = c.Logradouro,
                    Numero      = c.Numero,
                    UF          = c.UF.GetDescription()
                }).ToList();
            }

            return(View(enderecosVm.Skip(pIndiceInicial).Take(Constantes.QuantidadeRegistrosPorPagina)));
        }
Exemplo n.º 2
0
        public IActionResult LocalizarNutricionista(int pIndiceInicial, string pRua, string pCidade, string pBairro, string pCEP, string pUF, DateTime pDataInicio, DateTime pDataFim, string pNomeNutricionista, string mensagem)
        {
            ViewData[Constantes.ViewDataMensagemRetorno]  = mensagem;
            ViewData[Constantes.ViewDataActionFiltro]     = "FiltroLocalizarNutricionista";
            ViewData[Constantes.ViewDataControllerFiltro] = "Contrato";

            List <Agenda> agendas        = _ServiceAgenda.AgendasCadastradas(pDataInicio, pDataFim, 0, true);
            List <int>    nutricionistas = new List <int>();

            if (agendas.Any(d => d.DataInicio > Constantes.DateTimeNow()))
            {
                agendas        = agendas.Where(d => d.DataInicio > Constantes.DateTimeNow() && _ServiceContrato.AgendaDisponivelParaContratar(d.IdAgenda)).ToList();
                nutricionistas = agendas
                                 .Where(d => d.DataInicio > Constantes.DateTimeNow())
                                 .Select(c => c.IdUsuario)
                                 .Distinct()
                                 .ToList();
            }
            else
            {
                agendas = new List <Agenda>();
            }

            List <Endereco> enderecos = new List <Endereco>();



            foreach (int nutricionista in nutricionistas)
            {
                if (string.IsNullOrEmpty(pNomeNutricionista) || _ServiceNutricionista.ConsultarNutricionistaPorID(nutricionista).Nome.Equals(pNomeNutricionista))
                {
                    enderecos.AddRange(_ServiceEndereco.EnderecosCadastrados(
                                           nutricionista,
                                           pRua,
                                           pCidade,
                                           pBairro,
                                           pCEP,
                                           pUF));
                }
            }

            List <EnderecoAlteracaoVM> enderecosVm = new List <EnderecoAlteracaoVM>();

            if (enderecos.Any())
            {
                enderecosVm = enderecos.Distinct().Select(c => new EnderecoAlteracaoVM()
                {
                    ID          = c.IdEndereco,
                    Bairro      = c.Bairro,
                    CEP         = c.CEP,
                    Cidade      = c.Cidade,
                    Complemento = c.Complemento,
                    Logradouro  = c.Logradouro,
                    Numero      = c.Numero,
                    UF          = c.UF.GetDefaultValue()
                }).ToList();
            }

            List <AgendaListaContratoVM> listaAgendas = new List <AgendaListaContratoVM>();

            if (agendas.Any(c => _ServiceContrato.AgendaDisponivelParaContratar(c.IdAgenda)) && enderecosVm.Any())
            {
                listaAgendas = agendas.Join(enderecosVm,
                                            a => a.IdEndereco,
                                            e => e.ID,
                                            (agenda, endereco) => new AgendaListaContratoVM()
                {
                    IdAgenda       = agenda.IdAgenda,
                    IdUsuario      = agenda.IdUsuario,
                    DataFim        = agenda.DataFim,
                    DataInicio     = agenda.DataInicio,
                    StatusDaAgenda = StatusAgendaEnum.Ativa,
                    Endereco       = endereco
                }).ToList();
            }

            return(View(listaAgendas.Skip(pIndiceInicial).Take(Constantes.QuantidadeRegistrosPorPagina).OrderByDescending(c => c.DataInicio)));
        }