Ejemplo n.º 1
0
        private void PrepareCompanyUserViewModel(CompanyUserCreateViewModel model, MembershipUser entity)
        {
            IList <SelectListItem> selList = new List <SelectListItem>();
            IList <MembershipRole> roles   = MembershipService.GetAllRolesByCompany(WorkContext.CurrentMembershipUser.Company.Id);

            if (entity == null)
            {
                foreach (var item in roles)
                {
                    selList.Add(new SelectListItem {
                        Text = item.Name, Value = item.Id.ToString(), Selected = false
                    });
                }
            }
            else
            {
                foreach (var item in roles)
                {
                    selList.Add(new SelectListItem {
                        Text = item.Name, Value = item.Id.ToString(), Selected = entity.MembershipRoles.Any(x => x.Id == item.Id)
                    });
                }
            }

            model.MembershipRoles = selList;
        }
Ejemplo n.º 2
0
        public ActionResult CreateCompanyAccount()
        {
            var model = new CompanyUserCreateViewModel();

            PrepareCompanyUserViewModel(model, null);

            return(View(model));
        }
Ejemplo n.º 3
0
        public ActionResult CreateCompanyAccount(CompanyUserCreateViewModel model)
        {
            try
            {
                using (var unitOfWork = UnitOfWorkManager.NewUnitOfWork())
                {
                    Guid roleId  = Guid.Parse(model.Role_Id);
                    var  role    = MembershipService.GetRole(roleId);
                    var  user    = MembershipService.GetUser(model.AccountName);
                    var  company = _companyService.GetById(WorkContext.CurrentMembershipUser.Company.Id);
                    if (user != null && user.Deleted == true)
                    {
                        user.Deleted   = false;
                        user.IsActived = true;
                        user.Password  = Utilities.MD5Helper.MD5Encrypt(model.Password);
                        user.Email     = model.Email;
                        user.Company   = company;
                        user.MembershipRoles.Clear();
                        user.MembershipRoles.Add(role);
                        unitOfWork.SaveChanges();

                        PrepareCompanyUserViewModel(model, user);
                    }
                    else if (user != null && user.Deleted == false)
                    {
                        throw new Exception("该用户名已被占用!");
                    }
                    else
                    {
                        user           = new MembershipUser();
                        user.Username  = model.AccountName;
                        user.Password  = model.Password;
                        user.Email     = model.Email;
                        user.Company   = company;
                        user.IsActived = true;
                        user.MembershipRoles.Add(role);
                        MembershipService.AddUser(user);

                        PrepareCompanyUserViewModel(model, user);
                    }
                    unitOfWork.Commit();

                    SuccessNotification("创建成功!");
                    return(View(model));
                }
            }
            catch (Exception ex)
            {
                PrepareCompanyUserViewModel(model, null);
                ErrorNotification(ex);
                return(View(model));
            }
        }
Ejemplo n.º 4
0
        public ActionResult EditCompanyAccount(CompanyUserCreateViewModel model)
        {
            try
            {
                using (var unitOfWork = UnitOfWorkManager.NewUnitOfWork())
                {
                    var user = MembershipService.GetUser(model.Id.Value);
                    if (user == null)
                    {
                        throw new Exception("未能找到该用户!");
                    }

                    if (user.Username != model.AccountName)
                    {
                        var user2 = MembershipService.GetUser(model.AccountName);
                        if (user2 != null)
                        {
                            throw new Exception("该用户名已被占用!");
                        }
                    }

                    user.Username = model.AccountName;
                    user.Password = Utilities.MD5Helper.MD5Encrypt(model.Password);
                    user.Email    = model.Email;

                    Guid roleId = Guid.Parse(model.Role_Id);
                    if (!user.MembershipRoles.Any(x => x.Id == roleId))
                    {
                        var role = MembershipService.GetRole(roleId);
                        user.MembershipRoles.Clear();
                        user.MembershipRoles.Add(role);
                    }

                    unitOfWork.SaveChanges();
                    unitOfWork.Commit();

                    PrepareCompanyUserViewModel(model, user);
                    SuccessNotification("修改成功!");
                }

                return(View(model));
            }
            catch (Exception ex)
            {
                ErrorNotification(ex);
                return(RedirectToAction("EditCompanyAccount", new { id = model.Id }));
            }
        }
Ejemplo n.º 5
0
        public ActionResult EditCompanyAccount(Guid id)
        {
            var model = new CompanyUserCreateViewModel();

            var user = MembershipService.GetUser(id);

            if (user != null)
            {
                model.Id          = user.Id;
                model.AccountName = user.Username;
                model.Email       = user.Email;
                model.Password    = Utilities.MD5Helper.MD5Decrypt(user.Password);
                PrepareCompanyUserViewModel(model, user);
                return(View(model));
            }
            else
            {
                ErrorNotification(new Exception("未能找到该用户!"));
                return(RedirectToAction("Index"));
            }
        }