示例#1
0
        public IActionResult ContratarNutricionista(int pIdAgenda, int pIdNutricionista)
        {
            List <Agenda>   agendas   = _ServiceAgenda.AgendasCadastradas(DateTime.MinValue, DateTime.MinValue, pIdNutricionista, true);
            List <Endereco> enderecos = _ServiceEndereco.EnderecosCadastrados(
                pIdNutricionista,
                string.Empty,
                string.Empty,
                string.Empty,
                string.Empty,
                string.Empty);

            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.GetDefaultValue()
                }).ToList();
            }

            AgendaListaContratoVM agendaContrato = null;

            if (agendas.Any(id => id.IdAgenda == pIdAgenda &&
                            id.IdUsuario == pIdNutricionista) && enderecosVm.Any() &&
                _ServiceContrato.AgendaDisponivelParaContratar(pIdAgenda))
            {
                agendaContrato = 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
                }).FirstOrDefault(id => id.IdAgenda == pIdAgenda &&
                                  id.IdUsuario == pIdNutricionista && _ServiceContrato.AgendaDisponivelParaContratar(id.IdAgenda));
            }

            if (agendaContrato == null)
            {
                return(RedirectToAction("LocalizarNutricionista", "Contrato"));
            }

            return(View(agendaContrato));
        }
示例#2
0
        public IActionResult ExcluirAgenda(AgendaListaContratoVM pModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(pModel));
                }

                _ServiceAgenda.InativarAgenda(pModel.IdAgenda);

                return(RedirectToAction("Index", "Agenda", new { mensagem = "Agenda excluída com sucesso!" }));
            }
            catch (Exception ex)
            {
                ViewData[Constantes.ViewDataMensagemErro] = ex.Message;
                return(View(pModel));
            }
        }
示例#3
0
        public IActionResult ContratarNutricionista(AgendaListaContratoVM pModel)
        {
            try
            {
                int idUsuario = Convert.ToInt32(User.Claims.FirstOrDefault(c => c.Type == Constantes.IDUsuarioLogado).ValueType);

                if (!ModelState.IsValid)
                {
                    return(View(pModel));
                }

                _ServiceContrato.ContratarNutricionista(
                    new Contrato(
                        pIdUsuario: idUsuario,
                        pIdNutricionista: pModel.IdUsuario,
                        pLogradouro: pModel.Endereco.Logradouro,
                        complemento: pModel.Endereco?.Complemento,
                        numero: pModel.Endereco?.Numero,
                        pBairro: pModel.Endereco.Bairro,
                        pCidade: pModel.Endereco.Cidade,
                        pUF: Enum.GetValues(typeof(UnidadeFederacaoEnum)).Cast <UnidadeFederacaoEnum>().FirstOrDefault(c => c.GetDefaultValue().Equals(pModel.Endereco.UF)),
                        pCEP: pModel.Endereco.CEP,
                        dataInicio: pModel.DataInicio,
                        dataTermino: pModel.DataFim,
                        status: ContratacaoNutricionistas.Domain.Enumerados.Contrato.StatusContratoEnum.PendenteAceitacaoNutricionista
                        )
                    );

                ViewData[Constantes.ViewDataMensagemRetorno] = $"Sua consulta foi agendada com sucesso!";

                return(RedirectToAction("ConsultasAgendadas", "Contrato", new { mensagem = ViewData[Constantes.ViewDataMensagemRetorno] }));
            }
            catch (Exception ex)
            {
                ViewData[Constantes.ViewDataMensagemErro] = ex.Message;
                return(View(pModel));
            }
        }
示例#4
0
        public IActionResult ExcluirAgenda(int ID)
        {
            List <Agenda> agendas = _ServiceAgenda.AgendasCadastradas(DateTime.MinValue, DateTime.MinValue,
                                                                      Convert.ToInt32(User.Claims.FirstOrDefault(c => c.Type == Constantes.IDUsuarioLogado).ValueType)
                                                                      , false);

            Agenda agenda = agendas.FirstOrDefault(c => c.IdAgenda == ID);

            if (agenda == null)
            {
                return(RedirectToAction("Index", "Agenda"));
            }

            Endereco endereco = _ServiceEndereco.ConsultarEnderecoNutricionistaPorID(agenda.IdEndereco, agenda.IdUsuario);

            AgendaListaContratoVM agendaVM = new AgendaListaContratoVM()
            {
                DataFim        = agenda.DataFim,
                DataInicio     = agenda.DataInicio,
                IdAgenda       = agenda.IdAgenda,
                IdUsuario      = agenda.IdUsuario,
                StatusDaAgenda = agenda.StatusAgenda,
                Endereco       = new EnderecoVM()
                {
                    Bairro      = endereco.Bairro,
                    CEP         = endereco.CEP,
                    Cidade      = endereco.Cidade,
                    Complemento = endereco?.Complemento,
                    Logradouro  = endereco?.Logradouro,
                    Numero      = endereco?.Numero,
                    UF          = endereco.UF.GetDefaultValue()
                }
            };

            return(View(agendaVM));
        }