public ActionResult UpdateUser(EditUserDetailsViewModel pUserViewModel, UserCache pUserCache)
        {
            bool successfulUpdate = true;

            try
            {
                ServiceFactory.Instance.UserService.UpdateUser(pUserViewModel.UpdateMessageType(pUserCache.Model));
            }
            catch (Exception e)
            {
                successfulUpdate = false;
            }
            finally
            {
                pUserCache.UpdateUserCache();
            }
            if (!successfulUpdate)
            {
                return(RedirectToAction("ErrorUpdatingUserDetails"));
            }
            else
            {
                return(RedirectToAction("Index", "Manage"));
            }
        }
示例#2
0
 public ActionResult ChangeProfile(EditUserDetailsViewModel eudvm)
 {
     eudvm.UserID = Convert.ToInt32(Session["CurrentUserID"]);
     this.us.UpdateUserDetails(eudvm);
     Session["CurrentUserID"] = eudvm.Name;
     return(RedirectToAction("Index", "Home"));
 }
示例#3
0
        public void UpdateUserDetails(EditUserDetailsViewModel userDetailsViewModel)
        {
            var     config = new MapperConfiguration(cfg => { cfg.CreateMap <EditUserDetailsViewModel, User>(); cfg.IgnoreUnmapped(); });
            IMapper mapper = config.CreateMapper();
            User    user   = mapper.Map <EditUserDetailsViewModel, User>(userDetailsViewModel);

            usersRepository.UpdateUserDetails(user);
        }
示例#4
0
        public void UpdateUserDetails(EditUserDetailsViewModel uvm)
        {
            var     config = new MapperConfiguration(cfg => { cfg.CreateMap <EditUserDetailsViewModel, Users>(); cfg.IgnoreUnmapped(); });
            IMapper mapper = config.CreateMapper();
            Users   u      = mapper.Map <EditUserDetailsViewModel, Users>(uvm);

            ur.UpdateUserDetails(u);
        }
示例#5
0
        public ActionResult ChangeProfile()
        {
            int                      uid   = Convert.ToInt32(Session["CurrentUserID"]);
            UserViewModel            uvm   = this.us.GetUsersByUserID(uid);
            EditUserDetailsViewModel eudvm = new EditUserDetailsViewModel()
            {
                Name = uvm.Name, Email = uvm.Email, Mobile = uvm.Mobile, UserID = uvm.UserID
            };

            return(View(eudvm));
        }
示例#6
0
        public ActionResult ChangeProfile()
        {
            int                      UserID     = Convert.ToInt32(Session["CurrentUserID"]);
            UserViewModel            updateUser = this.usersService.GetUsersByUserID(UserID);
            EditUserDetailsViewModel editUserDetailsViewModel = new EditUserDetailsViewModel()
            {
                UserID = updateUser.UserID,
                Email  = updateUser.Email,
                Mobile = updateUser.Mobile,
                Name   = updateUser.Name
            };

            return(View(editUserDetailsViewModel));
        }
示例#7
0
        public IActionResult Me()
        {
            Breadcrumb.Add("Your account", "Me", "User");

            var model = LoggedUser.UserModel;

            var viewModel = new EditUserDetailsViewModel()
            {
                Name  = model.Name,
                Email = model.Email
            };

            return(View(new FormModel <EditUserDetailsViewModel>(viewModel)));
        }
示例#8
0
 public ActionResult ChangeUserProfile(EditUserDetailsViewModel eudvm)
 {
     if (ModelState.IsValid)
     {
         eudvm.UserId = Convert.ToInt32(Session["CurrentUserId"]);
         this.userService.UpdateUserDetails(eudvm);
         return(RedirectToAction("Index", "Home"));
     }
     else
     {
         ModelState.AddModelError("x", "Invalid Data");
         return(View(eudvm));
     }
 }
示例#9
0
        public async Task <ActionResult> Edit(EditUserDetailsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = UserManager.Users.Where(u => u.Id == model.Id).FirstOrDefault();

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

            var userRoles = user.Roles.Where(u => u.UserId == model.Id).Select(r => r.RoleId);

            var _roles = new List <string>();

            userRoles.ToList().ForEach(x =>
            {
                switch (x)
                {
                case "1":
                    _roles.Add("Admin");
                    break;

                case "2":
                    _roles.Add("User");
                    break;

                case "3":
                    _roles.Add("EventOrganizer");
                    break;

                case "4":
                    _roles.Add("Tester");
                    break;
                }
            });
            await this.UserManager.RemoveFromRolesAsync(model.Id, _roles.ToArray());

            await this.UserManager.AddToRolesAsync(model.Id, model.SelectedRoles.ToArray());

            this.UserManager.AddUserToSpecific(user.Id, model.SelectedRoles.FirstOrDefault());

            await this.UserManager.UpdateAsync(user);

            return(RedirectToAction("Details", new { id = model.Id }));
        }
