예제 #1
0
        public async Task UpdateRoleDeparmtents(int roleId, List <RoleInDepartment> models)
        {
            var old = await _roleInDepartmentService.Get(new RoleInDepartmentGetOptions { RoleId = roleId });

            var toDelete = old.Select(o => o.Id).Where(o => !models.Select(du => du.Id).Contains(o)).ToList();
            var toUpdate = old.Where(o => models.Select(du => du.Id).Contains(o.Id)).ToList();
            var toCreate = models.Where(o => !old.Select(du => du.Id).Contains(o.Id)).ToList();

            toCreate.ForEach(o => o.RoleId = roleId);

            await _roleInDepartmentService.Delete(toDelete);

            await _roleInDepartmentService.Update(toUpdate);

            await _roleInDepartmentService.Create(toCreate);
        }