private async Task <BaseResult> Update(District district, int updateBy = 0, string updateByUserName = "")
        {
            var result = new BaseResult()
            {
                Result = Result.Success
            };
            var districtForUpdate = _districtRepository.Query().FirstOrDefault(d => d.Id == district.Id);

            if (districtForUpdate == null || district.Id <= 0)
            {
                result.Result  = Result.Failed;
                result.Message = "Không tìm thấy quận yêu cầu!";
                return(result);
            }
            else
            {
                var city = _cityRepository.Query()
                           .AsNoTracking()
                           .FirstOrDefault(c => c.Id == district.ParentId);
                var exists = _districtRepository.Query()
                             .Include(d => d.City)
                             .Any(c => !c.IsDeleted && c.City.Name == city.Name && c.Name == district.Name && c.Id != districtForUpdate.Id);
                if (exists)
                {
                    result.Result  = Result.Failed;
                    result.Message = "Quận/Huyện đã tồn tại!";
                    return(result);
                }
                district.CityRealm  = city.CityRealm;
                district.Name       = district.Name.Trim();
                district.UnsignName = !string.IsNullOrEmpty(district.Name) ? district.Name.Unsigned() : "";
            }
            try
            {
                districtForUpdate = district.ToDistrict(districtForUpdate);

                //Cập nhật thông tin chung của thực thể
                districtForUpdate = districtForUpdate.UpdateCommonInt(updateBy, updateByUserName);

                await _districtRepository.UpdateAsync(districtForUpdate);

                var wards = _wardRepository.Query()
                            .Include(d => d.District)
                            .Where(d => d.ParentId == districtForUpdate.Id)
                            .ToList();
                foreach (Ward w in wards)
                {
                    WardModel ward = w.ToModel();
                    ward.CityRealm = districtForUpdate.CityRealm;
                    await _wardService.CreateOrUpdate(ward);
                }
            }
            catch (Exception e)
            {
                result.Result  = Result.SystemError;
                result.Message = e.ToString();
            }
            return(result);
        }
Exemple #2
0
        public async Task <IActionResult> CreateOrUpdate([FromBody] WardModel ward)
        {
            var result = await _wardService.CreateOrUpdate(ward);

            return(Ok(result));
        }