using Air.Model.AirAdminViewModel; using Mini.Common; using Mini.Services.Bas; using Mini.Web.WebHelper.Models; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Mini.Web.WebHelper { public class InitRightsToData { private readonly IBasRightService _basRightService ; private readonly IBasRightToolButtonService _basRightToolButtonService ; public InitRightsToData(IBasRightService basRightService, IBasRightToolButtonService basRightToolButtonService) { this._basRightService = basRightService; this._basRightToolButtonService = basRightToolButtonService; } /// /// 平台权限 /// /// /// public bool Insert(ref ValidationErrors errors) { List initRights = InitRights.getInitRights(); //create Right List dataRights = (from m in _basRightService.GetList() select new InnerRight() { RightId = m.RightId, RightName = m.RName }).ToList(); var InsertRights = initRights.Except(dataRights, new InitRightComPare()).ToList(); var bas_rights = new List(); foreach (InnerRight innerright in InsertRights) { var right = new Bas_RightModel(); right.RightId = innerright.RightId; right.RName = innerright.RightName; right.CTime = DateTime.Now; right.CreateUser = 10000; bas_rights.Add(right); } if (bas_rights.Count > 0) { _basRightService.CreateList(bas_rights); //if (!rightResult) //{ // errors.Add("添加权限失败。"); // return false; //} } //Tool Bar var toolBarBtns = new List(); foreach (InnerRight inRight in initRights) { toolBarBtns.AddRange(inRight.ToolBars); } List entitys = (from m in _basRightToolButtonService.GetList() select new ToolBarBtn() { RightId = m.RightId, ToolBarId = 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 var listToolButton = new List(); foreach (ToolBarBtn btn in CreateToolBtn) { var Right_ToolButton = new Bas_RightToolButtonModel(); 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) { _basRightToolButtonService.CreateList(listToolButton); //if (!isOk) //{ // errors.Add("添加toolbutton失败。"); // return false; //} } //delete foreach (ToolBarBtn btn in DeleteToolBtn) { var model = new Bas_RightToolButtonModel() { RightId = btn.RightId, ButtonId = btn.ToolBarId, ButtonName = btn.ToolBarName, ButtonCode = btn.ToolBarCode }; _basRightToolButtonService.Delete(model); //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(); } } } }