public async Task <IHttpActionResult> DeletePhoneNumber(PhoneNumberBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } ApplicationUser user = UserManager.FindById(User.Identity.GetUserId()); if (user == null) { return(null); } UserPhoneNumber existingPhoneNumber = user.PhoneNumbers.FirstOrDefault(ph => ph.Value == model.PhoneNumber); if (existingPhoneNumber == null) { ModelState.AddModelError("PhoneNumber", $"Номер телефона {model.PhoneNumber} не найден"); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } user.PhoneNumbers.Remove(existingPhoneNumber); DBContext.Entry(existingPhoneNumber).State = EntityState.Deleted; IdentityResult result = await UserManager.UpdateAsync(user); if (!result.Succeeded) { return(GetErrorResult(result)); } return(Ok()); }
public async Task <IHttpActionResult> AddPhoneNumber(PhoneNumberBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } ApplicationUser user = UserManager.FindById(User.Identity.GetUserId()); if (user == null) { return(null); } if (user.PhoneNumbers.Any(p => p.Value == model.PhoneNumber)) { ModelState.AddModelError("PhoneNumber", $"Номер телефона {model.PhoneNumber} уже существует"); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } user.PhoneNumbers.Add(new UserPhoneNumber() { Value = model.PhoneNumber }); IdentityResult result = await UserManager.UpdateAsync(user); if (!result.Succeeded) { return(GetErrorResult(result)); } return(Ok()); }