Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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());
        }