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; } }
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; } }