TG.WXCRM.V4/WebHelper/UserRight/InitRightsToData.cs

132 lines
5.1 KiB
C#

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<InnerRight> initRights = InitRights.getInitRights();
//create Right
BAS_RIGHT_BL right_bl = new BAS_RIGHT_BL();
List<InnerRight> dataRights = (from m in right_bl.GetList()
select new InnerRight()
{
RightId = m.RIGHTID,
RightName = m.RNAME
}
).ToList();
List<InnerRight> InsertRights = initRights.Except(dataRights, new InitRightComPare()).ToList();
List<BAS_RIGHT> bas_rights = new List<BAS_RIGHT>();
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<ToolBarBtn> toolBarBtns = new List<ToolBarBtn>();
foreach (InnerRight inRight in initRights)
{
toolBarBtns.AddRange(inRight.ToolBars);
}
BAS_RIGHT_TOOLBUTTON_BL right_toolButton_bl = new BAS_RIGHT_TOOLBUTTON_BL();
List<ToolBarBtn> 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<ToolBarBtn> CreateToolBtn = toolBarBtns.Except(entitys, new InitToolBarComPare()).ToList();
List<ToolBarBtn> DeleteToolBtn = entitys.Except(toolBarBtns, new InitToolBarComPare()).ToList();
//create
List<BAS_RIGHT_TOOLBUTTON> listToolButton = new List<BAS_RIGHT_TOOLBUTTON>();
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<InnerRight>
{
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<ToolBarBtn>
{
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();
}
}
}
}