public async Task <SportResponse> UpdateAsync(int id, SportSaveResource sportSaveResource) { var existingItem = await _sportRepository.FindByIdAsync(id); if (existingItem == null) { return(new SportResponse(404, "Item id not found", "Id", "Sport id not found.")); } var existingItemWithName = await _sportRepository.FindByName(sportSaveResource.Name); if (existingItemWithName != null && existingItemWithName.Id != id) { return(new SportResponse(400, "Item already exists", "Name", "Sport name is taken")); } existingItem.Name = sportSaveResource.Name; try { _sportRepository.Update(existingItem); var responseResource = _mapper.Map <Sport, SportResource>(existingItem); return(new SportResponse(responseResource)); } catch (Exception ex) { return(new SportResponse(400, "Unexpected error", "Error", ex.Message)); } }
public async Task <IActionResult> PostAsync([FromBody] SportSaveResource saveResource) { var response = await _sportService.SaveAsync(saveResource); if (!response.Success) { return(BadRequest(response.Error)); } return(CreatedAtAction(nameof(GetAsync), new { id = response.Result.Id }, response.Result)); }
public async Task <IActionResult> PutAsync(int id, [FromBody] SportSaveResource saveResource) { var response = await _sportService.UpdateAsync(id, saveResource); if (!response.Success && response.Error.Status == 404) { return(NotFound(response.Error)); } if (!response.Success) { return(BadRequest(response.Error)); } return(Ok(response.Result)); }
public async Task <SportResponse> SaveAsync(SportSaveResource sportSaveResource) { try { var existingItem = await _sportRepository.FindByName(sportSaveResource.Name); if (existingItem != null) { return(new SportResponse(400, "Item already exists", "Name", "Sport name is taken")); } var sport = _mapper.Map <SportSaveResource, Sport>(sportSaveResource); await _sportRepository.AddAsync(sport); var responseResource = _mapper.Map <Sport, SportResource>(sport); return(new SportResponse(responseResource)); } catch (Exception ex) { return(new SportResponse(400, "Unexpected error", "Error", ex.Message)); } }