示例#10
0
 public ActionResult ChangeProfile(EditUserDetailsViewModel editUserDetailsViewModel)
 {
     if (ModelState.IsValid)
     {
         editUserDetailsViewModel.UserID = Convert.ToInt32(Session["CurrentUserID"]);
         this.usersService.UpdateUserDetails(editUserDetailsViewModel);
         Session["CurrentUserName"] = editUserDetailsViewModel.Name;
         return(RedirectToAction("Index", "Home"));
     }
     else
     {
         ModelState.AddModelError("x", "Invalid Data");
         return(View(editUserDetailsViewModel));
     }
 }
 public ActionResult ChangeProfile(EditUserDetailsViewModel eudvm)
 {
     if (ModelState.IsValid)
     {
         eudvm.UserID = Convert.ToInt32(Session["CurrentUserID"]);
         this.us.UpdateUserDetails(eudvm);
         Session["CurrentUserName"]  = eudvm.Name;
         Session["CurrentUserEmail"] = eudvm.Email;
         return(RedirectToAction("Index", "Home"));
     }
     else
     {
         ModelState.AddModelError("error", "Please Enter Valid data");
         return(View(eudvm));
     }
 }
示例#12
0
 public ActionResult ChangeProfile(EditUserDetailsViewModel euvm, HttpPostedFileBase ProfilePicture)
 {
     if (ModelState.IsValid)
     {
         if (ProfilePicture != null)
         {
             euvm.ProfilePicture = new byte[ProfilePicture.ContentLength];
             ProfilePicture.InputStream.Read(euvm.ProfilePicture, 0, ProfilePicture.ContentLength);
         }
         us.UpdateUserDetails(euvm);
         Session["CurrentUserName"] = euvm.FirstName + " " + euvm.LastName;
         return(RedirectToAction("ChangeProfile"));
     }
     else
     {
         ModelState.AddModelError("X", "Invalid Data");
         return(RedirectToAction("ChangeProfile"));
     }
 }
示例#13
0
        public ActionResult Edit(string id)
        {
            var user  = UserManager.Users.Where(u => u.Id == id).FirstOrDefault();
            var model = new EditUserDetailsViewModel
            {
                Email          = user.Email,
                FirstName      = user.FirstName,
                Id             = user.Id,
                LastName       = user.LastName,
                PhoneNumber    = user.PhoneNumber,
                SelectedRoles  = user.Roles.Where(u => u.UserId == user.Id).Select(r => (r.RoleId == "1" ? "Admin" : (r.RoleId == "2" ? "User" : (r.RoleId == "3" ? "EventOrganizer" : "Tester")))).ToList(),
                UserName       = user.UserName,
                AvailableRoles = new List <string> {
                    "Admin", "User", "EventOrganizer", "Tester"
                }
            };

            return(View(model));
        }
示例#14
0
        public async Task <IActionResult> EditUserDetails(string email, string returnUrl)
        {
            // To edit user details, the following conditions must be satisfied:
            // 1. Clients must be authorised. Anonymous clients are denied access.
            // 2. An email must be provided. A link without an email query string is set to the clients email.
            // 3. Clients must have permission to manage other users. Clients without this permission are redirected to their own edit page.
            if (email == null || (await authorizationService.AuthorizeAsync(User, "ManageUsersPermission")).Succeeded == false)
            {
                // If query string is null or client doesn't have permission to manage users, direct them to their own edit page.
                email = User.Identity.Name;
            }

            ApplicationUser user = await userManager.FindByEmailAsync(email);

            if (user != null)
            {
                EditUserDetailsViewModel model = new EditUserDetailsViewModel
                {
                    Email          = user.Email,
                    Title          = user.Title,
                    FirstName      = user.FirstName,
                    LastName       = user.LastName,
                    DayOfBirth     = user.DateOfBirth.Day,
                    MonthOfBirth   = user.DateOfBirth.Month,
                    YearOfBirth    = user.DateOfBirth.Year,
                    Gender         = user.Gender,
                    PhoneNumber    = user.PhoneNumber,
                    AddressLineOne = user.AddressLineOne,
                    AddressLineTwo = user.AddressLineTwo,
                    Town           = user.Town,
                    Postcode       = user.Postcode,
                };

                ViewBag.ReturnUrl = returnUrl;

                return(View(model));
            }
            else
            {
                return(RedirectToAction("UserList", "Admin"));
            }
        }
