public async Task <ActionResult> PutParqueAsync(int id, [FromBody] ParqueDto parqueDto) { if (parqueDto is null || id != parqueDto.Id) { return(BadRequest()); } if (!await _parqueRepository.ParqueExistAsync(parqueDto.Nombre)) { ModelState.AddModelError("", "El parque nacional no existe."); return(StatusCode(404, ModelState)); } var parque = _mapper.Map <Parque>(parqueDto); if (!await _parqueRepository.UpdateParqueAsync(parque)) { ModelState.AddModelError("", "Ha ocurrido un error al actualizar el parque nacional."); return(StatusCode(500, ModelState)); } var newParqueDto = _mapper.Map <ParqueDto>(parque); return(NoContent()); }
public async Task <ActionResult> PostParqueAsync([FromBody] ParqueDto parqueDto) { if (parqueDto is null) { return(BadRequest()); } if (await _parqueRepository.ParqueExistAsync(parqueDto.Nombre)) { ModelState.AddModelError("", "Ya existe un parque nacional con ese nombre."); return(StatusCode(404, ModelState)); } var parque = _mapper.Map <Parque>(parqueDto); if (!await _parqueRepository.CreateParqueAsync(parque)) { ModelState.AddModelError("", "Ha ocurrido un error al insertar el parque nacional."); return(StatusCode(500, ModelState)); } var newParqueDto = _mapper.Map <ParqueDto>(parque); return(CreatedAtRoute("GetParqueAsync", new { id = newParqueDto.Id }, newParqueDto)); }