Пример #1
0
        private District CreateDistrict(CreateDistrictRequest request)
        {
            if (request != null)
            {
                return(new District()
                {
                    CityId = request.CityId,
                    Name = request.Name,
                });
            }

            return(null);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        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));
            }
        }