public async Task <IActionResult> UpdateConsulta(int id, [FromBody] ConsultaForCreationDTO consulta) { try { if (consulta == null) { return(BadRequest("O objeto nulo")); } if (!ModelState.IsValid) { return(BadRequest("Objeto inválido")); } var consultaEntity = await _repository.Consulta.GetConsultaByIdAsync(id); if (consultaEntity == null) { return(NotFound()); } _mapper.Map(consulta, consultaEntity); _repository.Consulta.UpdateConsulta(consultaEntity); await _repository.SaveAsync(); return(NoContent()); } catch (Exception) { return(StatusCode(500, "Internal server error")); } }
public async Task <IActionResult> CreateConsulta([FromBody] ConsultaForCreationDTO consulta) { try { if (consulta == null) { return(BadRequest("O objeto nulo")); } if (!ModelState.IsValid) { return(BadRequest("Objeto inválido")); } var horaInicioConsulta = DateTime.ParseExact((consulta.dataConsulta + "-" + consulta.inicio), "yyyy-MM-dd-HH:mm", CultureInfo.InvariantCulture); var horaFimConsulta = DateTime.ParseExact((consulta.dataConsulta + "-" + consulta.fim), "yyyy-MM-dd-HH:mm", CultureInfo.InvariantCulture); var DataConsulta = DateTime.ParseExact((consulta.dataConsulta), "yyyy-MM-dd", CultureInfo.InvariantCulture); consulta.inicio = horaInicioConsulta.ToString(); consulta.fim = horaFimConsulta.ToString(); consulta.dataConsulta = DataConsulta.ToString(); if (horaFimConsulta < horaInicioConsulta) { return(BadRequest("A hora fim não pode ser menor que a hora de inicio")); } var consultas = await _repository.Consulta.GetConsultasByDataHora(horaInicioConsulta, horaFimConsulta, DataConsulta, consulta.medicoId); if (consultas.Any()) { return(BadRequest("Já existe uma consulta para este médico neste horário.")); } var consultaEntity = _mapper.Map <Consulta>(consulta); _repository.Consulta.CreateConsulta(consultaEntity); await _repository.SaveAsync(); var createdConsulta = _mapper.Map <ConsultaDTO>(consultaEntity); return(CreatedAtRoute("ConsultaById", new { id = createdConsulta.Id }, createdConsulta)); } catch (Exception) { return(StatusCode(500, "Internal server error")); } }