BIM工程信息管理新系统- 系统管理模块
系统管理模块
1、实体类
public partial class T_Role
{
public string RoleId { get; set; }
public string RoleName { get; set; }
public string CommentAry { get; set; }
public string CodeNo { get; set; }
public string CustomNo { get; set; }
public string SpellNo { get; set; }
public string StrokeNo { get; set; }
}
角色类
public partial class T_Role_Privilege
{
public string RoleId { get; set; }
public string Privid { get; set; }
public string BarCaption { get; set; }
public Nullable<int> BarOrder { get; set; }
public string IsEndNode { get; set; }
public Nullable<int> IsToolBar { get; set; }
public string NodeID { get; set; }
public string ParentNode { get; set; }
public int Id { get; set; }
}
角色权限
public partial class T_Operator
{
public string OperatorID { get; set; }
public string DepID { get; set; }
public string OperatorName { get; set; }
public string Passwrod { get; set; }
public string RoleID { get; set; }
public string UserID { get; set; }
public string CellPhone { get; set; }
public string Emial { get; set; }
public Nullable<int> LoginCount { get; set; }
public string LastLoginTime { get; set; }
public Nullable<int> State { get; set; }
public string BuildMan { get; set; }
public Nullable<System.DateTime> BuildDate { get; set; }
public string EditMan { get; set; }
public Nullable<System.DateTime> EditDate { get; set; }
}
操作用户
public partial class T_Operator_Privilege
{
public string BarCaption { get; set; }
public Nullable<int> BarOrder { get; set; }
public string IsEndNode { get; set; }
public Nullable<int> IsToolBar { get; set; }
public string NodeId { get; set; }
public string OperatorID { get; set; }
public string ParentNode { get; set; }
public string PrivId { get; set; }
public int Id { get; set; }
}
用户权限
public partial class T_Organization
{
public string F_OrgID { get; set; }
public string F_OrgName { get; set; }
public string F_OrgManager { get; set; }
public Nullable<System.DateTime> F_BuildDate { get; set; }
public string F_BuildMan { get; set; }
public string F_TellPhoneNum { get; set; }
public string F_Address { get; set; }
public Nullable<bool> F_State { get; set; }
public string F_ParentID { get; set; }
}
组织机构
public partial class T_WholeMenu
{
public string NodeId { get; set; }
public string NodeName { get; set; }
public string ParentNode { get; set; }
public string IsEndNode { get; set; }
public string PluginId { get; set; }
public string CommentAry { get; set; }
public string Disporder { get; set; }
public Nullable<int> Type { get; set; }
public string GroupByName { get; set; }
public string ImageIco { get; set; }
public Nullable<int> TypeShow { get; set; }
public Nullable<bool> IsStartUp { get; set; }
}
菜单管理
public partial class Sys_Buttons
{
public int KeyId { get; set; }
public string ButtonCaption { get; set; }
public int Sortnum { get; set; }
public string IconCls { get; set; }
public string IconUrl { get; set; }
public string ButtonTag { get; set; }
public string Remark { get; set; }
public string ButtonHtml { get; set; }
public string BuggonGroup { get; set; }
public int State { get; set; }
public string ToolTip { get; set; }
}
按钮管理
public partial class Sys_Button_Privilege
{
public int SysId { get; set; }
public Nullable<int> ButtonId { get; set; }
public string OperatorId { get; set; }
public string RoleId { get; set; }
public string NodeId { get; set; }
}
按钮权限管理
public partial class Sys_WholeMenuButtons
{
public int KeyId { get; set; }
public string MenuId { get; set; }
public Nullable<int> ButtonId { get; set; }
public Nullable<int> Sortnum { get; set; }
public string ButtonName { get; set; }
}
菜单按钮
2、服务器契约
服务契约代码
[ServiceContract(Namespace = "www.kubim.com/OperatorSerivce")]
public interface IOperationpurviewService
{
#region 操作人员管理 //添加人员
[OperationContract(IsInitiating = true)]
bool InsertOperatorInfo(T_Operator operatorEntity); ///<summary>
///修改操作T_Operator
/// </summary>
[OperationContract(IsInitiating = true)]
bool UpdateT_Operator(T_Operator model); ///<summary>
///修改操作T_Operator
/// </summary>
[OperationContract(IsInitiating = true)]
T_Operator T_OperatorById(string operatorid); ///<summary>
///删除操作T_Operator
/// </summary>
[OperationContract(IsInitiating = true)]
bool DeleteT_Operator(String id); //获取最大人员编号
[OperationContract(IsInitiating = true)]
int GetMaxOperatorId(); //获取所有人员
[OperationContract(IsInitiating = true)]
IQueryable<T_Operator> GetOperatorAllList(); //根据用户登录的ID查询
[OperationContract(IsInitiating = true)]
List<FindMenuRigthByOperator> GetRightOperatorByOperatorId(string operatorid); //根据用户登录的ID查询
[OperationContract(IsInitiating = true)]
List<FindMenuRigthByOperator> GetRightOperatorByRoleId(string roleid); /// <summary>
/// 用户登录
/// </summary>
/// <param name="loginUserName">登录名称</param>
/// <param name="loginPassword">登录密码</param>
/// <returns></returns>
[OperationContract(IsInitiating = true)]
bool LoginUser(string loginUserName, string loginPassword); /// <summary>
/// 用户登录
/// </summary>
/// <param name="loginUserName">登录名称</param>
/// <param name="loginPassword">登录密码</param>
/// <param name="log">登录其它信息</param>
/// <returns>返回字符串信息</returns>
[OperationContract(IsInitiating = true)]
string Login(string loginUserName, string loginPassword, params string[] log); /// <summary>
/// 用户登陆
/// </summary>
/// <param name="loginUserName">Name of the login user.</param>
/// <param name="loginPassword">The login password.</param>
/// <param name="log">The log.</param>
/// <returns>用户信息.</returns>
[OperationContract(IsInitiating = true)]
T_Operator LoginOperator(string loginUserName, string loginPassword, params string[] log); /// <summary>
/// 用户登录次数添加
/// </summary>
/// <param name="operatorId">操作员ID</param>
[OperationContract(IsInitiating = true)]
bool OperatorAddLoginCount(T_Operator operatorId); /// <summary>
/// 获取人员信息
/// </summary>
/// <param name="departId">以部门编号</param>
[OperationContract(IsInitiating = true)]
List<T_Operator> GetOperatorListByDepartId(string departId); /// <summary>
/// 判斷用戶登陸名稱是否存在
/// Determines whether [is existe login user name] [the specified login user name].
/// </summary>
/// <param name="loginUserName">Name of the login user.</param>
/// <returns><c>true</c> if [is existe login user name] [the specified login user name]; otherwise, <c>false</c>.</returns>
[OperationContract(IsInitiating = true)]
bool IsExisteLoginUserName(string loginUserName); #endregion
操作人员管理
#region 用户角色管理 //新增用户角色
[OperationContract(IsInitiating = true)]
bool InsertRoleInfo(T_Role roleEntity); /// <summary>
/// 获取用户角色
/// </summary>
/// <param name="roleid">获取用户信息</param>
/// <returns></returns>
[OperationContract(IsInitiating = true)]
T_Role T_RoleById(string roleid); ///<summary>
///修改操作T_Role
/// </summary>
[OperationContract(IsInitiating = true)]
bool UpdateT_Role(T_Role model); ///<summary>
///删除操作T_Role
/// </summary>
[OperationContract(IsInitiating = true)]
bool DeleteT_Role(String id); //获取用户角色人员信息
[OperationContract(IsInitiating = true)]
List<FindRoleRigthByRole> GetRoleRigthByRoleCode(string roleCode); //获取所有角色
[OperationContract(IsInitiating = true)]
List<T_Role> GetRoleAllList(); //获取最大角色编号
[OperationContract(IsInitiating = true)]
int GetMaxRoleId(); /// <summary>
/// 修改用户密码
/// </summary>
/// <param name="oldPwd">旧的用户密码</param>
/// <param name="newPwd">新的用户密码</param>
/// <param name="userid">用户人员编号</param>
/// <returns></returns>
[OperationContract(IsInitiating = true)]
string ChangeUserPwd(string oldPwd, string newPwd, string userid); #endregion
用户角色管理
#region 用户授权管理 //新增用户权限信息
[OperationContract(IsInitiating = true)]
void InsertOperatorPrivilegeInfo(T_Operator_Privilege operatorEntity); //删除用户权限信息
[OperationContract(IsInitiating = true)]
void DeleteOperatorPrivilegeInfoByOperatorId(string operatorid); #endregion
用户授权管理
#region 角色授权管理 //新增角色权限
[OperationContract(IsInitiating = true)]
void InsertTRolePrivilege(T_Role_Privilege roleEntity); //删除角色权限
[OperationContract(IsInitiating = true)]
void DeleteRolePrivilegeByRoleId(string roleid); /// <summary>
/// 添加项目权限
/// </summary>
/// <param name="projectLimitses">项目权限信息</param>
/// <param name="typeinfo">操作员/角色 Operator/Role</param>
/// <param name="typeid">角色编号/用户编号</param>
/// <returns>bool</returns>
[OperationContract(IsInitiating = true)]
bool AddProjectLimits(List<T_ProjectLimits> projectLimitses, string typeinfo, string typeid);
/// <summary>
/// 添加机构数据权限
/// </summary>
/// <param name="organizationPrivileges">项目权限信息</param>
/// <param name="typeinfo">操作员/角色 Operator/Role</param>
/// <param name="typeid">角色编号/用户编号</param>
/// <returns>bool</returns>
[OperationContract(IsInitiating = true)]
bool AddOrgizationLimits(List<T_Organization_Privilege> organizationPrivileges, string typeinfo, string typeid); /// <summary>
/// 添加项目权限
/// </summary>
/// <param name="organizationPrivileges">项目权限信息</param>
/// <param name="typeinfo">操作员/角色 Operator/Role</param>
/// <param name="typeid">角色编号/用户编号</param>
/// <returns>bool</returns>
[OperationContract(IsInitiating = true)]
bool AddLineMileageLimits(List<LineMileage_Privilege> organizationPrivileges, string typeinfo, string typeid);
#endregion
角色授权管理
#region 菜单管理 //添加菜单
[OperationContract(IsInitiating = true)]
void InsertTWholemenu(T_WholeMenu menuEntity);
//修改菜单
[OperationContract(IsInitiating = true)]
bool UpdateTWholeMenu(T_WholeMenu menuEntity); //获取所有菜单
[OperationContract(IsInitiating = true)]
List<T_WholeMenu> GetAllWholeMenuList(); //获取父菜单的ID
[OperationContract(IsInitiating = true)]
int GetTwholeMenuNodeId(); //获取子菜单的ID
[OperationContract(IsInitiating = true)]
int GetTWholeMenuNodeChildrenId(); //获取最大的菜单
[OperationContract(IsInitiating = true)]
int GetMaxWholeMenuId(string parentnode); //删除父节点下所有菜单
[OperationContract(IsInitiating = true)]
void DeleteWholeMenu(string parentid); //根据菜单编号删除下面所有信息
[OperationContract(IsInitiating = true)]
void DeleteWholeMenuNode(string nodeid); //保存用户权限
[OperationContract(IsInitiating = true)]
bool AddUserRight(DataTable dt, string type, string typeid); #endregion
菜单管理
#region 系统字典管理 //添加字典信息
[OperationContract(IsInitiating = true)]
bool InsertDectionary(T_DictionaryInfo tInfo); //修改字典信息
[OperationContract(IsInitiating = true)]
bool UpdateDectionary(T_DictionaryInfo tInfo); //获取所有字典信息
[OperationContract(IsInitiating = true)]
List<T_DictionaryInfo> GetAllDictonaryList();
//根据字典类型
[OperationContract(IsInitiating = true)]
List<T_DictionaryInfo> SearchDictionaryOfType(string fDictonaryType); //根据字典类型
[OperationContract()]
List<T_DictionaryInfo> SearchDictionaryOfTypeCode(string typeCode); //获取父菜单的编号
[OperationContract(IsInitiating = true)]
int GetMaxDictionaryParentCode(); //获取子菜单的编号
[OperationContract(IsInitiating = true)]
int GetDictionaryNodeChildrenCode(); //获取最大的菜单
[OperationContract(IsInitiating = true)]
int GetMaxDictionaryCode(string parentCode); //删除子菜单
[OperationContract(IsInitiating = true)]
bool DeleteDictionaryChildrenCode(string dictonaryCode);
//删除父菜和下面的所有的子菜单
bool DeleteDictonaryCode(string parnentdictonaryCode); //数据库名称
[OperationContract(IsInitiating = true)]
DataTable GetAllTableNameByDb(string dataBaseName); //获取父节点下的子节点的Count
[OperationContract(IsInitiating = true)]
int GetDictionaryCountByParentCode(string parentCode); //根据字典编号获取明细信息
[OperationContract(IsInitiating = true)]
T_DictionaryInfo GetTDictonaryInfo(string dictonaryCode); #endregion
系统字典管理
#region 组织机构 /// <summary>
/// 新增操作T_Organization
/// </summary>
/// <param name="model">The model.</param>
/// <param name="operatorid">The operatorid.</param>
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
[OperationContract(IsInitiating = true)]
bool InsertT_Organization(T_Organization model,string operatorid); ///<summary>
///修改操作T_Organization
/// </summary>
[OperationContract(IsInitiating = true)]
bool UpdateT_Organization(T_Organization model); ///<summary>
///删除操作T_Organization
/// </summary>
[OperationContract(IsInitiating = true)]
bool DeleteT_Organization(String id); ///<summary>
///获取所有数据T_Organization
/// </summary>
[OperationContract(IsInitiating = true)]
List<T_Organization> GetT_OrganizationListData(); /// <summary>
/// 根据用户判断当前组织机构信息 </summary>
/// <param name="operatorId"></param>
/// <returns></returns>
[OperationContract(IsInitiating = true)]
IQueryable<T_Organization> GetT_OrganizationBy(string operatorId); #endregion
组织机构
#region 机构权限
/// <summary>
///根据SQL语句查询返回IQueryableT_Organization_Privilege
/// <param name="sql">T_Organization_PrivilegeSQL语句</param>
/// </summary>
[OperationContract]
IQueryable<T_Organization_Privilege> GetT_Organization_PrivilegeBySql(string sql, params object[] obj); /// <summary>
///获取实体T_Organization_Privilege
/// <param name="id">主键编号</param>
/// </summary>
[OperationContract]
List<T_Organization_Privilege> GetT_Organization_PrivilegeById(string id); /// <summary>
///修改实体T_Organization_Privilege
/// <param name="entity">T_Organization_Privilege实体</param>
/// </summary>
[OperationContract]
bool UpdateT_Organization_Privilege(List<T_Organization_Privilege> entity); /// <summary>
///新增实体T_Organization_Privilege
/// <param name="entity">T_Organization_Privilege实体</param>
/// </summary>
[OperationContract]
bool CreateT_Organization_Privilege(List<T_Organization_Privilege> entity, string operatorId); /// <summary>
///新增实体T_Organization_Privilege
/// <param name="entity">T_Organization_Privilege实体</param>
/// </summary>
[OperationContract]
bool CreateT_Organization_PrivilegeEntity(T_Organization_Privilege entity); /// <summary>
///删除T_Organization_Privilege
/// <param name="id">主键编号</param>
/// </summary>
[OperationContract]
bool DeleteT_Organization_Privilege(List<int> id); /// <summary>
///获取实体LineMileage_Privilege
/// <param name="id">主键编号</param>
/// </summary>
[OperationContract]
LineMileage_Privilege GetLineMileage_PrivilegeById(string id); /// <summary>
///修改实体LineMileage_Privilege
/// <param name="entity">LineMileage_Privilege实体</param>
/// </summary>
[OperationContract]
bool UpdateLineMileage_Privilege(LineMileage_Privilege entity); /// <summary>
///新增实体LineMileage_Privilege
/// <param name="entity">LineMileage_Privilege实体</param>
/// </summary>
[OperationContract]
bool CreateLineMileage_Privilege(List<LineMileage_Privilege> entity, string operatorId); /// <summary>
///删除LineMileage_Privilege
/// <param name="id">主键编号</param>
/// </summary>
[OperationContract]
bool DeleteLineMileage_Privilege(string id); /// <summary>
/// 获取线路里程权限信息
/// </summary>
/// <param name="strsql">sql</param>
/// <param name="obj">参数</param>
/// <returns>IQueryable</returns>
[OperationContract]
IQueryable<T_ProjectLimits> GetT_ProjectLimitsBySql(string strsql, params object[] obj); /// <summary>
///根据SQL语句查询返回IQueryableLineMileage_Privilege
/// <param name="sql">LineMileage_PrivilegeSQL语句</param>
/// </summary>
[OperationContract]
IQueryable<LineMileage_Privilege> GetLineMileage_PrivilegeBySql(string sql, params CmdParameter[] obj); /// <summary>
///新增实体T_ProjectLimits
/// <param name="entity">T_ProjectLimits实体</param>
/// </summary>
[OperationContract]
bool CreateT_ProjectLimits_Privilege(List<T_ProjectLimits> entity, string operatorId); /// <summary>
/// 获取当前用户的信息
/// </summary>
/// <param name="operatorid"></param>
/// <returns></returns>
[OperationContract]
IQueryable<T_ProjectLimits> GetT_ProjectLimitsByOperator(string operatorid); #endregion
机构权限
#region 系统菜单按钮 /// <summary>
///获取实体Sys_Buttons
/// <param name="id">主键编号</param>
/// </summary>
[OperationContract]
Sys_Buttons GetSys_ButtonsById(int id); /// <summary>
///修改实体Sys_Buttons
/// <param name="entity">Sys_Buttons实体</param>
/// </summary>
[OperationContract]
bool UpdateSys_Buttons(Sys_Buttons entity); /// <summary>
///新增实体Sys_Buttons
/// <param name="entity">Sys_Buttons实体</param>
/// </summary>
[OperationContract]
bool CreateSys_Buttons(Sys_Buttons entity); /// <summary>
///删除Sys_Buttons
/// <param name="id">主键编号</param>
/// </summary>
[OperationContract]
bool DeleteSys_Buttons(int id); [OperationContract]
IQueryable<Sys_WholeMenuButtons> GetSys_WholeMenuButtonsBySql(string sql, params CmdParameter[] obj);
/// <summary>
///根据SQL语句查询返回IQueryableSys_Buttons
/// <param name="sql">Sys_ButtonsSQL语句</param>
/// </summary>
[OperationContract]
IQueryable<Sys_Buttons> GetSys_ButtonsBySql(string sql, params CmdParameter[] obj); /// <summary>
/// 返回菜单的按钮
/// </summary>
/// <param name="menuId">菜单编号</param>
/// <returns></returns>
[OperationContract]
List<TWholeMenuButton> GetTWholeMenuButtons(string menuId); /// <summary>
/// 返回所有的菜单信息
/// </summary>
/// <returns></returns>
[OperationContract]
List<TWholeMenuButton> GetTWholeMenuButtonsAllList();
/// <summary>
/// 获取对应的权限
/// </summary>
/// <param name="operatorId">操作员ID</param>
/// <returns></returns>
[OperationContract]
List<TWholeMenuButton> GetButtonLimitsAlList(string operatorId); /// <summary>
/// 获取对应的权限
/// </summary>
/// <param name="roleId">角色ID</param>
/// <returns></returns>
[OperationContract]
List<TWholeMenuButton> GetButtonLimitstRoleAllList(string roleId);
/// <summary>
///新增实体Sys_WholeMenuButtons
/// <param name="entity">Sys_WholeMenuButtons实体</param>
/// </summary>
[OperationContract]
bool CreateSys_WholeMenuButtons(List<Sys_WholeMenuButtons> entity); /// <summary>
///删除Sys_WholeMenuButtons
/// <param name="nodeid">主键编号</param>
/// </summary>
[OperationContract]
bool DeleteSys_WholeMenuButtons(string nodeid); /// <summary>
/// 根据用户获取项目权限
/// </summary>
/// <param name="operatorId">操作员编号</param>
/// <returns></returns>
[OperationContract]
IQueryable<ProjectsLimits> GetProjectsLimitsesByOperator(string operatorId); /// <summary>
/// 根据用户编号获取对应的线程里程信息
/// </summary>
/// <param name="operatorId">操作员编号</param>
/// <param name="projectKey">项目编号</param>
/// <returns></returns>
[OperationContract]
IEnumerable<LineMileageLimits> GetLineMileageLimitsesByOperator(string operatorId, string projectKey); #endregion
系统菜单按钮
}
3、服务契约实现
服务类代码
//服务
/// <summary>
/// Class OperationService.
/// </summary>
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class OperationService : IOperationpurviewService, IDisposable
{
private readonly RBIM5D_PROJECTContext _dbContext;
public OperationService()
{
_dbContext = new RBIM5D_PROJECTEntities();
}
#region 操作人员管理
public bool InsertOperatorInfo(T_Operator operatorEntity)
{
try
{ _dbContext.Set<T_Operator>().Attach(operatorEntity);
_dbContext.Set<T_Operator>().Add(operatorEntity);
_dbContext.SaveChanges();
}
catch (DbEntityValidationException ex)
{
throw ex.InnerException;
}
catch (DbException ee)
{
throw ee.InnerException;
}
return true;
} /// <summary>
/// 修改操作T_Operator
/// </summary>
/// <param name="model">The model.</param>
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
public bool UpdateT_Operator(T_Operator model)
{
try
{
var category = _dbContext.T_Operator.FirstOrDefault(o => o.OperatorID == model.OperatorID);
if (category != null)
{
category.OperatorID = model.OperatorID;
category.DepID = model.DepID;
category.OperatorName = model.OperatorName;
category.Passwrod = model.Passwrod;
category.RoleID = model.RoleID;
category.UserID = model.UserID;
category.CellPhone = model.CellPhone;
category.Emial = model.Emial;
category.State = model.State;
category.EditMan = model.EditMan;
category.EditDate = model.EditDate;
}
_dbContext.SaveChanges();
}
catch (EntityException)
{
return false;
}
catch (Exception)
{
return false;
}
return true;
} /// <summary>
/// 修改操作T_Operator
/// </summary>
/// <param name="operatorid">The operatorid.</param>
/// <returns>T_Operator.</returns>
public T_Operator T_OperatorById(string operatorid)
{
try
{
return _dbContext.Set<T_Operator>().FirstOrDefault(o => o.OperatorID == operatorid && o.State == );
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} /// <summary>
/// 删除操作T_Operator
/// </summary>
/// <param name="id">The identifier.</param>
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
public bool DeleteT_Operator(string id)
{
try
{ T_Operator category = _dbContext.T_Operator.First(o => o.OperatorID == id);
return LU.DAL.BaseDAL<T_Operator>.ManagerContent(_dbContext).Del(category); }
catch (EntityException)
{
return false;
}
catch (Exception)
{
return false;
}
} /// <summary>
/// Gets the maximum operator identifier.
/// </summary>
/// <returns>System.Int32.</returns>
public int GetMaxOperatorId()
{ try
{
const string strsql = "select max(Convert(int,OperatorID)) from T_Operator";
return _dbContext.Database.SqlQuery<int>(strsql).First(); }
catch (Exception ee)
{
throw ee.InnerException;
} } public IQueryable<T_Operator> GetOperatorAllList()
{
try
{
return _dbContext.T_Operator.Where(o => o.State == );
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} /// <summary>
/// Gets the right operator by operator identifier.
/// </summary>
/// <param name="operatorid">The operatorid.</param>
/// <returns>List<FindMenuRigthByOperator>.</returns>
public List<FindMenuRigthByOperator> GetRightOperatorByOperatorId(string operatorid)
{
try
{
var list = new List<FindMenuRigthByOperator>(); {
var query = from a in _dbContext.T_Operator_Privilege
join b in _dbContext.T_WholeMenu on a.NodeId equals b.NodeId
where a.OperatorID == operatorid
select new
{
a.OperatorID,
ParentNode1 = a.ParentNode,
a.NodeId,
a.IsEndNode,
a.PrivId,
a.IsToolBar,
a.BarOrder,
a.BarCaption,
b.NodeName,
b.ParentNode,
b.PluginId,
b.CommentAry,
b.Disporder,
b.Type,
b.GroupByName,
b.ImageIco,
b.TypeShow,
b.IsStartUp
};
if (query.Any())
{
list.AddRange(query.ToList().Select(item => new FindMenuRigthByOperator
{
BarCaption = item.BarCaption,
BarOrder = item.BarOrder,
CommentAry = item.CommentAry,
IsEndNode = item.IsEndNode,
IsToolBar = item.IsToolBar,
NodeId = item.NodeId,
NodeName = item.NodeName,
ParentNode1 = item.ParentNode1,
ParentNode = item.ParentNode,
PluginId = item.PluginId,
PrivId = item.PrivId,
GroupByName = item.GroupByName,
ImageIco = item.ImageIco,
TypeShow = item.TypeShow,
IsStartUp = item.IsStartUp, })); } } return list;
}
catch (EntityException e)
{
throw e.InnerException;
} } /// <summary>
/// Gets the right operator by role identifier.
/// </summary>
/// <param name="roleid">The roleid.</param>
/// <returns>List<FindMenuRigthByOperator>.</returns>
public List<FindMenuRigthByOperator> GetRightOperatorByRoleId(string roleid)
{
try
{
var list = new List<FindMenuRigthByOperator>(); {
var query = from a in _dbContext.T_Role_Privilege
join b in _dbContext.T_WholeMenu on a.NodeID equals b.NodeId
where a.RoleId == roleid
select new
{
a.RoleId,
ParentNode1 = a.ParentNode,
a.NodeID,
a.IsEndNode,
a.Privid,
a.IsToolBar,
a.BarOrder,
a.BarCaption,
b.NodeName,
b.ParentNode,
b.PluginId,
b.CommentAry,
b.Disporder,
b.Type,
b.GroupByName,
b.ImageIco,
b.TypeShow,
b.IsStartUp
};
if (query.Any())
{
list.AddRange(query.ToList().Select(item => new FindMenuRigthByOperator
{
BarCaption = item.BarCaption,
BarOrder = item.BarOrder,
CommentAry = item.CommentAry,
IsEndNode = item.IsEndNode,
IsToolBar = item.IsToolBar,
NodeId = item.NodeID,
NodeName = item.NodeName,
ParentNode1 = item.ParentNode1,
ParentNode = item.ParentNode,
PluginId = item.PluginId,
PrivId = item.Privid,
GroupByName = item.GroupByName,
ImageIco = item.ImageIco,
TypeShow = item.TypeShow,
IsStartUp = item.IsStartUp
})); } } return list;
}
catch (EntityException e)
{
throw e.InnerException;
}
} /// <summary>
/// 用户登录
/// </summary>
/// <param name="loginUserName">登录名称</param>
/// <param name="loginPassword">登录密码</param>
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
public bool LoginUser(string loginUserName, string loginPassword)
{
if (string.IsNullOrEmpty(loginUserName) || string.IsNullOrEmpty(loginPassword))
return false;
try
{ // ReSharper disable ImplicitlyCapturedClosure
var queryExits = _dbContext.T_Operator.Where(o => o.OperatorID == loginUserName);
// ReSharper restore ImplicitlyCapturedClosure
if (queryExits.Any())
{
string password = EncodeHelper.DesEncrypt(loginPassword);
var queryLogin = _dbContext.T_Operator.Where(o => o.OperatorID == loginUserName && o.Passwrod == password);
if (queryLogin.Any())
{
var firstOrDefault = queryLogin.FirstOrDefault();
if (firstOrDefault != null)
OperatorAddLoginCount(firstOrDefault);
return true;
}
return false;
} }
catch (EntityException)
{
return false;
}
return false;
} /// <summary>
/// 用户登录
/// </summary>
/// <param name="loginUserName">登录名称</param>
/// <param name="loginPassword">登录密码</param>
/// <param name="log">登录其它信息</param>
/// <returns>返回字符串信息</returns>
public string Login(string loginUserName, string loginPassword, params string[] log)
{
if (string.IsNullOrEmpty(loginUserName) || string.IsNullOrEmpty(loginPassword))
return "用户或密码不能为空!谢谢";
try
{
T_Operator queryExits = _dbContext.T_Operator.FirstOrDefault(o => o.OperatorID == loginUserName);
if (queryExits != null)
{
if (queryExits.State == )
{
string password = EncodeHelper.DesEncrypt(loginPassword);
var queryLogin = _dbContext.T_Operator.FirstOrDefault(o => o.OperatorID == loginUserName && o.Passwrod == password);
if (queryLogin != null)
{
OperatorAddLoginCount(queryLogin); return "success";
}
return "密码与当前用户不匹配!请从新尝试!";
}
return "尊敬的用户您好!您的账户已经锁定或无效!请联系系统管理员!谢谢";
}
return "系统中没有查找到该用户!请查看用户名称是否正确!谢谢";
}
catch (EntityException ex)
{
LogHelper.Info("用户登录", ex);
return "服务端数据库打开无法连接!请联系系统管理!谢谢";
}
catch (Exception ex)
{
LogHelper.Info("用户登录", ex);
return "登录失败!";
}
} /// <summary>
/// 用户登陆
/// </summary>
/// <param name="loginUserName">Name of the login user.</param>
/// <param name="loginPassword">The login password.</param>
/// <param name="log">The log.</param>
/// <returns>用户信息.</returns>
public T_Operator LoginOperator(string loginUserName, string loginPassword, params string[] log)
{
if (string.IsNullOrEmpty(loginUserName) || string.IsNullOrEmpty(loginPassword))
return null;
try
{
string loginUser = loginUserName.ToLower();
T_Operator queryExits = _dbContext.T_Operator.FirstOrDefault(o => o.OperatorID.ToLower() == loginUser || o.UserID.ToLower() == loginUser);
if (queryExits != null)
{
if (queryExits.State == )
{
string password = EncodeHelper.DesEncrypt(loginPassword);
if (queryExits.Passwrod == password)
{
OperatorAddLoginCount(queryExits); return queryExits;
}
} }
return null;
}
catch (EntityException ex)
{
LogHelper.Info("用户登录", ex);
throw ex;
}
catch (Exception ex)
{
LogHelper.Info("用户登录", ex);
throw ex;
}
} /// <summary>
/// 用户登录次数添加
/// </summary>
/// <param name="operatorId">操作员ID</param>
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
public bool OperatorAddLoginCount(T_Operator operatorId)
{
if (operatorId != null)
{
_dbContext.Sys_logs.Add(new Sys_logs
{
BusinessName = "用户登录",
OperationIp = operatorId.OperatorID,
OperationTime = DateTime.Now
});
operatorId.LoginCount = operatorId.LoginCount == null ? : operatorId.LoginCount + ;
operatorId.LastLoginTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
_dbContext.SaveChanges(); return false;
} /// <summary>
/// 获取人员信息
/// </summary>
/// <param name="departId">以部门编号</param>
/// <returns>List<T_Operator>.</returns>
public List<T_Operator> GetOperatorListByDepartId(string departId)
{
try
{
return _dbContext.Set<T_Operator>().Where(@operator => @operator.DepID == departId).ToList(); }
catch (EntityException e)
{ throw e.InnerException;
}
} /// <summary>
/// 判斷用戶登陸名稱是否存在
/// Determines whether [is existe login user name] [the specified login user name].
/// </summary>
/// <param name="loginUserName">Name of the login user.</param>
/// <returns><c>true</c> if [is existe login user name] [the specified login user name]; otherwise, <c>false</c>.</returns>
public bool IsExisteLoginUserName(string loginUserName)
{
T_Operator tOperator = _dbContext.T_Operator.FirstOrDefault(o => o.UserID == loginUserName);
if (tOperator != null)
return true;
return false;
} /// <summary>
/// Gets the toperators by role identifier.
/// </summary>
/// <param name="roleid">The roleid.</param>
/// <returns>List<T_Operator>.</returns>
List<T_Operator> GetToperatorsByRoleId(string roleid)
{
try
{
return _dbContext.Set<T_Operator>().Where(o => o.RoleID == roleid).ToList();
}
catch (SqlException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} /// <summary>
/// 修改用户密码
/// </summary>
/// <param name="oldPwd">旧的用户密码</param>
/// <param name="newPwd">新的用户密码</param>
/// <param name="userid">用户人员编号</param>
/// <returns>System.String.</returns>
public string ChangeUserPwd(string oldPwd, string newPwd, string userid)
{ string password = EncodeHelper.DesEncrypt(oldPwd);
var istrue = _dbContext.T_Operator.FirstOrDefault(o => o.OperatorID == userid && o.Passwrod == password);
if (istrue != null)
{
istrue.Passwrod = EncodeHelper.DesEncrypt(newPwd);
_dbContext.SaveChanges();
}
else
{
return "当前的用户密码不正确!";
} return "成功";
} #endregion
操作人员管理
#region 用户权限管理 public void InsertOperatorPrivilegeInfo(T_Operator_Privilege operatorEntity)
{ try
{
// _enity.Attach(operatorEntity);
_dbContext.Set<T_Operator_Privilege>().Add(operatorEntity);
// _enity.ObjectStateManager.ChangeObjectState(operatorEntity, EntityState.Added);
_dbContext.SaveChanges();
}
catch (Exception ee)
{
throw ee.InnerException;
}
} public void DeleteOperatorPrivilegeInfoByOperatorId(string operatorid)
{ try
{
// _enity.ExecuteStoreCommand("delete from T_Operator_Privilege where Operatorid=@operatorids", new SqlParameter("@operatorids", operatorid));
var rsult = from fx in _dbContext.T_Operator_Privilege where fx.OperatorID == operatorid select fx;
if (rsult.Any())
{
foreach (var privilege in rsult)
{
_dbContext.T_Operator_Privilege.Remove(privilege);
}
_dbContext.SaveChanges();
}
}
catch (Exception ee)
{
throw ee.InnerException;
} } #endregion
用户权限管理
#region 用户角色 //新增角色
public bool InsertRoleInfo(T_Role roleEntity)
{
try
{
_dbContext.T_Role.Add(roleEntity);
_dbContext.SaveChanges();
return true;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
} } public T_Role T_RoleById(string roleid)
{
try
{
return _dbContext.Set<T_Role>().FirstOrDefault(o => o.RoleId == roleid && o.CodeNo == "有效");
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} ///<summary>
///修改操作T_Role
/// </summary>
public bool UpdateT_Role(T_Role model)
{
try
{ var category = _dbContext.T_Role.FirstOrDefault(o => o.RoleId == model.RoleId);
if (category != null)
{
category.RoleId = model.RoleId;
category.RoleName = model.RoleName;
category.CommentAry = model.CommentAry;
category.CodeNo = model.CodeNo;
category.CustomNo = model.CustomNo;
category.SpellNo = model.SpellNo;
category.StrokeNo = model.StrokeNo;
}
_dbContext.SaveChanges(); }
catch (EntityException)
{
return false;
}
catch (Exception)
{
return false;
}
return true;
}
///<summary>
///删除操作T_Role
/// </summary>
public bool DeleteT_Role(string model)
{
try
{ var category = _dbContext.T_Role.Where(o => o.RoleId == model);
if (category.Any())
{
foreach (var item in category)
{
_dbContext.Set<T_Role>().Attach(item);
_dbContext.Set<T_Role>().Remove(item);
}
_dbContext.SaveChanges();
} }
catch (EntityException)
{
return false;
}
catch (Exception)
{
return false;
}
return true;
} //返回角色权限信息
public List<FindRoleRigthByRole> GetRoleRigthByRoleCode(string roleCode)
{
var list = new List<FindRoleRigthByRole>(); var query = from a in _dbContext.T_Role_Privilege
join b in _dbContext.T_WholeMenu on a.NodeID equals b.NodeId
where
a.RoleId == roleCode
select new
{
a.RoleId,
ParentNode1 = a.ParentNode,
a.NodeID,
a.IsEndNode,
a.Privid,
a.IsToolBar,
a.BarOrder,
a.BarCaption,
b.NodeName,
b.ParentNode,
b.PluginId,
b.CommentAry,
b.Disporder,
b.Type,
b.GroupByName,
b.ImageIco,
b.TypeShow
};
if (query.Any())
{ list.AddRange(query.ToList().Select(item => new FindRoleRigthByRole
{
BarCaption = item.BarCaption,
BarOrder = item.BarOrder,
CommentAry = item.CommentAry,
IsEndNode = item.IsEndNode,
IsToolBar = item.IsToolBar,
NodeID = item.NodeID,
NodeName = item.NodeName,
ParentNode1 = item.ParentNode1,
ParentNode = item.ParentNode,
PluginId = item.PluginId,
Privid = item.Privid,
GroupByName = item.GroupByName,
ImageIco = item.ImageIco,
TypeShow = item.TypeShow,
Disporder = item.Disporder
})); }
return list;
} public List<T_Role> GetRoleAllList()
{
try
{
return (from fx in _dbContext.T_Role select fx).ToList();
}
catch (EntityException ex)
{ LogHelper.Error(ex.Message); throw ex.InnerException;
} } public int GetMaxRoleId()
{ try
{
const string strsql = "select max(Convert(int,Roleid)) from T_Role";
return _dbContext.Database.SqlQuery<int>(strsql).FirstOrDefault();
}
catch (Exception ee)
{
throw ee.InnerException;
} }
#endregion
用户角色
#region 用户角色权限管理 public void InsertTRolePrivilege(T_Role_Privilege roleEntity)
{ // _enity.Attach(roleEntity);
try
{
_dbContext.T_Role_Privilege.Add(roleEntity);
// _enity.ObjectStateManager.ChangeObjectState(roleEntity, EntityState.Added);
_dbContext.SaveChanges();
}
catch (Exception ee)
{
throw ee.InnerException;
} } public void DeleteRolePrivilegeByRoleId(string roleid)
{
try
{
_dbContext.Database.ExecuteSqlCommand("delete from T_Role_Privilege where roleid=@roleid", new SqlParameter("@roleid", roleid));
}
catch (Exception ee)
{
throw ee.InnerException;
}
} public bool AddProjectLimits(List<T_ProjectLimits> projectLimitses, string typeinfo, string typeid)
{
try
{
switch (typeinfo)
{
case "Operator":
string strsql = "delete from T_ProjectLimits where F_OperatorID=@Opid";
SqlParameter[] parms = new SqlParameter[]
{
new SqlParameter("@Opid", typeid)
};
_dbContext.Database.ExecuteSqlCommand(strsql, parms);
_dbContext.Set<T_ProjectLimits>().AddRange(projectLimitses);
break;
case "Role":
string sqlrole = "delete from T_ProjectLimits where F_RoleId=@Opid";
SqlParameter[] parmsrole = new SqlParameter[]
{
new SqlParameter("@Opid", typeid)
};
_dbContext.Database.ExecuteSqlCommand(sqlrole, parmsrole); //获取该角色的操作员
DataTable opDt = Untity.ListToDataTable(GetToperatorsByRoleId(typeid));
if (opDt.Rows.Count > )
{
foreach (DataRow rows in opDt.Rows)
{
string strsqloperator = "delete from T_ProjectLimits where F_OperatorID=@optUser";
SqlParameter[] parmsoperator = new SqlParameter[]
{
new SqlParameter("@optUser", rows["OperatorId"])
};
_dbContext.Database.ExecuteSqlCommand(strsqloperator, parmsoperator);
}
} foreach (var item in projectLimitses)
{
//添加角色信息
item.F_RoleId = typeid;
item.F_OperatorID = "";
_dbContext.Set<T_ProjectLimits>().Add(item);
foreach (DataRow rows in opDt.Rows)
{
T_ProjectLimits tp=new T_ProjectLimits()
{
F_ItemKey = item.F_ItemKey,
F_ItemText = item.F_ItemText,
F_OperatorID = rows["OperatorId"].ToString(),
F_RoleId = typeid,
F_SortId = item.F_SortId
};
_dbContext.Set<T_ProjectLimits>().Add(tp);
}
}
break;
}
_dbContext.SaveChanges();
return true;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException exception)
{
throw exception.InnerException;
}
} public bool AddOrgizationLimits(List<T_Organization_Privilege> organizationPrivileges, string typeinfo, string typeid)
{
try
{
switch (typeinfo)
{
case "Operator":
string strsql = "delete from T_Organization_Privilege where F_OperatorId=@Opid";
SqlParameter[] parms = new SqlParameter[]
{
new SqlParameter("@Opid", typeid)
};
_dbContext.Database.ExecuteSqlCommand(strsql, parms);
_dbContext.Set<T_Organization_Privilege>().AddRange(organizationPrivileges);
break;
case "Role":
string sqlrole = "delete from T_Organization_Privilege where F_RoleId=@Opid";
SqlParameter[] parmsrole = new SqlParameter[]
{
new SqlParameter("@Opid", typeid)
};
_dbContext.Database.ExecuteSqlCommand(sqlrole, parmsrole); //获取该角色的操作员
DataTable opDt = Untity.ListToDataTable(GetToperatorsByRoleId(typeid));
if (opDt.Rows.Count > )
{
foreach (DataRow rows in opDt.Rows)
{
string strsqloperator = "delete from T_Organization_Privilege where F_OperatorId=@optUser";
SqlParameter[] parmsoperator = new SqlParameter[]
{
new SqlParameter("@optUser", rows["OperatorId"])
};
_dbContext.Database.ExecuteSqlCommand(strsqloperator, parmsoperator);
}
} foreach (var item in organizationPrivileges)
{
//添加角色信息
item.F_OperatorId = "";
item.F_RoleId = typeid;
_dbContext.Set<T_Organization_Privilege>().Add(item);
foreach (DataRow rows in opDt.Rows)
{
T_Organization_Privilege tOrg=new T_Organization_Privilege()
{
F_KeyId = item.F_KeyId,
F_OperatorId = rows["OperatorId"].ToString(),
F_OrgID = item.F_OrgID,
F_OrgName = item.F_OrgName,
F_RoleId = typeid,
F_ParentId = item.F_ParentId
};
_dbContext.Set<T_Organization_Privilege>().Add(tOrg);
}
}
break;
}
_dbContext.SaveChanges();
return true;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException exception)
{
throw exception.InnerException;
}
} public bool AddLineMileageLimits(List<LineMileage_Privilege> organizationPrivileges, string typeinfo, string typeid)
{
try
{
switch (typeinfo)
{
case "Operator":
string strsql = "delete from LineMileage_Privilege where OperatorId=@Opid";
SqlParameter[] parms = new SqlParameter[]
{
new SqlParameter("@Opid", typeid)
};
_dbContext.Database.ExecuteSqlCommand(strsql, parms);
_dbContext.Set<LineMileage_Privilege>().AddRange(organizationPrivileges);
_dbContext.SaveChanges();
break;
case "Role":
string sqlrole = "delete from LineMileage_Privilege where RoleId=@Opid";
SqlParameter[] parmsrole = new SqlParameter[]
{
new SqlParameter("@Opid", typeid)
};
_dbContext.Database.ExecuteSqlCommand(sqlrole, parmsrole); //获取该角色的操作员
DataTable opDt = Untity.ListToDataTable(GetToperatorsByRoleId(typeid));
if (opDt.Rows.Count > )
{
foreach (DataRow rows in opDt.Rows)
{
string strsqloperator = "delete from LineMileage_Privilege where OperatorId=@optUser";
SqlParameter[] parmsoperator = new SqlParameter[]
{
new SqlParameter("@optUser", rows["OperatorId"])
};
_dbContext.Database.ExecuteSqlCommand(strsqloperator, parmsoperator);
}
} foreach (var item in organizationPrivileges)
{
//添加角色信息
item.RoleId = typeid;
item.OperatorId = "";
_dbContext.Set<LineMileage_Privilege>().Add(item);
foreach (DataRow rows in opDt.Rows)
{
LineMileage_Privilege line = new LineMileage_Privilege()
{
MileageId = item.MileageId,
MileageName = item.MileageName,
NodeId = item.NodeId,
OperatorId = rows["OperatorId"].ToString(),
RoleId = typeid };
_dbContext.Set<LineMileage_Privilege>().Add(line);
}
}
_dbContext.SaveChanges();
break;
} return true;
}
catch (DbEntityValidationException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException exception)
{
throw exception.InnerException;
}
} #endregion
用户角色权限管理
#region 菜单管理 public void InsertTWholemenu(T_WholeMenu menuEntity)
{ try
{
_dbContext.Set<T_WholeMenu>().Add(menuEntity);
_dbContext.SaveChanges();
}
catch (Exception ee)
{
throw ee.InnerException;
} } public bool UpdateTWholeMenu(T_WholeMenu menuEntity)
{
try
{ var category = _dbContext.T_WholeMenu.FirstOrDefault(o => o.NodeId == menuEntity.NodeId);
if (category != null)
{
category.NodeId = menuEntity.NodeId;
category.NodeName = menuEntity.NodeName;
category.ParentNode = menuEntity.ParentNode;
category.IsEndNode = menuEntity.IsEndNode;
category.PluginId = menuEntity.PluginId;
category.CommentAry = menuEntity.CommentAry;
category.Disporder = menuEntity.Disporder;
category.Type = menuEntity.Type;
category.GroupByName = menuEntity.GroupByName;
category.ImageIco = menuEntity.ImageIco;
category.TypeShow = menuEntity.TypeShow;
category.IsStartUp = menuEntity.IsStartUp;
}
_dbContext.SaveChanges(); }
catch (Exception ee)
{
throw ee.InnerException;
}
return true;
} public List<T_WholeMenu> GetAllWholeMenuList()
{
try
{
var query = from fx in _dbContext.T_WholeMenu select fx;
return query.ToList();
}
catch (EntityException ex)
{
LogHelper.Error("GetAllWholeMenuList",ex);
throw ex.InnerException;
} } public int GetTwholeMenuNodeId()
{
try
{
var category = _dbContext.T_WholeMenu.Where(o => o.NodeId.Length == ).Max(o => o.NodeId);
return Convert.ToInt32(category);
}
catch (EntityException ex)
{
LogHelper.Error("GetTwholeMenuNodeId", ex);
throw ex.InnerException;
} } public int GetTWholeMenuNodeChildrenId()
{
try
{
var category = _dbContext.T_WholeMenu.Where(o => o.NodeId.Length > ).Max(o => o.NodeId);
return Convert.ToInt32(category);
}
catch (EntityException ex)
{
LogHelper.Error("GetTWholeMenuNodeChildrenId", ex);
throw ex.InnerException;
} } public int GetMaxWholeMenuId(string parentnode)
{
try
{
var category = _dbContext.T_WholeMenu.Where
(o => o.ParentNode == parentnode).Max(o => o.NodeId);
return Convert.ToInt32(category);
}
catch (EntityException ex)
{
LogHelper.Error("GetMaxWholeMenuId", ex);
throw ex.InnerException;
} } //多级菜单删除
public void DeleteWholeMenu(string parentid)
{
try
{
var catetory = _dbContext.T_WholeMenu.Where(o => o.ParentNode == parentid);
if (catetory.Any())
{
foreach (var item in catetory)
{
T_WholeMenu itemTwhole = item;
var queryReslut = _dbContext.T_WholeMenu.Where(o => o.ParentNode == itemTwhole.NodeId);//查询该菜单下面是否有子菜单
if (queryReslut.Any())
{
foreach (var wholeMenu in queryReslut)
{
T_WholeMenu menu = wholeMenu;
var queryRm = _dbContext.T_WholeMenu.Where(o => o.ParentNode == menu.NodeId);
if (queryRm.Any())
{
foreach (var itemMenu in queryRm)
{
_dbContext.T_WholeMenu.Remove(itemMenu);
}
}
_dbContext.T_WholeMenu.Remove(wholeMenu);
}
}
_dbContext.T_WholeMenu.Remove(item); }
_dbContext.SaveChanges();
}
}
catch (InvalidOperationException e)
{
Console.WriteLine(e);
}
catch (Exception ee)
{
throw ee.InnerException;
} } public void DeleteWholeMenuNode(string nodeid)
{ try
{
var catetory = _dbContext.T_WholeMenu.Where(o => o.NodeId == nodeid);
if (catetory.Any())
{
foreach (var item in catetory)
{
_dbContext.Set<T_WholeMenu>().Attach(item);
_dbContext.Set<T_WholeMenu>().Remove(item);
}
_dbContext.SaveChanges();
}
}
catch (InvalidOperationException e)
{
Console.WriteLine(e);
}
catch (Exception ee)
{
throw ee.InnerException;
} } /// <summary>
/// 保存用户权限
/// </summary>
/// <param name="dt">DataTable 数据源</param>
/// <param name="type">类型</param>
/// <param name="typeid">RoleId或OperatorId</param>
/// <returns></returns>
public bool AddUserRight(DataTable dt, string type, string typeid)
{
try
{
switch (type)
{
#region Role case "Role":
//删除该角色所有的权限
DeleteRolePrivilegeByRoleId(typeid);
_dbContext.Sys_Button_Privilege.RemoveRange(_dbContext.Sys_Button_Privilege.Where(o => o.RoleId == typeid));
_dbContext.SaveChanges();
//获取该角色的操作员
DataTable opDt = Untity.ListToDataTable(GetToperatorsByRoleId(typeid));
if (opDt.Rows.Count > )
{
foreach (DataRow row in opDt.Rows)
{
//删除该角色对应操作员权限信息
DeleteOperatorPrivilegeInfoByOperatorId(row["OperatorId"].ToString());
RemoveSysButtonsPrivilege(row);
}
} foreach (DataRow roleRow in dt.Select(" Isendnode='menu'"))
{
if (roleRow.RowState == DataRowState.Deleted)
continue;
//创建对象 var roleData = new T_Role_Privilege
{
BarCaption = roleRow["NodeName"].ToString(),
BarOrder = ,
IsEndNode = roleRow["IsendNode"].ToString(),
NodeID = roleRow["NodeId"].ToString(),
ParentNode = roleRow["ParentNode"].ToString(),
Privid = roleRow["NodeId"].ToString(),
RoleId = typeid,
IsToolBar =
};
//插入新的角色权限信息
// rolePrivilege.InsertTRolePrivilege(roleData);
InsertTRolePrivilege(roleData); foreach (DataRow opRow in opDt.Rows)
{ var operData = new T_Operator_Privilege
{
BarCaption = roleRow["NodeName"].ToString(),
BarOrder = ,
IsEndNode = roleRow["IsendNode"].ToString(),
NodeId = roleRow["NodeId"].ToString(),
ParentNode = roleRow["ParentNode"].ToString(),
PrivId = roleRow["NodeId"].ToString(),
OperatorID = opRow["Operatorid"].ToString(),
IsToolBar =
};
//插入新的该角色操作员权限信息
InsertOperatorPrivilegeInfo(operData);
} } foreach (DataRow rows in dt.Select(" Isendnode='button'"))
{
if (rows.RowState == DataRowState.Deleted)
continue; //newRow["Nodeid"] = rowbutton.KeyId;
//newRow["ParentNode"] = rowbutton.MenuId;
//newRow["NodeName"] = rowbutton.ButtonCaption;
//newRow["Isendnode"] = "button";
//newRow["Disporder"] = rowbutton.ButtonId;
var opData = new Sys_Button_Privilege();
if (rows["Disporder"] != null)
{
opData.ButtonId = Convert.ToInt32(rows["Disporder"]);
} opData.RoleId = typeid;
string nodeid = rows["Nodeid"].ToString();
if (nodeid.Length == )
{
nodeid = nodeid.PadLeft(, '');
}
opData.NodeId = nodeid;
_dbContext.Set<Sys_Button_Privilege>().Add(opData); foreach (DataRow opRow in opDt.Rows)
{ var opData2 = new Sys_Button_Privilege();
if (rows["Disporder"] != null)
{
opData2.ButtonId = Convert.ToInt32(rows["Disporder"]);
}
opData2.RoleId = typeid;
opData2.OperatorId = opRow["OperatorId"].ToString();
opData2.NodeId = nodeid;
_dbContext.Set<Sys_Button_Privilege>().Add(opData2); } }
_dbContext.SaveChanges();
break; #endregion #region Operator case "Operator":
//删除该操作员权限信息
try
{
DeleteOperatorPrivilegeInfoByOperatorId(typeid);
_dbContext.Sys_Button_Privilege.RemoveRange(
_dbContext.Sys_Button_Privilege.Where(o => o.OperatorId == typeid));
_dbContext.SaveChanges();
}
catch (Exception)
{
return false;
}
foreach (DataRow rows in dt.Select(" Isendnode='menu'"))
{
if (rows.RowState == DataRowState.Deleted)
continue;
var opData = new T_Operator_Privilege
{
BarCaption = rows["NodeName"].ToString(),
BarOrder = ,
IsEndNode = rows["Isendnode"].ToString(),
IsToolBar = ,
NodeId = rows["Nodeid"].ToString(),
ParentNode = rows["Parentnode"].ToString(),
PrivId = rows["Nodeid"].ToString(),
OperatorID = typeid
};
//插入该操作员权限信息
InsertOperatorPrivilegeInfo(opData);
} foreach (DataRow rows in dt.Select(" Isendnode='button'"))
{
if (rows.RowState == DataRowState.Deleted)
continue; //newRow["Nodeid"] = rowbutton.KeyId;
//newRow["ParentNode"] = rowbutton.MenuId;
//newRow["NodeName"] = rowbutton.ButtonCaption;
//newRow["Isendnode"] = "button";
//newRow["Disporder"] = rowbutton.ButtonId;
var opData = new Sys_Button_Privilege();
if (rows["Disporder"] != null)
{
opData.ButtonId = Convert.ToInt32(rows["Disporder"]);
}
opData.OperatorId = typeid;
string nodeid = rows["Nodeid"].ToString();
if (nodeid.Length == )
{
nodeid = nodeid.PadLeft(, '');
}
opData.NodeId = nodeid;
_dbContext.Set<Sys_Button_Privilege>().Add(opData);
}
_dbContext.SaveChanges();
break; #endregion }
}
catch (EntitySqlException)
{
return false;
}
catch (InvalidOperationException)
{
return false;
}
catch (EntityException)
{
return false;
}
catch (Exception ee)
{
throw ee.InnerException;
}
return true; } private void RemoveSysButtonsPrivilege(DataRow row)
{
try
{
string operatorId = row["OperatorId"].ToString();
var query = _dbContext.Sys_Button_Privilege.Where(o => o.OperatorId == operatorId);
if (query.Any())
{
_dbContext.Sys_Button_Privilege.RemoveRange(query);
_dbContext.SaveChanges();
}
}
catch (EntityException ex)
{
LogHelper.Error("RemoveSysButtonsPrivilege", ex);
throw ex.InnerException;
} } #endregion
菜单管理
#region 系统字典 public bool InsertDectionary(T_DictionaryInfo tInfo)
{
try
{
if (!_dbContext.Set<T_DictionaryInfo>().Any(o => o.F_DictonaryCode == tInfo.F_DictonaryCode))
{
_dbContext.Set<T_DictionaryInfo>().Add(tInfo);
_dbContext.SaveChanges();
return true;
}
}
catch (UpdateException e)
{
throw e.InnerException;
}
catch (Exception ee)
{
throw ee.InnerException;
}
return false;
} public bool UpdateDectionary(T_DictionaryInfo tInfo)
{
try
{ var catetory = _dbContext.T_DictionaryInfo.First(o => o.F_DictonaryCode == tInfo.F_DictonaryCode);
catetory.F_DictonaryCode = tInfo.F_DictonaryCode;
catetory.F_DictonaryCoding = tInfo.F_DictonaryCoding;
catetory.F_DictonaryName = tInfo.F_DictonaryName;
catetory.F_DictonaryType = tInfo.F_DictonaryType;
catetory.F_ParentDictonaryCode = tInfo.F_ParentDictonaryCode;
catetory.F_Remark = tInfo.F_Remark;
_dbContext.SaveChanges(); }
catch (UpdateException exception)
{ throw exception.InnerException;
}
catch (EntityException exception)
{
throw exception.InnerException;
}
catch (Exception exception)
{ throw exception.InnerException;
}
return true;
} public List<T_DictionaryInfo> GetAllDictonaryList()
{
try
{ List<T_DictionaryInfo> list = (from dictionaryInfo in _dbContext.T_DictionaryInfo select dictionaryInfo).ToList();
return list; }
catch (Exception ee)
{
throw ee.InnerException;
}
} public List<T_DictionaryInfo> SearchDictionaryOfType(string fDictonaryCode)
{
var list = new List<T_DictionaryInfo>();
try
{
if (!string.IsNullOrEmpty(fDictonaryCode))
{ list = (from dictionaryInfo in _dbContext.T_DictionaryInfo where dictionaryInfo.F_ParentDictonaryCode == fDictonaryCode select dictionaryInfo).ToList();
return list; } }
catch (UpdateException e)
{
throw e.InnerException;
}
catch (Exception ee)
{
throw ee.InnerException;
}
return list;
} public List<T_DictionaryInfo> SearchDictionaryOfTypeCode(string typeCode)
{
List<T_DictionaryInfo> list=new List<T_DictionaryInfo>();
try
{
if (!string.IsNullOrEmpty(typeCode))
{
T_DictionaryInfo tDictionaryInfo= _dbContext.T_DictionaryInfo.FirstOrDefault(o=>o.F_DictonaryType==typeCode);
if (tDictionaryInfo != null)
{
list = SearchDictionaryOfType(tDictionaryInfo.F_DictonaryCode);
}
}
}
catch (UpdateException e)
{
throw e.InnerException;
}
catch (Exception ee)
{
throw ee.InnerException;
}
return list;
}
public int GetMaxDictionaryParentCode()
{
try
{ var category = _dbContext.T_DictionaryInfo.Where(o => o.F_DictonaryCode.Length == ).Max(o => o.F_DictonaryCode);
return Convert.ToInt32(category); }
catch (UpdateException e)
{
throw e.InnerException;
}
catch (Exception ee)
{
throw ee.InnerException;
}
} public int GetDictionaryNodeChildrenCode()
{
try
{ var category = _dbContext.T_DictionaryInfo.Where(o => o.F_DictonaryCode.Length > ).Max(o => o.F_DictonaryCode);
return Convert.ToInt32(category); }
catch (UpdateException e)
{
throw e.InnerException;
}
catch (Exception ee)
{
throw ee.InnerException;
}
} public int GetMaxDictionaryCode(string parentCode)
{
try
{ var category = _dbContext.T_DictionaryInfo.Where
(o => o.F_ParentDictonaryCode == parentCode).Max(o => o.F_DictonaryCode);
return Convert.ToInt32(category); }
catch (UpdateException e)
{
throw e.InnerException;
}
catch (Exception ee)
{
throw ee.InnerException;
}
} public bool DeleteDictionaryChildrenCode(string dictonaryCode)
{
try
{ var catetory = _dbContext.T_DictionaryInfo.Where(o => o.F_DictonaryCode == dictonaryCode);
if (catetory.Any())
{
foreach (var item in catetory)
{
_dbContext.Set<T_DictionaryInfo>().Attach(item);
_dbContext.Set<T_DictionaryInfo>().Remove(item); }
_dbContext.SaveChanges();
} }
catch (UpdateException e)
{
throw e.InnerException;
}
catch (Exception ee)
{
throw ee.InnerException;
} return true;
} public bool DeleteDictonaryCode(string parnentdictonaryCode)
{
try
{ var catetory = _dbContext.T_DictionaryInfo.Where(o => o.F_ParentDictonaryCode == parnentdictonaryCode);
if (catetory.Any())
{
foreach (var item in catetory)
{
_dbContext.Set<T_DictionaryInfo>().Attach(item);
_dbContext.Set<T_DictionaryInfo>().Remove(item);
}
_dbContext.SaveChanges();
} }
catch (UpdateException)
{
return false;
}
catch (EntityException)
{
return false;
}
catch (Exception)
{ return false;
}
return true;
} public DataTable GetAllTableNameByDb(string dataBaseName)
{
try
{ var retVal = new DataTable();
var sqlConn = (SqlConnection)_dbContext.Database.Connection;
var cmdReport = new SqlCommand(string.Format("SELECT Name FROM {0}..SysObjects Where XType='U' ORDER BY Name", dataBaseName), sqlConn);
var daReport = new SqlDataAdapter(cmdReport);
using (cmdReport)
{
daReport.Fill(retVal);
}
retVal.TableName = "SystemTableName";
return retVal; }
catch (UpdateException e)
{
throw e.InnerException;
}
catch (Exception ee)
{
throw ee.InnerException;
} } public int GetDictionaryCountByParentCode(string parentCode)
{
try
{ var category = _dbContext.T_DictionaryInfo.Count(o => o.F_ParentDictonaryCode == parentCode);
return Convert.ToInt32(category); }
catch (UpdateException e)
{
throw e.InnerException;
}
catch (Exception ee)
{
throw ee.InnerException;
}
} public T_DictionaryInfo GetTDictonaryInfo(string dictonaryCode)
{ var query = (from fx in _dbContext.T_DictionaryInfo where fx.F_DictonaryCode.Equals(dictonaryCode) select fx).FirstOrDefault();
return query; } #endregion
系统字典
#region 机构
///<summary>
///新增操作T_Organization
/// </summary>
public bool InsertT_Organization(T_Organization model,string operatorId)
{
try
{
_dbContext.Set<T_Organization>().Add(model); //插入权限
_dbContext.Set<T_Organization_Privilege>().Add(new T_Organization_Privilege()
{
F_OperatorId =operatorId,
F_OrgID = model.F_OrgID,
F_OrgName = model.F_OrgName,
F_ParentId = model.F_ParentID
});
if (operatorId != "")
{
//插入超级管理员的权限
_dbContext.Set<T_Organization_Privilege>().Add(new T_Organization_Privilege()
{
F_OperatorId = "",
F_OrgID = model.F_OrgID,
F_OrgName = model.F_OrgName,
F_ParentId = model.F_ParentID
});
} _dbContext.SaveChanges(); }
catch (EntityException)
{
return false;
}
catch (Exception)
{
return false;
}
return true;
} ///<summary>
///修改操作T_Organization
/// </summary>
public bool UpdateT_Organization(T_Organization model)
{
try
{ var category = _dbContext.T_Organization.FirstOrDefault(o => o.F_OrgID == model.F_OrgID);
if (category != null)
{
category.F_OrgID = model.F_OrgID;
category.F_OrgName = model.F_OrgName;
category.F_OrgManager = model.F_OrgManager;
category.F_BuildDate = model.F_BuildDate;
category.F_BuildMan = model.F_BuildMan;
category.F_TellPhoneNum = model.F_TellPhoneNum;
category.F_Address = model.F_Address;
category.F_ParentID = model.F_ParentID;
category.F_State = model.F_State;
} // _enity.Entry(.State = EntityState.Modified;
_dbContext.Entry(category).State = EntityState.Modified;
//修改权限表
var privialeages = _dbContext.T_Organization_Privilege.Where(o => o.F_OrgID == model.F_OrgID);
if (privialeages.Any())
{
foreach (T_Organization_Privilege privialeage in privialeages)
{
privialeage.F_OrgName = model.F_OrgName;
}
}
_dbContext.SaveChanges(); }
catch (EntityException)
{
return false;
}
catch (Exception)
{
return false;
}
return true;
} ///<summary>
///删除操作T_Organization
/// </summary>
public bool DeleteT_Organization(string modelCode)
{
try
{ var category = _dbContext.T_Organization.Where(o => o.F_OrgID == modelCode);
if (category.Any())
{
foreach (T_Organization item in category)
{
_dbContext.Set<T_Organization>().Attach(item);
_dbContext.Set<T_Organization>().Remove(item);
}
_dbContext.SaveChanges();
}
//删除权限表里面的信息
var privleages = _dbContext.T_Organization_Privilege.Where(o => o.F_OrgID == modelCode);
if (privleages.Any())
{
foreach (T_Organization_Privilege organization in privleages)
{
_dbContext.Set<T_Organization_Privilege>().Attach(organization);
_dbContext.Set<T_Organization_Privilege>().Remove(organization);
} _dbContext.SaveChanges();
} }
catch (EntityException)
{
return false;
}
catch (Exception)
{
return false;
}
return true;
}
///<summary>
///获取所有数据T_Organization
/// </summary>
public List<T_Organization> GetT_OrganizationListData()
{
try
{ return _dbContext.T_Organization.ToList(); }
catch (EntityException exception)
{
throw exception.InnerException;
}
catch (Exception exception)
{
throw exception.InnerException;
}
} public IQueryable<T_Organization> GetT_OrganizationBy(string operatorId)
{
try
{
var query = _dbContext.T_Organization.Where(o => o.F_OrgID == operatorId);
return query;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} #endregion
组织机构
#region 机构数据权限 /// <summary>
///根据SQL语句查询返回IQueryableT_Organization_Privilege
/// <param name="strsql">T_Organization_PrivilegeSQL语句</param>
/// </summary>
public IQueryable<T_Organization_Privilege> GetT_Organization_PrivilegeBySql(string strsql, params object[] obj)
{
try
{
IQueryable<T_Organization_Privilege> iQueryable = _dbContext.Database.SqlQuery<T_Organization_Privilege>(strsql, obj).AsQueryable();
return iQueryable;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} public List<T_Organization_Privilege> GetT_Organization_PrivilegeById(string id)
{
try
{
return _dbContext.Set<T_Organization_Privilege>().Where(o => o.F_OperatorId == id).ToList();
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message);
throw ex.InnerException;
}
catch (DbException exception)
{
LogHelper.Error(exception.Message);
throw exception.InnerException;
}
} public bool UpdateT_Organization_Privilege(List<T_Organization_Privilege> entity)
{
try
{
foreach (var operatorOrgPrivilege in entity)
{
new BaseDAL<T_Organization_Privilege>(_dbContext).Modify(operatorOrgPrivilege);
}
return true;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException exception)
{
throw exception.InnerException;
}
}
public bool CreateT_Organization_Privilege(List<T_Organization_Privilege> entity, string operatorId)
{
try
{
string strsql = "delete from T_Organization_Privilege where F_OperatorId=@Opid";
SqlParameter[] parms = new SqlParameter[]{
new SqlParameter("@Opid",operatorId)
};
_dbContext.Database.ExecuteSqlCommand(strsql, parms);
foreach (var operatorOrgPrivilege in entity)
{
_dbContext.Set<T_Organization_Privilege>().Add(operatorOrgPrivilege);
}
_dbContext.SaveChanges();
return true;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException exception)
{
throw exception.InnerException;
}
} public bool CreateT_Organization_PrivilegeEntity(T_Organization_Privilege entity)
{
try
{
_dbContext.Set<T_Organization_Privilege>().Add(entity);
_dbContext.SaveChanges();
return true;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException exception)
{
throw exception.InnerException;
}
} public bool DeleteT_Organization_Privilege(List<int> id)
{
try
{
foreach (var i in id)
{
new BaseDAL<T_Organization_Privilege>(_dbContext).DelBy(o => o.F_KeyId == i);
}
return true;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException exception)
{
throw exception.InnerException;
}
} /// <summary>
///获取实体LineMileage_Privilege
/// <param name="id">主键编号</param>
/// </summary>
public LineMileage_Privilege GetLineMileage_PrivilegeById(string id)
{
try
{
return _dbContext.LineMileage_Privilege.FirstOrDefault(o => o.SysId == int.Parse(id));
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException; }
} /// <summary>
///修改实体LineMileage_Privilege
/// <param name="entity">LineMileage_Privilege实体</param>
/// </summary>
public bool UpdateLineMileage_Privilege(LineMileage_Privilege entity)
{
try
{
var category = _dbContext.LineMileage_Privilege.FirstOrDefault(o => o.SysId == entity.SysId);
if (category != null)
{
category.SysId = entity.SysId;
category.NodeId = entity.NodeId;
category.OperatorId = entity.OperatorId;
category.MileageId = entity.MileageId;
_dbContext.SaveChanges();
}
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
return true;
} /// <summary>
///新增实体LineMileage_Privilege
/// <param name="entity">LineMileage_Privilege实体</param>
/// </summary>
public bool CreateLineMileage_Privilege(List<LineMileage_Privilege> entity, string operatorid)
{
try
{
string strsql = "delete from LineMileage_Privilege where Operatorid=@Opid";
SqlParameter[] parms = new SqlParameter[]{
new SqlParameter("@Opid",operatorid)
};
_dbContext.Database.ExecuteSqlCommand(strsql, parms);
foreach (var item in entity)
{
_dbContext.Set<LineMileage_Privilege>().Add(item);
_dbContext.SaveChanges();
} return true;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} /// <summary>
///删除LineMileage_Privilege
/// <param name="id">主键编号SysId</param>
/// </summary>
public bool DeleteLineMileage_Privilege(string id)
{
try
{
var category = _dbContext.LineMileage_Privilege.FirstOrDefault(o => o.SysId == int.Parse(id));
if (category != null)
{
_dbContext.Set<LineMileage_Privilege>().Attach(category);
_dbContext.Set<LineMileage_Privilege>().Remove(category);
_dbContext.SaveChanges();
}
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message);
throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message);
throw ex.InnerException;
} return true;
} public IQueryable<T_ProjectLimits> GetT_ProjectLimitsBySql(string strsql, params object[] obj)
{
try
{
IQueryable<T_ProjectLimits> iQueryable =
_dbContext.Database.SqlQuery<T_ProjectLimits>(strsql, obj).AsQueryable();
return iQueryable;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
} } /// <summary>
///根据SQL语句查询返回IQueryableLineMileage_Privilege
/// <param name="strsql">LineMileage_PrivilegeSQL语句</param>
/// </summary>
public IQueryable<LineMileage_Privilege> GetLineMileage_PrivilegeBySql(string strsql, params CmdParameter[] obj)
{
try
{
DbParameter[] parameters = new DbParameter[obj.Length];
for (int i = ; i < obj.Length; i++)
{
DbParameter sqlPram = new SqlParameter(obj[i].ParameterName, obj[i].Value);
parameters[i] = sqlPram;
}
IQueryable<LineMileage_Privilege> iQueryable = _dbContext.Database.SqlQuery<LineMileage_Privilege>(strsql, parameters).AsQueryable();
return iQueryable;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} public bool CreateT_ProjectLimits_Privilege(List<T_ProjectLimits> entity, string operatorId)
{
try
{
string strsql = "delete from T_ProjectLimits where F_OperatorID=@Opid";
SqlParameter[] parms = new SqlParameter[]{
new SqlParameter("@Opid",operatorId)
};
_dbContext.Database.ExecuteSqlCommand(strsql, parms);
foreach (var item in entity)
{
_dbContext.Set<T_ProjectLimits>().Add(item);
}
_dbContext.SaveChanges();
return true;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} public IQueryable<T_ProjectLimits> GetT_ProjectLimitsByOperator(string operatorid)
{
try
{ var query=_dbContext.T_ProjectLimits.Where(o => o.F_OperatorID == operatorid);
return query;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} #endregion bn
机构数据权限
#region 按钮服务 /// <summary>
///获取实体Sys_Buttons
/// <param name="id">主键编号</param>
/// </summary>
public Sys_Buttons GetSys_ButtonsById(int id)
{
try
{
return _dbContext.Sys_Buttons.FirstOrDefault(o => o.KeyId == id);
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException; }
} /// <summary>
///修改实体Sys_Buttons
/// <param name="entity">Sys_Buttons实体</param>
/// </summary>
public bool UpdateSys_Buttons(Sys_Buttons entity)
{
try
{
var category = _dbContext.Sys_Buttons.FirstOrDefault(o => o.KeyId == entity.KeyId);
if (category != null)
{
category.KeyId = entity.KeyId;
category.ButtonCaption = entity.ButtonCaption;
category.Sortnum = entity.Sortnum;
category.IconCls = entity.IconCls;
category.IconUrl = entity.IconUrl;
category.ButtonTag = entity.ButtonTag;
category.Remark = entity.Remark;
category.ButtonHtml = entity.ButtonHtml;
category.BuggonGroup = entity.BuggonGroup;
category.State = entity.State;
category.ToolTip = entity.ToolTip;
_dbContext.SaveChanges();
}
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
return true;
} /// <summary>
///新增实体Sys_Buttons
/// <param name="entity">Sys_Buttons实体</param>
/// </summary>
public bool CreateSys_Buttons(Sys_Buttons entity)
{
try
{
_dbContext.Set<Sys_Buttons>().Add(entity);
_dbContext.SaveChanges();
return true;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} /// <summary>
///删除Sys_Buttons
/// <param name="id">主键编号KeyId</param>
/// </summary>
public bool DeleteSys_Buttons(int id)
{
try
{
var category = _dbContext.Sys_Buttons.FirstOrDefault(o => o.KeyId == id);
if (category != null)
{
_dbContext.Set<Sys_Buttons>().Attach(category);
_dbContext.Set<Sys_Buttons>().Remove(category);
_dbContext.SaveChanges();
}
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
} return true;
} public IQueryable<Sys_WholeMenuButtons> GetSys_WholeMenuButtonsBySql(string sql, params CmdParameter[] obj)
{
try
{
DbParameter[] parameters = new DbParameter[obj.Length];
for (int i = ; i < obj.Length; i++)
{
DbParameter sqlPram = new SqlParameter(obj[i].ParameterName, obj[i].Value);
parameters[i] = sqlPram;
}
IQueryable<Sys_WholeMenuButtons> iQueryable = _dbContext.Database.SqlQuery<Sys_WholeMenuButtons>(sql, parameters).AsQueryable();
return iQueryable;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} /// <summary>
///根据SQL语句查询返回IQueryableSys_Buttons
/// <param name="sql">Sys_ButtonsSQL语句</param>
/// </summary>
public IQueryable<Sys_Buttons> GetSys_ButtonsBySql(string strsql, params CmdParameter[] obj)
{
try
{
DbParameter[] parameters = new DbParameter[obj.Length];
for (int i = ; i < obj.Length; i++)
{
DbParameter sqlPram = new SqlParameter(obj[i].ParameterName, obj[i].Value);
parameters[i] = sqlPram;
}
IQueryable<Sys_Buttons> iQueryable = _dbContext.Database.SqlQuery<Sys_Buttons>(strsql, parameters).AsQueryable();
return iQueryable;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} public List<TWholeMenuButton> GetTWholeMenuButtons(string menuId)
{
try
{ var query = (from fx in _dbContext.Sys_WholeMenuButtons
join fb in _dbContext.Sys_Buttons
on fx.ButtonId equals fb.KeyId
where fx.MenuId == menuId
select new TWholeMenuButton
{
KeyId = fx.KeyId,
MenuId = fx.MenuId,
Sortnum = fx.Sortnum,
ButtonCaption = fb.ButtonCaption,
IconCls = fb.IconCls
}).ToList();
return query;
}
catch (FormatException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} public List<TWholeMenuButton> GetTWholeMenuButtonsAllList()
{
try
{ var queryResult = (from fx in _dbContext.Sys_Buttons
join dx in _dbContext.Sys_WholeMenuButtons on fx.KeyId equals dx.ButtonId
select new TWholeMenuButton()
{
KeyId = dx.KeyId,
ButtonCaption = fx.ButtonCaption,
ButtonId = fx.KeyId,
IconCls = fx.IconCls,
MenuId = dx.MenuId,
Sortnum = dx.Sortnum
}).ToList();
return queryResult;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} public List<TWholeMenuButton> GetButtonLimitsAlList(string operatorId)
{
try
{
var queryResult = (from db in _dbContext.Sys_Buttons
join fx in _dbContext.Sys_Button_Privilege
on db.KeyId equals fx.ButtonId
where fx.OperatorId == operatorId
select new TWholeMenuButton()
{
KeyId = db.KeyId,
ButtonId = db.KeyId,
MenuId = fx.NodeId,
ButtonCaption = db.ButtonCaption,
OperatorId = operatorId
}).ToList();
return queryResult;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} public List<TWholeMenuButton> GetButtonLimitstRoleAllList(string roleId)
{
try
{
var queryResult = (from db in _dbContext.Sys_Buttons
join fx in _dbContext.Sys_Button_Privilege
on db.KeyId equals fx.ButtonId
where fx.RoleId == roleId
&& fx.OperatorId == null || fx.OperatorId == ""
select new TWholeMenuButton()
{
KeyId = db.KeyId,
ButtonId = db.KeyId,
MenuId = fx.NodeId,
ButtonCaption = db.ButtonCaption,
RoleId = roleId
}).ToList();
return queryResult;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} /// <summary>
///新增实体Sys_WholeMenuButtons
/// <param name="entity">Sys_WholeMenuButtons实体</param>
/// </summary>
public bool CreateSys_WholeMenuButtons(List<Sys_WholeMenuButtons> entity)
{
try
{
foreach (var item in entity)
{
_dbContext.Set<Sys_WholeMenuButtons>().Add(item);
}
_dbContext.SaveChanges();
return true;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} /// <summary>
///删除Sys_WholeMenuButtons
/// <param name="nodeid">主键编号KeyId</param>
/// </summary>
public bool DeleteSys_WholeMenuButtons(string nodeid)
{
try
{
var category = _dbContext.Sys_WholeMenuButtons.Where(o => o.MenuId == nodeid);
if (category.Any())
{
foreach (var item in category)
{
_dbContext.Set<Sys_WholeMenuButtons>().Attach(item);
_dbContext.Set<Sys_WholeMenuButtons>().Remove(item);
}
}
_dbContext.SaveChanges();
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
} return true;
} public IQueryable<ProjectsLimits> GetProjectsLimitsesByOperator(string operatorId)
{
try
{
var category = (from fx in _dbContext.T_ProjectLimits
join db in _dbContext.RbimProject
on fx.F_ItemKey equals db.ItemKey
where fx.F_OperatorID == operatorId
select new ProjectsLimits()
{
ProjectCode = db.ProjectCode,
ItemKey = db.ItemKey,
ItemText = fx.F_ItemText,
OperatorId = operatorId,
ProjectLocation = db.ProjectLocation,
ProjectRemark = db.ProjectRemark,
ProjectUrl = db.ProjectUrl,
RoleId = fx.F_RoleId,
SortId = fx.F_SortId
}).AsQueryable(); return category;
}
catch (EntityException ex)
{
LogHelper.Error(ex.Message);
throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} public IEnumerable<LineMileageLimits> GetLineMileageLimitsesByOperator(string operatorId, string projectKey)
{
try
{
var category = (from fx in _dbContext.LineMileage_Privilege
join db in _dbContext.LineMileages
on fx.MileageId equals db.MileageID.ToString()
where fx.NodeId == projectKey
&& fx.OperatorId==operatorId
select new LineMileageLimits()
{
SysId = fx.SysId,
MileageId = fx.MileageId,
MileageName = fx.MileageName,
ProjectKey = fx.NodeId,
ModelSizes = db.ModelSizes,
ModelType = db.ModelType,
NodeType = db.NodeType,
OperatorId = fx.OperatorId,
ParentMileageId = db.ParentMileageID,
PlanPath = db.PlanPath,
SortId = db.SortId,
RelationModel = db.RelationModel,
SOidModelFile = db.SOidModelFile }).AsEnumerable();
return category; }
catch (EntityException ex)
{ LogHelper.Error(ex.Message); throw ex.InnerException;
}
catch (DbException ex)
{
LogHelper.Error(ex.Message); throw ex.InnerException;
}
} #endregion
按钮服务
public void Dispose()
{
var dispose = _dbContext as IDisposable;
if (dispose != null)
{
_dbContext.Dispose();
}
}
}
4、WCF服务启动
public void ServiceStart()
{
try
{ string serviceport = ConfigurationManager.AppSettings["port"];// "8007";
string serviceIp = ConfigurationManager.AppSettings["serviceIp"];// "127.0.0.1";
string serviceAddress = string.Format("net.tcp://{0}:{1}", serviceIp, serviceport);
var sevtypes = new Dictionary<Type, Type>
{
{typeof (IOperationpurviewService), typeof (OperationService)} }; foreach (var item in sevtypes)
{
string tName = item.Key.Name.Substring();
string endpointAddress = serviceAddress + tName;
if (!serviceAddress.EndsWith("/"))
endpointAddress = string.Format("{0}/{1}", serviceAddress, tName);
var serviceHost = new ServiceHost(item.Value, new Uri(endpointAddress));
//加载元数据结点
var smb = new ServiceMetadataBehavior();
serviceHost.Description.Behaviors.Add(smb);
// serviceHost.Description.Behaviors.Add(new ServiceDebugBehavior(){IncludeExceptionDetailInFaults = true});
serviceHost.AddServiceEndpoint(typeof(IMetadataExchange),
MetadataExchangeBindings.CreateMexTcpBinding(), "mex");
//加载NetTcpBinding结点
var netTcpBinding = new NetTcpBinding
{
Security = { Mode = SecurityMode.None },
ReceiveTimeout = TimeSpan.Parse("10:59:00"),
CloseTimeout = TimeSpan.Parse("10:59:00"),
OpenTimeout = TimeSpan.Parse("10:59:00"),
SendTimeout = TimeSpan.Parse("10:59:00"),
MaxBufferPoolSize = long.MaxValue - ,
MaxBufferSize = int.MaxValue - ,
MaxReceivedMessageSize = int.MaxValue - ,
//MaxConnections = 1000,
ReaderQuotas =
{
MaxDepth = int.MaxValue - ,
MaxStringContentLength = int.MaxValue - ,
MaxArrayLength = int.MaxValue - ,
MaxBytesPerRead = int.MaxValue - ,
MaxNameTableCharCount = int.MaxValue -
}
// ,PortSharingEnabled = true //端口共享
};
serviceHost.AddServiceEndpoint(item.Key, netTcpBinding, endpointAddress);
string address = endpointAddress;
serviceHost.Opened += delegate
{
LoadPluginNameSpace.Add(new ServiceInfo() { Address = address + "/mex", Id = , State = "启动" });
}; serviceHost.Open();
ServiceHosts.Add(serviceHost);
}
}
catch (ConfigurationException e)
{
Console.WriteLine(e);
}
catch (Exception ex)
{
throw ex;
}
}
5、WCF 注册Windows服务
internal class OperatorService : ServiceBase
{
private IContainer components = null;
public ServiceHost serviceHost; public OperatorService()
{
this.InitializeComponent();
base.ServiceName= "LU.ServiceModule.OperationService";
} protected override void Dispose(bool disposing)
{
if (disposing && (this.components != null))
{
this.components.Dispose();
}
base.Dispose(disposing);
} private void InitializeComponent()
{
this.components = new Container();
base.ServiceName = "LU.ServiceModule.OperationService";
} protected override void OnStart(string[] args)
{
this.serviceHost = new ServiceHost(typeof(OperationService));
ServiceMetadataBehavior item = new ServiceMetadataBehavior();
this.serviceHost.Description.Behaviors.Add(item);
this.serviceHost.AddServiceEndpoint(typeof(IMetadataExchange), MetadataExchangeBindings.CreateMexTcpBinding(), "mex");
this.serviceHost.Opened += (param0, param1) => LogHelper.Info("OperationService is Starting!!!");
this.serviceHost.Open();
} protected override void OnStop()
{
if (this.serviceHost != null)
{
this.serviceHost.Abort();
}
}
}
BIM工程信息管理新系统- 系统管理模块的更多相关文章
- BIM工程信息管理系统搭建-系统功能需求
BIM工程信息管理系统功能需求 该系统是真实存在项目,项目于2013年开始研发到2014年初完成,按照当时技术能力和国内BIM现状,现在BIM技术已比之前好多了,不管是建模.展示等.均提高了不少,本博 ...
- BIM工程信息管理系统-详细设计
详细设计说明书 1引言 1.1编写目的 编写详细设计说明书的目的就是为程序员写出实际的程序代码提供依据.它是软件详细设计阶段所有任务和所有相关人员所需的参考资料. 1.2背景 说明: a. 软件名称 ...
- 配置新系统(Win7 x64)
新装了一个Win7 x64系统.总结了一些系统配置需要注意的地方. 1. C盘空间 发现C盘被用去了50G的空间,在什么软件都没装的情况下,被用去这么多,感到不可思议. 打开控制面板->文件夹选 ...
- Python 第五篇(下):系统标准模块(shutil、logging、shelve、configparser、subprocess、xml、yaml、自定义模块)
目录: shutil logging模块 shelve configparser subprocess xml处理 yaml处理 自定义模块 一,系统标准模块: 1.shutil:是一种高层次的文件操 ...
- (三):C++分布式实时应用框架——系统管理模块
C++分布式实时应用框架--系统管理模块 上篇:(二): 基于ZeroMQ的实时通讯平台 一个分布式实时系统集群动辄上百台机器,集群的规模已经限定这将是一个"封闭"的系统.你不可能 ...
- ansible笔记(8):常用模块之系统类模块(二)
ansible笔记():常用模块之系统类模块(二) user模块 user模块可以帮助我们管理远程主机上的用户,比如创建用户.修改用户.删除用户.为用户创建密钥对等操作. 此处我们介绍一些user模块 ...
- 谷歌被爆秘密研发新系统 欲5年内取代Android
谷歌2年多来有一群工程师秘密研发新系统,希望最终能取代手机操作系统安卓.安卓日前遭欧盟以反垄断为由重罚. 谷歌的新研发计划Fuchsia是从零开始,希望在更多个人装置和各式小巧装置联机上网的情况下,能 ...
- Django的认证系统—auth模块
Django的认证系统 auth模块的知识点总结: 1. 创建超级用户 python manage.py createsuperuser from django.contrib import auth ...
- C++分布式实时应用框架——系统管理模块
一个分布式实时系统集群动辄上百台机器,集群的规模已经限定这将是一个”封闭“的系统.你不可能再一台台去操作上百台机器,传统的人工运维方式早已不能满足当下需要,所有对集群或者集群中某个节点的操作都必需通过 ...
随机推荐
- vue项目 npm run dev在Linux 持久运行
touch run.dev.logchmod u+w run.dev.log 记录日志文件 nohup npm run dev > run.dev.log 2>run.dev.log &a ...
- 一道ctf-内存取证volatility的学习使用
环境:kali 0x00 volatility官方文档 https://github.com/volatilityfoundation/volatility 在分析之前,需要先判断当前的镜像信息,分析 ...
- 【转载】记一次因 Redis 使用不当导致应用卡死 bug 的排查及解决!
说明:此篇文章 作者分析问题的思路很好,值得学习记录,原文转载自公众号. 首先说下问题现象:内网sandbox环境API持续1周出现应用卡死,所有api无响应现象 刚开始当测试抱怨环境响应慢的时候 , ...
- MTDDL 美团分布式数据访问中间件(转)
MTDDL 美团分布式数据访问中间件(转) 原文地址:MTDDL--美团点评分布式数据访问层中间件 因原文文字和图显示有问题,故整理于此,仅供参考. 业界方案 组件 简介 Atlas Qihoo 36 ...
- C# - VS2019 WinFrm应用程序调用WebService服务
WinFrm应用程序调用WebService服务 关于WebService的创建.发布与部署等相关操作不再赘述,传送门如下:C# VS2019 WebService创建与发布,并部署到Windows ...
- P1356 数列的整除性
dp百题进度条[2/100] 题目链接 题目描述 对于任意一个整数数列,我们可以在每两个整数中间任意放一个符号'+'或'-',这样就可以构成一个表达式,也就可以计算出表达式的值.比如,现在有一个整数数 ...
- ES-入门
https://es.xiaoleilu.com/010_Intro/10_Installing_ES.html 1. 安装 https://www.elastic.co/cn/downloads/ ...
- VScode - 10个提高工作效率的快捷键
复制行 shift + alt + up / down 移动行 alt + up / down 多选 按住alt + 鼠标单击 删除上个单词 ctrl + Backspace 全部保存 ctrl + ...
- [20191127]探究等待事件的本源4.txt
[20191127]探究等待事件的本源4.txt --//昨天使用ash_wait_chains.sql脚本把各个生产库执行1遍,才发现我对一套系统性能理解错误.--//我一直以为这套系统存储有点问题 ...
- 使用Data Guard迁移到RAC (Doc ID 273015.1)
Migrating to RAC using Data Guard (Doc ID 273015.1) APPLIES TO: Oracle Database Cloud Exadata Servic ...