Ejemplo n.º 1
0
        public ActionResult Edit(UserProfile userProfile)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    userProfile.UserName = userProfile.Email;   //user name is same as email

                    //Check for unique username/email
                    if (!String.Equals(userProfile.OldUserNameWhenChangedByAdmin, userProfile.UserName, StringComparison.CurrentCultureIgnoreCase))
                    {
                        var existingUser = _unitOfWork.UserRepository.GetUserByUserName(userProfile.UserName);
                        if (existingUser != null && existingUser.UserId > 0)
                        {
                            var message = "Unable to save changes. This user name " + userProfile.UserName + " already existed.";
                            //ModelState.AddModelError("", message);
                            ViewBag.Error = message;
                            ViewBag.UserTypeId = GetUserTypeSelectList(userProfile.UserTypeId);
                            return View(userProfile);
                        }
                    }

                    userProfile.ModifiedBy = User.Identity.Name;
                    userProfile.ModifiedOn = DateTime.UtcNow;

                    _unitOfWork.UserRepository.Update(userProfile);
                    _unitOfWork.Save();

                    var userType = GetUserType(userProfile.UserTypeId);
                    var roles = (SimpleRoleProvider)Roles.Provider;

                    //if the current value is changed from what we have in database then need to drop the existing role 
                    //and add current role as new role
                    if (!roles.IsUserInRole(userProfile.UserName, userType))
                    {
                        var rolesUserCurrentlyIn = Roles.GetRolesForUser(userProfile.UserName);
                        roles.RemoveUsersFromRoles(new[] { userProfile.UserName }, rolesUserCurrentlyIn);
                        roles.AddUsersToRoles(new[] { userProfile.UserName }, new[] { userType });

                        //IF Role is changing AND I am editing my self THEN force logout
                        if (String.Equals(userProfile.OldUserNameWhenChangedByAdmin, User.Identity.Name, StringComparison.CurrentCultureIgnoreCase))
                        {
                            WebSecurity.Logout();
                            return RedirectToAction("Index", "SmartDbHome");
                        }
                    }

                    //IF UserName is changing AND I am editing my self THEN force logout
                    if (String.Equals(userProfile.OldUserNameWhenChangedByAdmin, User.Identity.Name, StringComparison.CurrentCultureIgnoreCase))
                    {
                        if (!String.Equals(userProfile.OldUserNameWhenChangedByAdmin, userProfile.UserName, StringComparison.CurrentCultureIgnoreCase))
                        {
                            WebSecurity.Logout();
                            return RedirectToAction("Index", "SmartDbHome");
                        }
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
                    Utility.WriteToLog("UserController.Edit() : " + ex, "Error");
                    throw;
                }
                

                return RedirectToAction("Index");
            }

            ViewBag.UserTypeId = GetUserTypeSelectList(userProfile.UserTypeId);
            return View(userProfile);
        }
Ejemplo n.º 2
0
        public JsonResult LoadReferee(string refereeId)
        {
            int agentId;
            int.TryParse(refereeId, out agentId);
            var user = _unitOfWork.UserRepository.GetById(agentId);
            var data = new UserProfile
            {
                UserName = user.UserName,
                FirstName = user.FirstName,
                LastName = user.LastName,
                Email = user.Email,
                Address1 = user.Address1,
                Address2 = user.Address2,
                Agency = user.Agency,
                City = user.City,
                PostCode = user.PostCode,
                WorkTelephone = user.WorkTelephone,
                MobileTelephone = user.MobileTelephone,
                RelationshipWithApplicant = user.RelationshipWithApplicant
            };

            return Json(JsonConvert.SerializeObject(data), JsonRequestBehavior.AllowGet);
           
        }
Ejemplo n.º 3
0
        public ActionResult Create(UserProfile userProfile)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var roles = _unitOfWork.UserRepository.GetAllRoles();

                    //user name is same as email
                    userProfile.UserName = userProfile.Email;

                    WebSecurity.CreateUserAndAccount(
                        userProfile.UserName,
                        userProfile.Password,
                        propertyValues:
                            new
                                {
                                    Agency = userProfile.Agency,
                                    Address1 = userProfile.Address1,
                                    Address2 = userProfile.Address2,
                                    City = userProfile.City,
                                    PostCode = userProfile.PostCode,
                                    WorkTelephone = userProfile.WorkTelephone,
                                    MobileTelephone = userProfile.MobileTelephone,
                                    Email = userProfile.Email,
                                    RelationshipWithApplicant = userProfile.RelationshipWithApplicant,
                                    UserTypeId = userProfile.UserTypeId,
                                    FirstName = userProfile.FirstName,
                                    LastName = userProfile.LastName,
                                    IsHistoric = userProfile.IsHistoric,
                                    CreatedBy = User.Identity.Name,
                                    CreatedOn = DateTime.UtcNow
                                });


                    var userType = GetUserType(userProfile.UserTypeId);
                    roles.AddUsersToRoles(new[] {userProfile.UserName}, new[] {userType});

                }
                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }

                return RedirectToAction("Index");
            }

            ViewBag.UserTypeId = GetUserTypeSelectList(userProfile.UserTypeId);
            return View(userProfile);
        }