public PartnerRole2PrivilegeItem GetPartnerRole2PrivilegeItem(Sender sender, Guid RoleID, Guid PrivilegeItemID)
 {
     try
     {
         using (ObjectProxy op = new ObjectProxy())
         {
             PartnerRole2PrivilegeItem obj = new PartnerRole2PrivilegeItem();
             obj.RoleID          = RoleID;
             obj.PrivilegeItemID = PrivilegeItemID;
             if (op.LoadPartnerRole2PrivilegeItemByRoleID_PrivilegeItemID(obj) == 0)
             {
                 return(null);
             }
             return(obj);
         }
     }
     catch (Exception ex)
     {
         PLogger.LogError(ex);
         throw ex;
     }
 }
예제 #2
0
        public void SavePartnerRole(Sender sender, SavePartnerRoleArgs args)
        {
            try
            {
                if (string.IsNullOrEmpty(args.PartnerRole.RoleName))
                {
                    throw new Exception(string.Format("角色名称:{0}命名无效,可能存在特殊字符。", args.PartnerRole.RoleName));
                }

                if (PartnerRoleIsDuplicated(sender, args.PartnerRole))
                {
                    throw new Exception(string.Format("角色名称:{0}已存在,请重新输入。", args.PartnerRole.RoleName));
                }

                using (ObjectProxy op = new ObjectProxy(true))
                {
                    PartnerRole role = new PartnerRole();
                    role.RoleID = args.PartnerRole.RoleID;
                    if (op.LoadPartnerRoleByRoleID(role) == 0)
                    {
                        role = null;
                    }

                    if (role == null)
                    {
                        args.PartnerRole.Created    = DateTime.Now;
                        args.PartnerRole.CreatedBy  = sender.UserCode + "." + sender.UserName;
                        args.PartnerRole.Modified   = args.PartnerRole.Created;
                        args.PartnerRole.ModifiedBy = args.PartnerRole.CreatedBy;
                        op.InsertPartnerRole(args.PartnerRole);
                    }
                    else
                    {
                        args.PartnerRole.Modified   = DateTime.Now;
                        args.PartnerRole.ModifiedBy = sender.UserCode + "." + sender.UserName;
                        op.UpdatePartnerRoleByRoleID(args.PartnerRole);
                    }
                    if (args.UserIDs != null)
                    {
                        op.DeletePartnerUser2RolesByRoleID(args.PartnerRole.RoleID);
                        foreach (Guid userID in args.UserIDs)
                        {
                            PartnerUser2Role ug = new PartnerUser2Role();
                            ug.UserID = userID;
                            ug.RoleID = args.PartnerRole.RoleID;
                            op.InsertPartnerUser2Role(ug);
                        }
                    }

                    if (args.PrivilegeItemIDs != null)
                    {
                        op.DeletePartnerRole2PrivilegeItemsByRoleID(args.PartnerRole.RoleID);
                        foreach (Guid privilege in args.PrivilegeItemIDs)
                        {
                            PartnerRole2PrivilegeItem rp = new PartnerRole2PrivilegeItem();
                            rp.RoleID          = args.PartnerRole.RoleID;
                            rp.PrivilegeItemID = privilege;
                            op.InsertPartnerRole2PrivilegeItem(rp);
                        }
                    }
                    op.CommitTransaction();
                }
            }
            catch (Exception ex)
            {
                PLogger.LogError(ex);
                throw ex;
            }
        }