示例#15
0
        public IActionResult Edit(EditUserDetailsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                Alert.Warning();
                var viewModel = new FormModel <EditUserDetailsViewModel>(model, true);
                return(View(viewModel));
            }
            var userModel = new UserModel {
                Id = model.Id, Name = model.Name
            };

            editUser.Invoke(userModel);
            if (model.Id == LoggedUser.UserModel.Id)
            {
                var userDetails = getUserDetails.Invoke(LoggedUser.UserModel.Email);
                HttpContext.Session.SetString("UserDetails", JsonConvert.SerializeObject(userDetails));
            }

            return(RedirectToAction("Details", new { id = model.Id }));
        }
示例#16
0
        public IActionResult Edit(int id)
        {
            Breadcrumb.Add("Edit user", "Edit", "User");

            if (!checkUserPermission.Invoke(LoggedUser.UserModel.Id, LoggedUser.AppId, id))
            {
                Alert.Danger("You're not allowed to see this page");
                return(View("Error"));
            }

            var model = (LoggedUser.UserModel.Id == id) ? LoggedUser.UserModel : getUserById.Invoke(id);

            var viewModelWrapper = new EditUserDetailsViewModel
            {
                Id    = model.Id,
                Name  = model.Name,
                Email = model.Email
            };
            var userviewModel = new FormModel <EditUserDetailsViewModel>(viewModelWrapper, true);

            return(View(userviewModel));
        }
示例#17
0
        public IActionResult Details(int id)
        {
            Breadcrumb.Add("User details", "Details", "User");

            if (id == LoggedUser.UserModel.Id)
            {
                return(RedirectToAction("Me"));
            }

            if (!checkUserPermission.Invoke(LoggedUser.UserModel.Id, LoggedUser.AppId, id))
            {
                Alert.Danger("You're not allowed to see this page");
                return(View("Error"));
            }

            var model     = getUserById.Invoke(id);
            var viewModel = new EditUserDetailsViewModel
            {
                Name  = model.Name,
                Email = model.Email
            };

            return(View(new FormModel <EditUserDetailsViewModel>(viewModel)));
        }
示例#18
0
        public async Task <IActionResult> EditUserDetails(EditUserDetailsViewModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                DateTime date;

                try
                {
                    // Possible exception. The date selected by the client may not correctly represent calender date. Eg. 31st February.
                    date = new DateTime(model.YearOfBirth, model.MonthOfBirth, model.DayOfBirth);
                }
                catch (Exception)
                {
                    // If the user selects an invalid date such as 31st February, the user is given an error message.
                    ModelState.AddModelError("DayOfBirth", "Your date of birth is invalid");
                    return(View(model));
                }

                // Retrieve user details.
                ApplicationUser user = await userManager.FindByEmailAsync(model.Email);

                if (user != null)
                {
                    // Copy user details from the submitted form.
                    user.Email          = model.Email;
                    user.Title          = model.Title;
                    user.FirstName      = model.FirstName;
                    user.LastName       = model.LastName;
                    user.DateOfBirth    = date;
                    user.Gender         = model.Gender;
                    user.PhoneNumber    = model.PhoneNumber;
                    user.AddressLineOne = model.AddressLineOne;
                    user.AddressLineTwo = model.AddressLineTwo;
                    user.Town           = model.Town;
                    user.Postcode       = model.Postcode;

                    // Update user details.
                    IdentityResult result = await userManager.UpdateAsync(user);

                    if (result.Succeeded)
                    {
                        // Update the Date of Birth claim of the user to reflect the changes made to their date of birth.
                        Claim oldDoBClaim = (await userManager.GetClaimsAsync(user)).Where(c => c.Type == "DateOfBirth").FirstOrDefault();
                        Claim newDoBClaim = new Claim("DateOfBirth", user.DateOfBirth.ToShortDateString());
                        await userManager.ReplaceClaimAsync(user, oldDoBClaim, newDoBClaim);

                        // Redirect the user back to their previous page if applicable.
                        if (string.IsNullOrEmpty(returnUrl) == false && Url.IsLocalUrl(returnUrl))
                        {
                            return(Redirect(returnUrl));
                        }

                        return(RedirectToAction("UserList", "Admin"));
                    }
                    else
                    {
                        foreach (var error in result.Errors)
                        {
                            ModelState.AddModelError("", error.Description);
                        }
                    }
                }
            }

            return(View(model));
        }
示例#19
0
 public EditUserDetailsPage(EditUserDetailsViewModel _viewModel)
 {
     InitializeComponent();
     BindingContext = this.viewModel = _viewModel;
 }