public async Task<IHttpActionResult> Put(int id, [FromBody] EmailBindingModel email)
 {
     var existing = await Repository.GetGraphs(x => x.Id == id).FirstOrDefaultAsync();
     Mapper.Map<EmailBindingModel, Email>(email, existing);
     await Repository.SaveAsUserAsync(UserId);
     var modified = Mapper.Map<EmailViewModel>(existing);
     return Ok(modified);
 }
Пример #2
0
        public async Task <IdentityResult> EditEmailAsync(ClaimsPrincipal user, EmailBindingModel model)
        {
            var dbUser = await this.userManager.GetUserAsync(user);

            var result = await userManager.SetEmailAsync(dbUser, model.Email);

            return(result);
        }
        public async Task<IHttpActionResult> PostEmail(int id, [FromBody] EmailBindingModel email)
        {
            var newEmail = Mapper.Map<Email>(email);
            newEmail.ContactPersonId = id;
            Repository.AddOrUpdate(newEmail);
            await Repository.SaveAsUserAsync(UserId);

            var newlyAdded = await Repository.Get(x => x.Id == newEmail.Id).FirstOrDefaultAsync();
            if (newlyAdded != null)
            {
                var model = Mapper.Map<EmailViewModel>(newlyAdded);
                return Ok(model);
            }
            else
                return InternalServerError();
        }
Пример #4
0
        public async Task <IHttpActionResult> DeleteEmail(EmailBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            ApplicationUser user = UserManager.FindById(User.Identity.GetUserId());

            if (user == null)
            {
                return(null);
            }

            UserEmail existingEmail = user.Emails.FirstOrDefault(em => em.Value == model.Email);

            if (existingEmail == null)
            {
                ModelState.AddModelError("Email", $"Почтовый адрес {model.Email} не найден");
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }


            user.Emails.Remove(existingEmail);
            DBContext.Entry(existingEmail).State = EntityState.Deleted;

            IdentityResult result = await UserManager.UpdateAsync(user);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            return(Ok());
        }
Пример #5
0
        public async Task <IHttpActionResult> AddEmail(EmailBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            ApplicationUser user = UserManager.FindById(User.Identity.GetUserId());

            if (user == null)
            {
                return(null);
            }

            if (user.Emails.Any(em => em.Value == model.Email))
            {
                ModelState.AddModelError("Email", $"Почтовый адрес {model.Email} уже существует");
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            user.Emails.Add(new UserEmail()
            {
                Value = model.Email
            });
            IdentityResult result = await UserManager.UpdateAsync(user);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            return(Ok());
        }
Пример #6
0
        public async Task <IActionResult> EditEmail(EmailBindingModel model)
        {
            if (ModelState.IsValid == false)
            {
                this.AddStatusMessage(ModelState);
            }
            else
            {
                var result = await this.userSecurityService.EditEmailAsync(this.User, model);

                if (result.Succeeded == false)
                {
                    this.AddStatusMessage(result);
                }
                else
                {
                    this.AddStatusMessage(ControllerConstats.MessageEmailUpdated, ControllerConstats.MessageTypeSuccess);

                    await SendConfirmationEmail();
                }
            }

            return(RedirectToAction("Index"));
        }