示例#1
0
        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
            }
        }
示例#2
0
        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


            }
        }