Example #1
0
        public ActionResult Edit([Bind(Include = "Id,Email,FirstName,LastName,Age,Gender,PhoneNumber")]
                                 EditApplicationUserViewModel user)
        {
            if (ModelState.IsValid)
            {
                var userEntity = _applicationUserRepository.GetById(user.Id);

                if (userEntity.Id != User.Identity.GetUserId() && !User.IsInRole("Administrator"))
                {
                    return(RedirectToAction("Index", "Home"));
                }

                Mapper.Map(user, userEntity);

                _applicationUserRepository.Update(userEntity);

                if (!_applicationUserRepository.Save())
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                return(RedirectToAction("Details", "ApplicationUsers", new { id = userEntity.Id }));
            }

            return(View(user));
        }
        public ActionResult Edit(EditApplicationUserViewModel viewModel){
            try {
                if (ModelState.IsValid) {
                    var applicationUser = db.Users.Find(User.Identity.GetUserId());
                    db.Entry(applicationUser).CurrentValues.SetValues(viewModel);
                    db.SaveChanges();
                    return Redirect(Request.UrlReferrer.ToString());
                }

                //if (ModelState.IsValid) {
                //    db.Entry(applicationUser).State = EntityState.Modified;
                //    db.SaveChanges();
                //    return RedirectToAction("Index");
                //}
                return Redirect(Request.UrlReferrer.ToString());
            } catch (DbEntityValidationException e) {
                foreach (var eve in e.EntityValidationErrors) {
                    Debug.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                        eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors) {
                        Debug.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                            ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }


            
        }
        /// <summary>
        /// Edits a Single <see cref="ApplicationUser"/> in Database from <see cref="EditApplicationUserViewModel"/>
        /// </summary>
        /// <param name="model"></param>
        /// <returns><see cref="bool"/></returns>
        public async Task <bool> EditSingleApplicationUser(EditApplicationUserViewModel model)
        {
            var existingApplicationUser = await _healthyGamerPortalDbContext.ApplicationUsers.AsNoTracking().FirstOrDefaultAsync(i => i.Id == model.Id);

            if (existingApplicationUser != null)
            {
                ApplicationUser applicationUser = _mapper.Map <ApplicationUser>(model);
                applicationUser.Password = existingApplicationUser.Password;
                _healthyGamerPortalDbContext.Update(applicationUser);
                await _healthyGamerPortalDbContext.SaveChangesAsync();

                return(true);
            }
            return(false);
        }
Example #4
0
        public async Task <IActionResult> EditApplicationUser(string id, EditApplicationUserViewModel model)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser user = await _userManager.FindByIdAsync(id);

                if (user != null)
                {
                    user.Name  = model.Name;
                    user.Email = model.Email;
                    IdentityResult result = await _userManager.UpdateAsync(user);

                    if (result.Succeeded)
                    {
                        IdentityResult addPasswordResult = null;
                        if (!string.IsNullOrEmpty(model.NewPassword))
                        {
                            var code = await _userManager.GeneratePasswordResetTokenAsync(user);

                            addPasswordResult = await _userManager.ResetPasswordAsync(user, code, model.NewPassword);
                        }

                        string existingRole   = _userManager.GetRolesAsync(user).Result.Single();
                        string existingRoleId = _roleManager.Roles.Single(r => r.Name == existingRole).Id;

                        if (existingRoleId != model.ApplicationRoleId)
                        {
                            IdentityResult roleResult = await _userManager.RemoveFromRoleAsync(user, existingRole);

                            if (roleResult.Succeeded)
                            {
                                ApplicationRole applicationRole = await _roleManager.FindByIdAsync(model.ApplicationRoleId);

                                if (applicationRole != null)
                                {
                                    IdentityResult newRoleResult = await _userManager.AddToRoleAsync(user, applicationRole.Name);
                                }
                            }
                        }

                        return(RedirectToAction("Users"));
                    }
                }
            }
            return(PartialView("_EditApplicationUser", model));
        }
        public async Task <ActionResult> Edit([Bind(Include = "FirstName,LastName,Email,Id")] EditApplicationUserViewModel model,
                                              params string[] selectedRole)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.FindByIdAsync(model.Id);

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

                user.FirstName = model.FirstName;
                user.LastName  = model.LastName;
                user.UserName  = model.Email;
                user.Email     = model.Email;

                var userRoles = await _userManager.GetRolesAsync(user.Id);

                selectedRole = selectedRole ?? new string[] { };

                var result = await _userManager.AddToRolesAsync(user.Id, selectedRole.Except(userRoles).ToArray());

                if (!result.Succeeded)
                {
                    ModelState.AddModelError("Error", result.Errors.First());
                    return(View());
                }
                result = await _userManager.RemoveFromRolesAsync(user.Id, userRoles.Except(selectedRole).ToArray());

                if (!result.Succeeded)
                {
                    ModelState.AddModelError("Error", result.Errors.First());
                    return(View());
                }

                this.AddToastMessage("Edição de Usuário Salva", "O usuário foi editado com sucesso", ToastType.Success);
                return(RedirectToAction("Index"));
            }

            this.AddToastMessage("Erro na Edição do Usuário", "Ocorreu um erro na edição do usuário, favor tentar novamente",
                                 ToastType.Success);
            return(View());
        }
Example #6
0
        public async Task <IActionResult> Edit(EditApplicationUserViewModel model)
        {
            if (ModelState.IsValid)
            {
                var api = RestService.For <IHealthyGamerPortalUserApi>(new HttpClient(new Helpers.AuthenticatedHttpClientHandler())
                {
                    BaseAddress = new Uri(BaseUrl)
                });
                var response = await api.EditSingleApplicationUser(model);

                if (response.Result)
                {
                    TempData.Add("success-msg", "User has been Edite");
                    return(RedirectToAction("Index", "ApplicationUser"));
                }

                ModelState.AddModelError("Email", "This email has already been registered");
                return(View(model));
            }
            return(View(model));
        }
Example #7
0
        public async Task <IActionResult> EditApplicationUser(string id)
        {
            EditApplicationUserViewModel model = new EditApplicationUserViewModel()
            {
                ApplicationRoles = _roleManager.Roles.Select(r => new SelectListItem
                {
                    Text  = r.Name,
                    Value = r.Id
                }).OrderBy(r => r.Text).ToList()
            };

            if (!String.IsNullOrEmpty(id))
            {
                ApplicationUser user = await _userManager.FindByIdAsync(id);

                if (user != null)
                {
                    model.Name              = user.Name;
                    model.Email             = user.Email;
                    model.ApplicationRoleId = _roleManager.Roles.Single(r => r.Name == _userManager.GetRolesAsync(user).Result.Single()).Id;
                }
            }
            return(PartialView("_EditApplicationUser", model));
        }
Example #8
0
        public async Task <IActionResult> EditSingleApplicationUser([FromBody] EditApplicationUserViewModel model)
        {
            var result = await _applicationUserService.EditSingleApplicationUser(model);

            return(Ok(GenerateSuccessfulResponse(result)));
        }