private District CreateDistrict(CreateDistrictRequest request) { if (request != null) { return(new District() { CityId = request.CityId, Name = request.Name, }); } return(null); }
/// <summary> /// Add or Edit an existing district /// </summary> /// <param name="districtId"></param> /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task <Response> AddOrEditDistrictAsync(int districtId, CreateDistrictRequest request, CancellationToken cancellationToken = default) { var responseModel = new Response(); if (await _districtsRepo.DistrictNameExists(request.CityId, request.Name)) { responseModel.AddError(ExceptionCreator.CreateBadRequestError("cdistrict name does already exist")); return(responseModel); } if (districtId != 0) { var district = await _dbContext.Districts.FirstOrDefaultAsync(c => c.Id == districtId); try { if (district != null) { district.CityId = request.CityId; district.Name = request.Name; district.LastModifiedBy = _httpContextAccessor.HttpContext.User.Identity.Name; district.LastModifiedOn = DateTime.UtcNow; _dbContext.Districts.Update(district); } else { responseModel.AddError(ExceptionCreator.CreateNotFoundError(nameof(district), $"district of Id: { districtId} not found")); return(responseModel); } } catch (Exception ex) { responseModel.AddError(ExceptionCreator.CreateInternalServerError(ex.ToString())); } } else { try { await _districtsRepo.AddAsync(CreateDistrict(request)); } catch (Exception ex) { responseModel.AddError(ExceptionCreator.CreateInternalServerError(ex.ToString())); } } return(responseModel); }
public async Task <IActionResult> AddOrEditDistrict([FromRoute] int districtId, [FromBody] CreateDistrictRequest request, CancellationToken cancellationToken = default) { var apiResponse = new Response(); if (!ModelState.IsValid) { return(BadRequest(apiResponse)); } try { apiResponse = await _districtsService.AddOrEditDistrictAsync(districtId, request, cancellationToken); if (apiResponse.Success) { return(Ok(apiResponse)); } else if (apiResponse.Errors[0].Code == StatusCodes.Status404NotFound) { return(NotFound(apiResponse)); } return(BadRequest(apiResponse)); } catch (Exception exception) { return(_actionResultMapper.Map(exception)); } }