public async Task <IActionResult> Create(Consulta consulta) { if (!ModelState.IsValid) { var medicos = await _medicoService.FindAllAsync(); var viewModel = new ConsultaFormViewModel { Consulta = consulta, Medicos = medicos }; return(View(viewModel)); } //A data final não pode ser menor que a data inicial if (consulta.DiaHoraFinalConsulta <= consulta.DiaHoraInicialConsulta) { return(RedirectToAction(nameof(Error), new { message = "Dia e hora final da consulta não permitido" })); } //O sistema não deve permitir o agendamento de duas ou mais consultas no mesmo range de datas var obj = await _consultaService.FindByDateAsync(consulta.DiaHoraInicialConsulta, consulta.DiaHoraFinalConsulta, consulta.MedicoId); if (obj == null) { await _consultaService.InsertAsync(consulta); return(RedirectToAction(nameof(Index))); } else { return(RedirectToAction(nameof(Error), new { message = "Data e hora já agendada para este médico" })); } }
public async Task <IActionResult> SimpleSearch(DateTime?minDate, DateTime?maxDate) { if (!minDate.HasValue) { minDate = new DateTime(DateTime.Now.Year, 1, 1); } if (!maxDate.HasValue) { maxDate = DateTime.Now; } ViewData["minDate"] = minDate.Value.ToString("yyyy-MM-dd"); ViewData["maxDate"] = maxDate.Value.ToString("yyyy-MM-dd"); var result = await _consultaService.FindByDateAsync(minDate, maxDate); return(View(result)); }