/// <summary> /// 删除登录 /// </summary> /// <param name="loginKey">登录凭证</param> /// <param name="err">错误信息</param> /// <param name="keyId">删除登录</param> /// <returns>删除登录</returns> public bool Login_Delete(string loginKey, ref ProInterface.ErrorInfo err, int keyId) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(false); } using (DBEntities db = new DBEntities()) { try { var ent = db.fa_login.SingleOrDefault(a => a.ID == keyId); db.fa_login.Remove(ent); db.SaveChanges(); GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Delete); return(true); } catch (Exception e) { err.IsError = true; err.Message = e.Message; return(false); } } }
/// <summary> /// 查询一条 /// </summary> /// <param name="loginKey">登录凭证</param> /// <param name="err">错误信息</param> /// <param name="whereLambda">条件lambda表达表</param> /// <returns>查询一条</returns> public ProInterface.Models.LOGIN Login_Single(string loginKey, ref ProInterface.ErrorInfo err, string whereLambda) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(null); } using (DBEntities db = new DBEntities()) { IList <fa_login> content = new List <fa_login>(); Expression <Func <fa_login, bool> > whereFunc; try { whereFunc = StringToLambda.LambdaParser.Parse <Func <fa_login, bool> >(whereLambda); } catch { err.IsError = true; err.Message = "条件表态式有误"; return(null); } var reEnt = db.fa_login.Where(whereFunc).ToList(); if (reEnt.Count > 0) { return(Fun.ClassToCopy <fa_login, ProInterface.Models.LOGIN>(reEnt[0])); } return(null); } }
/// <summary> /// 添加系统用户 /// </summary> /// <param name="loginKey">登录凭证</param> /// <param name="err">错误信息</param> /// <param name="inEnt">实体类</param> /// <returns>添加系统用户</returns> public object User_Add(string loginKey, ref ProInterface.ErrorInfo err, ProInterface.Models.USER inEnt) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(null); } using (DBEntities db = new DBEntities()) { fa_user reEnt = Fun.ClassToCopy <ProInterface.Models.USER, fa_user>(inEnt); reEnt = db.fa_user.Add(reEnt); try { db.SaveChanges(); GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Add); return(reEnt.ID); } catch (Exception e) { err.IsError = true; err.Message = e.Message; err.Excep = e; return(null); } } }
/// <summary> /// 满足条件记录数 /// </summary> /// <param name="loginKey">登录凭证</param> /// <param name="err">错误信息</param> /// <param name="whereLambda">条件lambda表达表</param> /// <returns></returns> public int Login_Count(string loginKey, ref ProInterface.ErrorInfo err, string whereLambda) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(0); } using (DBEntities db = new DBEntities()) { IList <fa_login> content = new List <fa_login>(); Expression <Func <fa_login, bool> > whereFunc; try { if (whereLambda == null || whereLambda.Trim() == "") { return(db.fa_login.Count()); } whereFunc = StringToLambda.LambdaParser.Parse <Func <fa_login, bool> >(whereLambda); return(db.fa_login.Where(whereFunc).Count()); } catch { err.IsError = true; err.Message = "条件表态式有误"; return(0); } } }
/// <summary> /// 修改系统用户 /// </summary> /// <param name="loginKey">登录凭证</param> /// <param name="err">错误信息</param> /// <param name="inEnt">实体类</param> /// <returns>修改系统用户</returns> public bool User_Edit(string loginKey, ref ProInterface.ErrorInfo err, ProInterface.Models.USER inEnt) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(false); } using (DBEntities db = new DBEntities()) { try { var ent = db.fa_user.SingleOrDefault(a => a.ID == inEnt.ID); ent = Fun.ClassToCopy <ProInterface.Models.USER, fa_user>(inEnt, ent); db.SaveChanges(); GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Edit); return(true); } catch (Exception e) { err.IsError = true; err.Message = e.Message; err.Excep = e; return(false); } } }
public object Login_Save(DBEntities db, string loginKey, ref ProInterface.ErrorInfo err, ProInterface.Models.LOGIN inEnt, IList <string> allPar) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(null); } var ent = db.fa_login.SingleOrDefault(a => a.ID == inEnt.ID); bool isAdd = false; if (ent == null) { isAdd = true; ent = Mapper.Map <LOGIN, fa_login>(inEnt); ent.ID = Fun.GetCurrvalSeqID <fa_login>(); } else { ent = Fun.ClassToCopy <ProInterface.Models.LOGIN, fa_login>(inEnt, ent, allPar); } if (isAdd) { ent = db.fa_login.Add(ent); } GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Edit); return(ent); }
public bool RoleDelete(string loginKey, ref ErrorInfo err, int id) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(false); } using (DBEntities db = new DBEntities()) { try { var ent = db.fa_role.SingleOrDefault(a => a.ID == id); ent.fa_bulletin.Clear(); ent.fa_flow_flownode_flow.Clear(); ent.fa_function.Clear(); ent.fa_module.Clear(); ent.fa_user.Clear(); //ent.YL_APP_MEUN.Clear(); foreach (var t in ent.fa_role_config.ToList()) { db.fa_role_config.Remove(t); } db.fa_role.Remove(ent); db.SaveChanges(); GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Delete); return(true); } catch (Exception e) { err.IsError = true; err.Message = e.Message; return(false); } } }
public TUser UserGetNow(string loginKey, ref ErrorInfo err) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(null); } GlobalUser gu = Global.GetUser(loginKey); if (gu == null) { err.IsError = true; err.Message = "登录超时"; return(null); } using (DBEntities db = new DBEntities()) { var reEnt = db.fa_user.SingleOrDefault(x => x.ID == gu.UserId); if (reEnt != null) { var reUser = Fun.ClassToCopy <fa_user, ProInterface.Models.TUser>(reEnt); reUser.RoleAllID = ","; reUser.RoleAllName = ""; foreach (var t in reEnt.fa_role.ToList()) { reUser.RoleAllID += t.ID + ","; reUser.RoleAllName += "," + t.NAME; } if (reUser.RoleAllName.Length > 1) { reUser.RoleAllName = reUser.RoleAllName.Substring(1); } var dis = db.fa_district.SingleOrDefault(x => x.ID == gu.DistrictId); reUser.DistrictName = dis != null?dis.NAME:""; var myDisId = reEnt.DISTRICT_ID; var changeDis = db.fa_district.Where(x => x.LEVEL_ID == 2 && x.IN_USE == 1 && (x.ID == myDisId || x.PARENT_ID == myDisId)).OrderBy(x => x.ID).ToList(); reUser.CanChangeDistrict = Fun.ClassListToCopy <fa_district, DISTRICT>(changeDis); reUser.REMARK = ""; //if (reEnt.fa_user_INFO != null && reEnt.fa_user_INFO.YL_CHANNEL_INFO.Count() > 0) //{ // var allData = db.fa_user.Where(x => x.fa_user_INFO != null && x.DISTRICT_ID == reEnt.DISTRICT_ID && x.fa_role.Where(y => y.ID == 4).Count() > 0).ToList().Select(x => string.Format("渠道经理:{0}({1}) 归属:{2}", x.NAME, x.fa_user_INFO.PHONE_NUMBER, x.fa_district.NAME)).ToList(); // if (allData.Count() > 0) // { // allData = new List<string> { allData[0] }; // } // reUser.REMARK = string.Join("<br />", allData); //} //else //{ // reUser.REMARK = ""; //} var allModule = db.YL_MODULE.Where(x => x.IS_HIDE == 0 && x.fa_role.Where(y => gu.RoleID.Contains(y.ID)).Count() > 0).ToList(); reUser.MyModule = Fun.ClassListToCopy <YL_MODULE, MODULE>(allModule); return(reUser); } return(null); } }
/// <summary> /// 分页查询 /// </summary> /// <param name="loginKey">登录凭证</param> /// <param name="err">错误信息</param> /// <param name="pageIndex">当前页数</param> /// <param name="pageSize">页面大小</param> /// <param name="whereLambda">条件lambda表达表</param> /// <param name="orderField">排序字段</param> /// <param name="orderBy">排序方式</param> /// <returns>返回满足条件的泛型</returns> public IList <ProInterface.Models.LOGIN> Login_Where(string loginKey, ref ProInterface.ErrorInfo err, int pageIndex, int pageSize, string whereLambda, string orderField, string orderBy) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(null); } if (pageIndex < 1) { pageIndex = 1; } if (pageSize < 1) { pageSize = 1; } int skipCount = (pageIndex - 1) * pageSize; if (orderField == null || orderField == "") { err.IsError = true; err.Message = "排序表态式不能为空"; return(null); } using (DBEntities db = new DBEntities()) { var allList = db.fa_login.AsQueryable(); if (whereLambda != null && whereLambda != "") { try { Expression <Func <fa_login, bool> > whereFunc = StringToLambda.LambdaParser.Parse <Func <fa_login, bool> >(whereLambda); allList = db.fa_login.Where(whereFunc); } catch { err.IsError = true; err.Message = "条件表态式有误"; return(null); } } if (orderBy == "asc") { allList = StringFieldNameSortingSupport.OrderBy(allList, orderField); } else { allList = StringFieldNameSortingSupport.OrderByDescending(allList, orderField); } var content = allList.Skip(skipCount).Take(pageSize).ToList(); return(Fun.ClassListToCopy <fa_login, ProInterface.Models.LOGIN>(content)); } }
/// <summary> /// 分页查询 /// </summary> /// <param name="loginKey">登录凭证</param> /// <param name="err">错误信息</param> /// <returns>返回满足条件的泛型</returns> public IList <ProInterface.Models.USER> User_FindAll(string loginKey, ref ProInterface.ErrorInfo err) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(null); } using (DBEntities db = new DBEntities()) { var allList = db.fa_user.ToList(); return(Fun.ClassListToCopy <fa_user, ProInterface.Models.USER>(allList)); } }
public bool UserEdit(string loginKey, ref ErrorInfo err, TUser inEnt) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(false); } using (DBEntities db = new DBEntities()) { try { var ent = db.fa_user.SingleOrDefault(a => a.ID == inEnt.ID); //ent = Fun.ClassToCopy<ProInterface.Models.TUser, fa_user>(inEnt, ent); ent.NAME = inEnt.NAME; ent.DISTRICT_ID = inEnt.DISTRICT_ID; ent.IS_LOCKED = inEnt.IS_LOCKED; ent.REMARK = inEnt.REMARK; ent.REGION = ent.DISTRICT_ID.ToString(); IList <int> moduleID = new List <int>(); foreach (var str in inEnt.RoleAllID.Split(',')) { if (!string.IsNullOrEmpty(str)) { moduleID.Add(Convert.ToInt32(str)); } } ent.fa_role.Clear(); ent.fa_role = db.fa_role.Where(x => moduleID.Contains(x.ID)).ToList(); ent.fa_district1.Clear(); if (!string.IsNullOrEmpty(inEnt.UserDistrict)) { var disArrList = inEnt.UserDistrict.Split(',').Select(x => Convert.ToInt32(x)).ToList(); ent.fa_district1 = db.fa_district.Where(x => disArrList.Contains(x.ID)).ToList(); } var login = db.fa_login.SingleOrDefault(a => a.LOGIN_NAME == ent.LOGIN_NAME); login.IS_LOCKED = inEnt.IS_LOCKED; login.LOCKED_REASON = inEnt.LOCKED_REASON; login.PHONE_NO = inEnt.PHONE_NO; login.REGION = inEnt.DISTRICT_ID.ToString(); db.SaveChanges(); GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Edit); return(true); } catch (Exception e) { err.IsError = true; err.Message = e.Message; err.Excep = e; return(false); } } }
public TRole RoleSingle(string loginKey, ref ErrorInfo err, int id) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(null); } using (DBEntities db = new DBEntities()) { var reEnt = db.fa_role.Where(x => x.ID == id).ToList(); TRole tmp = new TRole(); IList <KV> allPara = new List <KV>(); if (reEnt.Count > 0) { tmp = Fun.ClassToCopy <fa_role, ProInterface.Models.TRole>(reEnt[0]); tmp.ModuleAllStr = ","; foreach (var t in reEnt[0].fa_module.ToList()) { tmp.ModuleAllStr += t.ID + ","; } tmp.RoleConfigs = Fun.ClassListToCopy <fa_role_config, ROLE_CONFIG>(reEnt[0].fa_role_config.ToList()); } //添加 foreach (var t in allPara) { var cfg = tmp.RoleConfigs.SingleOrDefault(x => x.NAME == t.K); if (cfg == null) { tmp.RoleConfigs.Add(new ROLE_CONFIG { NAME = t.K, REMARK = t.V }); } else { cfg.REMARK = t.V; } } //删除 foreach (var t in tmp.RoleConfigs) { if (allPara.SingleOrDefault(x => x.K == t.NAME) == null) { tmp.RoleConfigs.Remove(t); } } tmp.RoleConfigsStr = JSON.DecodeToStr(tmp.RoleConfigs); return(tmp); } }
/// <summary> /// 查询一条 /// </summary> /// <param name="loginKey">登录凭证</param> /// <param name="err">错误信息</param> /// <param name="keyId">主键ID</param> /// <returns>查询一条</returns> public ProInterface.Models.LOGIN Login_SingleId(string loginKey, ref ProInterface.ErrorInfo err, int keyId) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(null); } using (DBEntities db = new DBEntities()) { var ent = db.fa_login.SingleOrDefault(x => x.ID == keyId); var reEnt = new ProInterface.Models.LOGIN(); if (ent != null) { reEnt = Fun.ClassToCopy <fa_login, ProInterface.Models.LOGIN>(ent); } return(reEnt); } }
/// <summary> /// 删除用户,并删除该用户的登录信息 /// </summary> /// <param name="loginKey"></param> /// <param name="err"></param> /// <param name="keyId"></param> /// <returns></returns> public bool UserDelete(string loginKey, ref ErrorInfo err, int keyId) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(false); } using (DBEntities db = new DBEntities()) { try { var ent = db.fa_user.SingleOrDefault(a => a.ID == keyId); var login = db.fa_login.Where(x => x.LOGIN_NAME == ent.LOGIN_NAME).ToList(); foreach (var t in login) { db.fa_login.Remove(t); } foreach (var t in ent.fa_user_ADDRESS.ToList()) { db.fa_user_ADDRESS.Remove(t); } ent.fa_role.Clear(); ent.YL_MODULE.Clear(); db.fa_user.Remove(ent); db.SaveChanges(); UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Delete); return(true); } catch (Exception e) { err.IsError = true; err.Message = e.Message; return(false); } } }
public bool RoleSaveNoAuthority(string loginKey, ref ErrorInfo err, int roleId, int queryId, string AuthArr) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(false); } using (DBEntities db = new DBEntities()) { var roleAuth = db.fa_role_query_authority.SingleOrDefault(x => x.ROLE_ID == roleId && x.QUERY_ID == queryId); if (roleAuth == null) { db.fa_role_query_authority.Add(new fa_role_query_authority { NO_AUTHORITY = AuthArr, QUERY_ID = queryId, ROLE_ID = roleId }); } else { roleAuth.NO_AUTHORITY = AuthArr; } db.SaveChanges(); } return(true); }
public TUser UserGetAndSave(string loginKey, ref ErrorInfo err, TUser inEnt, IList <string> allPar) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(null); } using (DBEntities db = new DBEntities()) { try { string nowLoginName = inEnt.LOGIN_NAME; var userEnt = db.fa_user.SingleOrDefault(x => x.LOGIN_NAME == inEnt.LOGIN_NAME); var loginEnt = db.fa_login.SingleOrDefault(x => x.LOGIN_NAME == nowLoginName); if (userEnt == null) { userEnt = Fun.ClassToCopy <ProInterface.Models.TUser, fa_user>(inEnt); userEnt.ID = Fun.GetSeqID <fa_user>(); userEnt.CREATE_TIME = DateTime.Now; userEnt.LOGIN_COUNT = 0; userEnt.REGION = db.fa_district.SingleOrDefault(p => p.ID == inEnt.DISTRICT_ID).REGION; db.fa_user.Add(userEnt); } if (loginEnt == null) { loginEnt = Fun.ClassToCopy <TUser, fa_login>(inEnt); loginEnt.ID = Fun.GetSeqID <fa_login>(); loginEnt.PASSWORD = (string.IsNullOrEmpty(inEnt.PassWord)) ? AppSet.DefaultPwd.Md5() : inEnt.PassWord.Md5(); loginEnt.REGION = userEnt.REGION; db.fa_login.Add(loginEnt); } IList <int> allRoleId = userEnt.fa_role.Select(x => x.ID).ToList(); foreach (var t in inEnt.RoleAllID.Split(',').Where(x => !string.IsNullOrEmpty(x)).Select(x => Convert.ToInt32(x)).ToList()) { allRoleId.Add(t); } ; userEnt.fa_role.Clear(); userEnt.fa_role = db.fa_role.Where(x => allRoleId.Contains(x.ID)).ToList(); db.SaveChanges(); inEnt = Fun.ClassToCopy <fa_user, TUser>(userEnt, inEnt); inEnt.ID = userEnt.ID; GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Edit); return(inEnt); } catch (DbEntityValidationException e) { err.IsError = true; err.Message = Fun.GetDbEntityErrMess(e); return(null); } catch (Exception e) { err.IsError = true; err.Message = Fun.GetExceptionMessage(e); return(null); } } }
public object UserAdd(string loginKey, ref ErrorInfo err, TUser inEnt) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(null); } GlobalUser gu = Global.GetUser(loginKey); using (DBEntities db = new DBEntities()) { fa_user reEnt = Fun.ClassToCopy <ProInterface.Models.TUser, fa_user>(inEnt); var nowDis = db.fa_district.SingleOrDefault(p => p.ID == inEnt.DISTRICT_ID); reEnt.CREATE_TIME = DateTime.Now; reEnt.DISTRICT_ID = nowDis.ID; reEnt.LOGIN_COUNT = 0; IList <int> moduleID = new List <int>(); foreach (var str in inEnt.RoleAllID.Split(',')) { if (!string.IsNullOrEmpty(str)) { moduleID.Add(Convert.ToInt32(str)); } } reEnt.ID = Fun.GetSeqID <fa_user>(); reEnt.REGION = nowDis.REGION; reEnt.fa_role = db.fa_role.Where(x => moduleID.Contains(x.ID)).ToList(); reEnt.fa_district1.Clear(); if (!string.IsNullOrEmpty(inEnt.UserDistrict)) { var disArrList = inEnt.UserDistrict.Split(',').Select(x => Convert.ToInt32(x)).ToList(); reEnt.fa_district1 = db.fa_district.Where(x => disArrList.Contains(x.ID)).ToList(); } reEnt = db.fa_user.Add(reEnt); fa_login login = new fa_login(); login.ID = Fun.GetSeqID <fa_login>(); login.LOGIN_NAME = inEnt.LOGIN_NAME; if (!string.IsNullOrEmpty(inEnt.PassWord)) { login.PASSWORD = inEnt.PassWord.Md5(); } else { login.PASSWORD = AppSet.DefaultPwd.Md5(); } login.PHONE_NO = inEnt.PHONE_NO; login.IS_LOCKED = inEnt.IS_LOCKED; login.LOCKED_REASON = inEnt.LOCKED_REASON; login.REGION = reEnt.REGION; login = db.fa_login.Add(login); try { db.SaveChanges(); GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Add); return(reEnt.ID); } catch (Exception e) { err.IsError = true; err.Message = Fun.GetExceptionMessage(e); err.Excep = e; return(null); } } }
public TUser UserSave(string loginKey, ref ErrorInfo err, TUser inEnt, IList <string> allPar) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(null); } using (DBEntities db = new DBEntities()) { try { var idPar = allPar.SingleOrDefault(x => x == "ID"); if (idPar != null) { allPar.Remove(idPar); } var userEnt = db.fa_user.SingleOrDefault(a => a.ID == inEnt.ID); if (userEnt == null) { userEnt = db.fa_user.SingleOrDefault(x => x.LOGIN_NAME == inEnt.LOGIN_NAME); } var loginEnt = db.fa_login.SingleOrDefault(x => x.LOGIN_NAME == inEnt.LOGIN_NAME); bool isAdd = false; if (userEnt == null) { isAdd = true; userEnt = Fun.ClassToCopy <ProInterface.Models.TUser, fa_user>(inEnt); if (userEnt.ID == 0) { userEnt.ID = Fun.GetSeqID <fa_user>(); } userEnt.CREATE_TIME = DateTime.Now; userEnt.LOGIN_COUNT = 0; userEnt.REGION = db.fa_district.SingleOrDefault(p => p.ID == inEnt.DISTRICT_ID).REGION; } else { if (db.fa_user.Where(x => x.LOGIN_NAME == inEnt.LOGIN_NAME && x.ID != userEnt.ID).Count() > 0) { err.IsError = true; err.Message = "登录工号已经存在"; return(null); } userEnt = Fun.ClassToCopy <ProInterface.Models.TUser, fa_user>(inEnt, userEnt, allPar); } if (loginEnt == null) { loginEnt = Fun.ClassToCopy <TUser, fa_login>(inEnt); loginEnt.ID = Fun.GetSeqID <fa_login>(); loginEnt.PASSWORD = AppSet.DefaultPwd.Md5(); loginEnt.REGION = userEnt.REGION; db.fa_login.Add(loginEnt); } else { if (db.fa_login.Where(x => x.LOGIN_NAME == loginEnt.LOGIN_NAME && x.ID != loginEnt.ID).Count() > 0) { err.IsError = true; err.Message = "登录工号已经存在"; return(null); } loginEnt = Fun.ClassToCopy <TUser, fa_login>(inEnt, loginEnt, allPar); loginEnt.PHONE_NO = inEnt.PHONE_NO; } if (allPar.Contains("RoleAllID")) { IList <int> allRoleId = new List <int>(); allRoleId = inEnt.RoleAllID.Split(',').Where(x => !string.IsNullOrEmpty(x)).Select(x => Convert.ToInt32(x)).ToList(); userEnt.fa_role.Clear(); userEnt.fa_role = db.fa_role.Where(x => allRoleId.Contains(x.ID)).ToList(); } if (isAdd) { db.fa_user.Add(userEnt); } userEnt.fa_district1.Clear(); if (!string.IsNullOrEmpty(inEnt.UserDistrict)) { var disArrList = inEnt.UserDistrict.Split(',').Select(x => Convert.ToInt32(x)).ToList(); userEnt.fa_district1 = db.fa_district.Where(x => disArrList.Contains(x.ID)).ToList(); } db.SaveChanges(); inEnt = Fun.ClassToCopy <fa_user, TUser>(userEnt, inEnt); inEnt.ID = userEnt.ID; GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Edit); return(inEnt); } catch (Exception e) { err.IsError = true; if (e.Message.IndexOf("EntityValidationErrors") > -1) { err.Message = Fun.GetDbEntityErrMess(e as DbEntityValidationException); } else { System.Data.Entity.Infrastructure.DbUpdateException t = e as System.Data.Entity.Infrastructure.DbUpdateException; err.Message = t.Message; } return(null); } } }
public bool RoleSave(string loginKey, ref ErrorInfo err, TRole inEnt, IList <string> allPar) { if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(false); } using (DBEntities db = new DBEntities()) { try { var ent = db.fa_role.SingleOrDefault(a => a.ID == inEnt.ID); bool isAdd = false; if (ent == null) { isAdd = true; ent = Fun.ClassToCopy <ProInterface.Models.ROLE, fa_role>(inEnt); ent.ID = Fun.GetSeqID <fa_role>(); } else { ent = Fun.ClassToCopy <ProInterface.Models.ROLE, fa_role>(inEnt, ent, allPar); } ent.fa_module.Clear(); IList <int> moduleID = inEnt.ModuleAllStr.Split(',').Select(x => Convert.ToInt32(x)).ToList(); ent.fa_module = db.fa_module.Where(x => moduleID.Contains(x.ID)).ToList(); inEnt.RoleConfigs = JSON.EncodeToEntity <IList <ROLE_CONFIG> >(inEnt.RoleConfigsStr); foreach (var t in inEnt.RoleConfigs) { var cfg = ent.fa_role_config.SingleOrDefault(x => x.NAME == t.NAME); if (cfg == null) { ent.fa_role_config.Add(new fa_role_config { NAME = t.NAME, ROLE_ID = ent.ID, VALUE = t.VALUE }); } else { cfg.VALUE = t.VALUE; } } foreach (var t in ent.fa_role_config.ToList()) { if (inEnt.RoleConfigs.SingleOrDefault(x => x.NAME == t.NAME) == null) { db.fa_role_config.Remove(t); } } if (isAdd) { db.fa_role.Add(ent); } db.SaveChanges(); GlobalFun.UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Edit); return(true); } catch (DbEntityValidationException e) { err.IsError = true; err.Message = e.Message; err.Excep = e; return(false); } } }