Exemple #1
0
        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"));
            }
        }
Exemple #2
0
        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"));
            }
        }