using System; using System.Collections.Generic; using System.Linq; using WX.CRM.BLL.Base; using WX.CRM.Model.Entity; using WX.CRM.WebHelper.UtilityModel; namespace WX.CRM.WebHelper { public class InitRightsToData { public bool Insert(ref WX.CRM.Common.ValidationErrors errors) { // Common.ValidationErrors errors = new Common.ValidationErrors(); //string message = ""; //try //{ List initRights = InitRights.getInitRights(); //create Right BAS_RIGHT_BL right_bl = new BAS_RIGHT_BL(); List dataRights = (from m in right_bl.GetList() select new InnerRight() { RightId = m.RIGHTID, RightName = m.RNAME } ).ToList(); List InsertRights = initRights.Except(dataRights, new InitRightComPare()).ToList(); List bas_rights = new List(); foreach (InnerRight innerright in InsertRights) { BAS_RIGHT right = new BAS_RIGHT(); right.RIGHTID = innerright.RightId; right.RNAME = innerright.RightName; right.CTIME = DateTime.Now; right.CREATEUSER = 10000; bas_rights.Add(right); } if (bas_rights.Count > 0) { bool rightResult = right_bl.CreateList(ref errors, bas_rights); if (!rightResult) { errors.Add("添加权限失败。"); return false; } } //Tool Bar List toolBarBtns = new List(); foreach (InnerRight inRight in initRights) { toolBarBtns.AddRange(inRight.ToolBars); } BAS_RIGHT_TOOLBUTTON_BL right_toolButton_bl = new BAS_RIGHT_TOOLBUTTON_BL(); List entitys = (from m in right_toolButton_bl.GetALLToolButton() select new ToolBarBtn() { RightId = m.RIGHTID, ToolBarId = (int)m.BUTTONID, ToolBarName = m.BUTTONNAME, ToolBarCode = m.BUTTONCODE } ).ToList(); List CreateToolBtn = toolBarBtns.Except(entitys, new InitToolBarComPare()).ToList(); List DeleteToolBtn = entitys.Except(toolBarBtns, new InitToolBarComPare()).ToList(); //create List listToolButton = new List(); foreach (ToolBarBtn btn in CreateToolBtn) { BAS_RIGHT_TOOLBUTTON Right_ToolButton = new BAS_RIGHT_TOOLBUTTON(); Right_ToolButton.RIGHTID = btn.RightId; Right_ToolButton.BUTTONID = btn.ToolBarId; Right_ToolButton.BUTTONNAME = btn.ToolBarName; Right_ToolButton.BUTTONCODE = btn.ToolBarCode; listToolButton.Add(Right_ToolButton); } if (listToolButton.Count > 0) { bool isOk = right_toolButton_bl.Create_ListToolButton(ref errors, listToolButton); if (!isOk) { errors.Add("添加toolbutton失败。"); return false; } } //delete foreach (ToolBarBtn btn in DeleteToolBtn) { bool isOk = right_toolButton_bl.Delete_ToolButton(ref errors, btn.RightId, Convert.ToDecimal(btn.ToolBarId)); if (!isOk) { errors.Add("删除toolbutton失败。"); return false; } } return true; //} //catch (Exception ex) //{ // string message = ex.Message; // return false; //} } public class InitRightComPare : IEqualityComparer { public bool Equals(InnerRight x, InnerRight y) { return x.RightId == y.RightId; } public int GetHashCode(InnerRight obj) { return obj.RightId.GetHashCode(); } } public class InitToolBarComPare : IEqualityComparer { public bool Equals(ToolBarBtn x, ToolBarBtn y) { return x.RightId == y.RightId && x.ToolBarId == y.ToolBarId; } public int GetHashCode(ToolBarBtn obj) { return obj.ToolBarId.GetHashCode(); } } } }