public async Task <IActionResult> Create(Paciente paciente)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(RedirectToAction(nameof(Erro), new { mensagem = "Erro durante processamento. Verifique os dados informados e tente novamente" }));
                }

                await _pacienteService.AdicionarPacienteAsync(paciente);

                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#2
0
        public async Task <IActionResult> AgendarConsulta(ConsultaFormViewModel agendamentoConsulta, IFormCollection form)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    List <Medico> medicos = await _medicoService.GetAllMedicos();

                    ConsultaFormViewModel consultaFormViewModel = new ConsultaFormViewModel
                    {
                        Consulta = agendamentoConsulta.Consulta,
                        Medico   = agendamentoConsulta.Medico
                    };

                    return(View(consultaFormViewModel));
                }

                agendamentoConsulta.Consulta.ConsultaSituacaoId = (int)ConsultaSituacaoEnum.Pendente;
                int idMedico = Convert.ToInt32(Request.Form["Medicos"]);
                agendamentoConsulta.Consulta.Medico = await _medicoService.ObterMedicoByIdAsync(idMedico);

                if (await _consultaService.VerificaDuplicidadeDeConsultaPorMedicoeHorario(agendamentoConsulta.Consulta))
                {
                    return(RedirectToAction(nameof(Erro), new { mensagem = "Já existe consulta marcada para a data e horário informados com o mesmo médico" }));
                }

                if (!_pacienteService.ExistePacienteByNomeAsync(agendamentoConsulta.Paciente.Nome))
                {
                    await _pacienteService.AdicionarPacienteAsync(agendamentoConsulta.Paciente);
                }

                agendamentoConsulta.Consulta.Paciente = await _pacienteService.ObterPacienteByNomeAsync(agendamentoConsulta.Paciente.Nome);

                await _consultaService.AddConsultaAsync(agendamentoConsulta.Consulta);

                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }