public async Task <JsonResult> GetZipCodeAndCityId(string zip4, string zip3) { var exists = await _zipCodeRepository.ZipCodeExistsAsync(zip4, zip3); if (exists) { var zipcode = await _zipCodeRepository.GetZipCodeAsync(zip4, zip3); var cityName = await _cityRepository.GetByIdAsync(zipcode.CityId); string data = zipcode.Id + "," + cityName.CityName; var r = this.Json(data); return(r); } return(null); }
public async Task <IActionResult> UpdateUser(UpdateUserDataViewModel model) { if (ModelState.IsValid) { try { var user = await _userHelper.GetUserByIdAsync(model.User.Id); var zipCodeId = await _zipCodeRepository.GetZipCodeAsync(model.ZipCode4, model.ZipCode3); if (zipCodeId == null) { var zip = await _zipCodeRepository.GetCityIdFromZip4(model.ZipCode4); if (zip == null) { ModelState.AddModelError(string.Empty, "The first 4 numbers of zip code are not valid, please insert again"); return(View(model)); } var newZipCode = _converterHelper.ToNewZipCode(model.ZipCode4, model.ZipCode3, zip.CityId); await _zipCodeRepository.CreateAsync(newZipCode); var pathZipNull = string.Empty; if (model.ImageFile != null) { pathZipNull = await _imageHelper.UploadImageAsync(model.ImageFile, "Users"); } var zipCodeIdNew = await _zipCodeRepository.GetZipCodeAsync(model.ZipCode4, model.ZipCode3); var updateUserZipNull = _converterHelper.ToUserFromUpdate(model, user, zipCodeIdNew.Id, pathZipNull); if (updateUserZipNull == null) { ModelState.AddModelError(string.Empty, "User not found, please try again"); return(View(model)); } var resultZipNull = await _userHelper.UpdateUserAsync(updateUserZipNull); if (resultZipNull.Succeeded) { return(RedirectToAction("Index", "Home")); } } var path = string.Empty; if (model.ImageFile != null) { path = await _imageHelper.UploadImageAsync(model.ImageFile, "Users"); } var updateUser = _converterHelper.ToUserFromUpdate(model, user, zipCodeId.Id, path); if (updateUser == null) { ModelState.AddModelError(string.Empty, "User not found, please try again"); return(View(model)); } var result = await _userHelper.UpdateUserAsync(updateUser); if (result.Succeeded) { return(RedirectToAction("Index", "Home")); } } catch (Exception ex) { if (ex.InnerException.Message.Contains("duplicate")) { if (ModelState.IsValid) { var user = await _userHelper.GetUserByIdAsync(model.User.Id); await _userHelper.DeleteUserAsync(user); return(RedirectToAction("DuplicatedUser")); } } else { ModelState.AddModelError(string.Empty, ex.InnerException.Message); } } } return(View(model)); }