//---------------保存CRMRoleProvince--------------------------- public CRMRoleProvince Save(CRMRoleProvince entity) { if (this.dataCtx.Connection != null) { if (this.dataCtx.Connection.State == ConnectionState.Closed) { this.dataCtx.Connection.Open(); } } DbTransaction tran = this.dataCtx.Connection.BeginTransaction(); dataCtx.Transaction = tran; try { var qry = from t in CRMRoleProvinces where t.ID == entity.ID select t; var obj = qry.SingleOrDefault(); if (obj != null) { this.CopyEntity(obj, entity); } else { this.CRMRoleProvinces.InsertOnSubmit(entity); } this.dataCtx.SubmitChanges(); tran.Commit(); return(entity); } catch (Exception ex) { tran.Rollback(); throw ex; } finally { dataCtx.Connection.Close(); } }
//---------------保存CRMRole--------------------------- public CRMRole Save(CRMRole entity, IList<CRMProduct> prodList,IList<CRMRoleModule> ModuleRights, IList<CRMDepartment> depList, IList<CRMProvince> ProvinceList) { if (this.dataCtx.Connection != null) if (this.dataCtx.Connection.State == ConnectionState.Closed) this.dataCtx.Connection.Open(); DbTransaction tran = this.dataCtx.Connection.BeginTransaction(); dataCtx.Transaction = tran; try { var qry = from t in CRMRoles where t.RoleID == entity.RoleID select t; var obj = qry.SingleOrDefault(); if (obj != null) this.CopyEntity(obj, entity); else this.CRMRoles.InsertOnSubmit(entity); this.dataCtx.SubmitChanges(); //delete Role relationship with product var qryDel = from t in CRMRoleProds where t.RoleID == entity.RoleID select t; foreach (var item in qryDel.ToList()) { this.CRMRoleProds.DeleteOnSubmit(item); } //add new foreach (var prod in prodList) { //insert sub product var subList = GetSubProds(prod.ProdID); foreach (var sub in subList) { var p = new CRMRoleProd(); p.RoleID = entity.RoleID; p.ProdID = sub; this.CRMRoleProds.InsertOnSubmit(p); } } this.dataCtx.SubmitChanges(); //delete Role relationship with module var qryDelM = from t in CRMRoleModules where t.RoleID == entity.RoleID select t; foreach (var item in qryDelM.ToList()) { this.CRMRoleModules.DeleteOnSubmit(item); } //add new foreach (var Module in ModuleRights) { if (Module!=null) { var p = new CRMRoleModule(); p.RoleID = entity.RoleID; p.ModuleID = Module.ModuleID; p.ReadOnly = Module.ReadOnly; p.New = Module.New; p.Edit = Module.Edit; p.Del = Module.Del; this.CRMRoleModules.InsertOnSubmit(p); } } this.dataCtx.SubmitChanges(); //delete Role relationship with Department var qryDelDep = from t in CRMRoleDeps where t.RoleID == entity.RoleID select t; foreach (var item in qryDelDep.ToList()) { this.CRMRoleDeps.DeleteOnSubmit(item); } //add new foreach (var dep in depList) { if (dep != null) { var p = new CRMRoleDep(); p.RoleID = entity.RoleID; p.DepID = dep.DepID; this.CRMRoleDeps.InsertOnSubmit(p); } } this.dataCtx.SubmitChanges(); //delete Role relationship with province var qryDelProvince = from t in CRMRoleProvinces where t.RoleID == entity.RoleID select t; foreach (var item in qryDelProvince.ToList()) { this.CRMRoleProvinces.DeleteOnSubmit(item); } //add new foreach (var prov in ProvinceList) { if (prov != null) { var p = new CRMRoleProvince(); p.RoleID = entity.RoleID; p.ProvinceID = prov.ProvinceID; this.CRMRoleProvinces.InsertOnSubmit(p); } } this.dataCtx.SubmitChanges(); tran.Commit(); return entity; } catch (Exception ex) { tran.Rollback(); throw ex; } finally { dataCtx.Connection.Close(); } }
//---------------保存CRMRoleProvince--------------------------- public CRMRoleProvince Save(CRMRoleProvince entity) { if (this.dataCtx.Connection != null) if (this.dataCtx.Connection.State == ConnectionState.Closed) this.dataCtx.Connection.Open(); DbTransaction tran = this.dataCtx.Connection.BeginTransaction(); dataCtx.Transaction = tran; try { var qry = from t in CRMRoleProvinces where t.ID == entity.ID select t; var obj = qry.SingleOrDefault(); if (obj != null) this.CopyEntity(obj, entity); else this.CRMRoleProvinces.InsertOnSubmit(entity); this.dataCtx.SubmitChanges(); tran.Commit(); return entity; } catch (Exception ex) { tran.Rollback(); throw ex; } finally { dataCtx.Connection.Close(); } }
//---------------保存CRMRole--------------------------- public CRMRole Save(CRMRole entity, IList <CRMProduct> prodList, IList <CRMRoleModule> ModuleRights, IList <CRMDepartment> depList, IList <CRMProvince> ProvinceList) { if (this.dataCtx.Connection != null) { if (this.dataCtx.Connection.State == ConnectionState.Closed) { this.dataCtx.Connection.Open(); } } DbTransaction tran = this.dataCtx.Connection.BeginTransaction(); dataCtx.Transaction = tran; try { var qry = from t in CRMRoles where t.RoleID == entity.RoleID select t; var obj = qry.SingleOrDefault(); if (obj != null) { this.CopyEntity(obj, entity); } else { this.CRMRoles.InsertOnSubmit(entity); } this.dataCtx.SubmitChanges(); //delete Role relationship with product var qryDel = from t in CRMRoleProds where t.RoleID == entity.RoleID select t; foreach (var item in qryDel.ToList()) { this.CRMRoleProds.DeleteOnSubmit(item); } //add new foreach (var prod in prodList) { //insert sub product var subList = GetSubProds(prod.ProdID); foreach (var sub in subList) { var p = new CRMRoleProd(); p.RoleID = entity.RoleID; p.ProdID = sub; this.CRMRoleProds.InsertOnSubmit(p); } } this.dataCtx.SubmitChanges(); //delete Role relationship with module var qryDelM = from t in CRMRoleModules where t.RoleID == entity.RoleID select t; foreach (var item in qryDelM.ToList()) { this.CRMRoleModules.DeleteOnSubmit(item); } //add new foreach (var Module in ModuleRights) { if (Module != null) { var p = new CRMRoleModule(); p.RoleID = entity.RoleID; p.ModuleID = Module.ModuleID; p.ReadOnly = Module.ReadOnly; p.New = Module.New; p.Edit = Module.Edit; p.Del = Module.Del; this.CRMRoleModules.InsertOnSubmit(p); } } this.dataCtx.SubmitChanges(); //delete Role relationship with Department var qryDelDep = from t in CRMRoleDeps where t.RoleID == entity.RoleID select t; foreach (var item in qryDelDep.ToList()) { this.CRMRoleDeps.DeleteOnSubmit(item); } //add new foreach (var dep in depList) { if (dep != null) { var p = new CRMRoleDep(); p.RoleID = entity.RoleID; p.DepID = dep.DepID; this.CRMRoleDeps.InsertOnSubmit(p); } } this.dataCtx.SubmitChanges(); //delete Role relationship with province var qryDelProvince = from t in CRMRoleProvinces where t.RoleID == entity.RoleID select t; foreach (var item in qryDelProvince.ToList()) { this.CRMRoleProvinces.DeleteOnSubmit(item); } //add new foreach (var prov in ProvinceList) { if (prov != null) { var p = new CRMRoleProvince(); p.RoleID = entity.RoleID; p.ProvinceID = prov.ProvinceID; this.CRMRoleProvinces.InsertOnSubmit(p); } } this.dataCtx.SubmitChanges(); tran.Commit(); return(entity); } catch (Exception ex) { tran.Rollback(); throw ex; } finally { dataCtx.Connection.Close(); } }