/// <summary> /// 创建一个菜单 /// </summary> /// <param name="validationErrors">返回的错误信息</param> /// <param name="db">数据库上下文</param> /// <param name="entity">一个菜单</param> /// <returns></returns> public bool Create(ref ValidationErrors validationErrors, SysEntities db, SysMenu entity) { int count = 1; foreach (string item in entity.SysOperationId.GetIdSort()) { SysOperation sys = new SysOperation { Id = item }; db.SysOperation.Attach(sys); entity.SysOperation.Add(sys); count++; } repository.Create(db, entity); if (count == repository.Save(db)) { //创建后重置菜单编码 List<int> flags = new List<int>();//层级 GetMenus2(null, flags); db.SaveChanges(); return true; } else { validationErrors.Add("创建出错了"); } return false; }
/// <summary> /// 创建一个操作 /// </summary> /// <param name="validationErrors">返回的错误信息</param> /// <param name="db">数据库上下文</param> /// <param name="entity">一个操作</param> /// <returns></returns> public bool Create(ref ValidationErrors validationErrors, SysEntities db, SysOperation entity) { int count = 1; foreach (string item in entity.SysMenuId.GetIdSort()) { SysMenu sys = new SysMenu { Id = item }; db.SysMenu.Attach(sys); entity.SysMenu.Add(sys); count++; } repository.Create(db, entity); if (count == repository.Save(db)) { return true; } else { validationErrors.Add("创建出错了"); } return false; }
/// <summary> /// 创建一个操作 /// </summary> /// <param name="validationErrors">返回的错误信息</param> /// <param name="entity">一个操作</param> /// <returns></returns> public bool Create(ref ValidationErrors validationErrors, SysOperation entity) { try { using (TransactionScope transactionScope = new TransactionScope()) { if (Create(ref validationErrors, db, entity)) { transactionScope.Complete(); return true; } else { Transaction.Current.Rollback(); } } } catch (Exception ex) { validationErrors.Add(ex.Message); ExceptionsHander.WriteExceptions(ex); } return false; }
/// <summary> /// 设置一个菜单 /// </summary> /// <param name="validationErrors">返回的错误信息</param> /// <param name="entity">一个菜单</param> /// <returns>是否设置成功</returns> public bool SetSysMenu(ref ValidationErrors validationErrors, SysOperation entity) { bool bResult = false; int count = 0; using (TransactionScope transactionScope = new TransactionScope()) { try { SysOperation editEntity = repository.GetById(db, entity.Id); List<string> addSysMenuId = new List<string>(); List<string> deleteSysMenuId = new List<string>(); if (entity.SysMenuId != null) { addSysMenuId = entity.SysMenuId.Split(',').ToList(); } if (entity.SysMenuIdOld != null) { deleteSysMenuId = entity.SysMenuIdOld.Split(',').ToList(); } DataOfDiffrent.GetDiffrent(addSysMenuId, deleteSysMenuId, ref addSysMenuId, ref deleteSysMenuId); if (addSysMenuId != null && addSysMenuId.Count() > 0) { foreach (var item in addSysMenuId) { SysMenu sys = new SysMenu { Id = item }; db.SysMenu.Attach(sys); editEntity.SysMenu.Add(sys); count++; } } if (deleteSysMenuId != null && deleteSysMenuId.Count() > 0) { List<SysMenu> listEntity = new List<SysMenu>(); foreach (var item in deleteSysMenuId) { SysMenu sys = new SysMenu { Id = item }; listEntity.Add(sys); db.SysMenu.Attach(sys); } foreach (SysMenu item in listEntity) { editEntity.SysMenu.Remove(item);//查询数据库 count++; } } if (count > 0 && count == repository.Save(db)) { transactionScope.Complete(); bResult = true; } else if(count == 0 ) { validationErrors.Add("数据没有改变"); } } catch (Exception ex) { Transaction.Current.Rollback(); ExceptionsHander.WriteExceptions(ex); validationErrors.Add("编辑出错了。原因"+ex.Message); } } return bResult; }
/// <summary> /// 编辑一个操作 /// </summary> /// <param name="validationErrors">返回的错误信息</param> /// <param name="db">数据上下文</param> /// <param name="entity">一个操作</param> /// <returns>是否编辑成功</returns> public bool Edit(ref ValidationErrors validationErrors, SysEntities db, SysOperation entity) { /* * 不操作 原有 现有 * 增加 原没 现有 * 删除 原有 现没 */ if (entity == null) { return false; } int count = 1; List<string> addSysMenuId = new List<string>(); List<string> deleteSysMenuId = new List<string>(); DataOfDiffrent.GetDiffrent(entity.SysMenuId.GetIdSort(), entity.SysMenuIdOld.GetIdSort(), ref addSysMenuId, ref deleteSysMenuId); List<SysMenu> listEntitySysMenu = new List<SysMenu>(); if (deleteSysMenuId != null && deleteSysMenuId.Count() > 0) { foreach (var item in deleteSysMenuId) { SysMenu sys = new SysMenu { Id = item }; listEntitySysMenu.Add(sys); entity.SysMenu.Add(sys); } } SysOperation editEntity = repository.Edit(db, entity); if (addSysMenuId != null && addSysMenuId.Count() > 0) { foreach (var item in addSysMenuId) { SysMenu sys = new SysMenu { Id = item }; db.SysMenu.Attach(sys); editEntity.SysMenu.Add(sys); count++; } } if (deleteSysMenuId != null && deleteSysMenuId.Count() > 0) { foreach (SysMenu item in listEntitySysMenu) { editEntity.SysMenu.Remove(item); count++; } } if (count == repository.Save(db)) { return true; } else { validationErrors.Add("编辑操作出错了"); } return false; }
/// <summary> /// 编辑一个菜单 /// </summary> /// <param name="validationErrors">返回的错误信息</param> /// <param name="db">数据上下文</param> /// <param name="entity">一个菜单</param> /// <returns>是否编辑成功</returns> public bool Edit(ref ValidationErrors validationErrors, SysEntities db, SysMenu entity) { /* * 不操作 原有 现有 * 增加 原没 现有 * 删除 原有 现没 */ if (entity == null) { return false; } int count = 1; List<string> addSysOperationId = new List<string>(); List<string> deleteSysOperationId = new List<string>(); DataOfDiffrent.GetDiffrent(entity.SysOperationId.GetIdSort(), entity.SysOperationIdOld.GetIdSort(), ref addSysOperationId, ref deleteSysOperationId); List<SysOperation> listEntitySysOperation = new List<SysOperation>(); if (deleteSysOperationId != null && deleteSysOperationId.Count() > 0) { foreach (var item in deleteSysOperationId) { SysOperation sys = new SysOperation { Id = item }; listEntitySysOperation.Add(sys); entity.SysOperation.Add(sys); } } SysMenu editEntity = repository.Edit(db, entity); if (addSysOperationId != null && addSysOperationId.Count() > 0) { foreach (var item in addSysOperationId) { SysOperation sys = new SysOperation { Id = item }; db.SysOperation.Attach(sys); editEntity.SysOperation.Add(sys); count++; } } if (deleteSysOperationId != null && deleteSysOperationId.Count() > 0) { foreach (SysOperation item in listEntitySysOperation) { editEntity.SysOperation.Remove(item); count++; } } if (count == repository.Save(db)) { //修改后重置菜单编码 List<int> flags = new List<int>();//层级 GetMenus2(null, flags); db.SaveChanges(); return true; } else { validationErrors.Add("编辑菜单出错了"); } return false; }