public async Task <IActionResult> ManageDeliveryAddresses(ManageDeliveryAddressesViewModel model) { if (!ModelState.IsValid) { return(View(model)); } try { var user = await _userManager.GetUserAsync(User); if (user == null) { throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); } DeliveryAddress newAddress = await _addressManager.FindAddressByZipcodeAsync(model.Zipcode); if (newAddress == null) { newAddress = new DeliveryAddress(); newAddress.Country = model.Country; newAddress.County = model.County; newAddress.City = model.City; newAddress.Address = model.Address; newAddress.Zipcode = model.Zipcode; newAddress.User = user; await _addressManager.CreateDeliveryAddress(newAddress); } StatusMessage = "New delivery address added"; } catch (Exception) { StatusMessage = "Failed to add new delivery address"; } return(RedirectToAction(nameof(ManageDeliveryAddresses))); }