132 lines
5.1 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
}
|