public void CreateOrUpdateGroupPermission(Guid groupId, List <Sys_GroupPermission2Entity> lstAdding, List <Sys_GroupPermission2Entity> lstEdit, List <Guid> resetPermissionResourceIds) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoGroupPermission2 = new Sys_GroupPermission2Repository(unitOfWork); var sysGroupPermission2 = new Sys_GroupPermission2(); var hasChangeData = false; var edit = lstEdit.Translate <Sys_GroupPermission2>(); var add = lstAdding.Translate <Sys_GroupPermission2>(); if (add.Any()) { #region Tạm thời khoá đoạn này vì trên controller api (api/Sys_GroupPermissionController) đã xử lý rồi //Trước khi thêm mới => lay những resouces không nằm trong db //var groupPermisstion2s = GetGroupPermissionByGroup(groupId); //var resourceIds = groupPermisstion2s.Select(p=>p.ResourceID).ToList(); //add = add.Where(p => !resourceIds.Contains(p.ResourceID)).ToList(); #endregion //thêm mới repoGroupPermission2.Add(add); hasChangeData = true; } if (edit.Any()) { repoGroupPermission2.Edit(edit); hasChangeData = true; } if (hasChangeData) { repoGroupPermission2.SaveChanges(); } #region reset quyền là 0 neu tat ca groupPermissionByGroupId khi chưa gán quyền (view,insert,modify....) if (groupId != Guid.Empty) { var listResourceId = new List <Guid>(); listResourceId = lstAdding.Select(p => p.ResourceID).ToList(); if (lstEdit.Any()) { var listResourceIdEdit = lstEdit.Select(p => p.ResourceID).ToList(); listResourceId.AddRange(listResourceIdEdit); } listResourceId = listResourceId.Distinct().ToList(); var serviceGroupPermission = new Sys_GroupPermissionServices(); var groupPermissions = serviceGroupPermission.GetAllGroupPermissionByGroupId(groupId).Translate <Sys_GroupPermission2>(); groupPermissions = groupPermissions.Where(p => !resetPermissionResourceIds.Contains(p.ResourceID)).ToList(); if (groupPermissions.Any()) { foreach (var sysGroupPermissionEntity in groupPermissions) { sysGroupPermissionEntity.PrivilegeNumber = 0; repoGroupPermission2.Edit(sysGroupPermissionEntity); } repoGroupPermission2.SaveChanges(); } } #endregion } }
public void CreateOrUpdateGroupPermission(Guid groupId, List<Sys_GroupPermission2Entity> lstAdding, List<Sys_GroupPermission2Entity> lstEdit, List<Guid> resetPermissionResourceIds) { using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork) (new UnitOfWork(context)); var repoGroupPermission2 = new Sys_GroupPermission2Repository(unitOfWork); var sysGroupPermission2 = new Sys_GroupPermission2(); var hasChangeData = false; var edit = lstEdit.Translate<Sys_GroupPermission2>(); var add = lstAdding.Translate<Sys_GroupPermission2>(); if (add.Any()) { #region Tạm thời khoá đoạn này vì trên controller api (api/Sys_GroupPermissionController) đã xử lý rồi //Trước khi thêm mới => lay những resouces không nằm trong db //var groupPermisstion2s = GetGroupPermissionByGroup(groupId); //var resourceIds = groupPermisstion2s.Select(p=>p.ResourceID).ToList(); //add = add.Where(p => !resourceIds.Contains(p.ResourceID)).ToList(); #endregion //thêm mới repoGroupPermission2.Add(add); hasChangeData = true; } if (edit.Any()) { repoGroupPermission2.Edit(edit); hasChangeData = true; } if (hasChangeData) { repoGroupPermission2.SaveChanges(); } #region reset quyền là 0 neu tat ca groupPermissionByGroupId khi chưa gán quyền (view,insert,modify....) if (groupId != Guid.Empty) { var listResourceId = new List<Guid>(); listResourceId = lstAdding.Select(p => p.ResourceID).ToList(); if (lstEdit.Any()) { var listResourceIdEdit = lstEdit.Select(p => p.ResourceID).ToList(); listResourceId.AddRange(listResourceIdEdit); } listResourceId = listResourceId.Distinct().ToList(); var serviceGroupPermission = new Sys_GroupPermissionServices(); var groupPermissions = serviceGroupPermission.GetAllGroupPermissionByGroupId(groupId).Translate<Sys_GroupPermission2>(); groupPermissions = groupPermissions.Where(p => !resetPermissionResourceIds.Contains(p.ResourceID)).ToList(); if (groupPermissions.Any()) { foreach (var sysGroupPermissionEntity in groupPermissions) { sysGroupPermissionEntity.PrivilegeNumber = 0; repoGroupPermission2.Edit(sysGroupPermissionEntity); } repoGroupPermission2.SaveChanges(); } } #endregion } }