Exemple #1
0
        private async Task CreateOrRemoveRelationRoleEmployee(EmployeeRequestDto employeeRequestDto)
        {
            var empRole = await _relationEmployeeRoleAppService.GetRoleIdsByEmployeeIds(new List <string>() { employeeRequestDto.Id });

            var dbRoleIds     = empRole.Select(r => r.RoleId).ToList();
            var addRoleIds    = employeeRequestDto.RoleIds.Except(dbRoleIds);
            var removeRoleIds = dbRoleIds.Except(employeeRequestDto.RoleIds);

            var addRelationRoleEmp = addRoleIds.Select(o => new RelationEmployeeRoleRequestDto
            {
                Id             = Guid.NewGuid().ToString(),
                RoleId         = o,
                EmployeeId     = employeeRequestDto.Id,
                CreateUserId   = employeeRequestDto.CreateUserId,
                CreateUserName = employeeRequestDto.CreateUserName
            });
            await _relationEmployeeRoleAppService.BatchCreateAsync(addRelationRoleEmp.ToList());

            var removeRelationRoleEmp = new RelationEmployeeRoleRemoveDto
            {
                EmployeeId     = employeeRequestDto.Id,
                RoleIds        = removeRoleIds.ToList(),
                ModifyUserId   = employeeRequestDto.ModifyUserId,
                ModifyUserName = employeeRequestDto.ModifyUserName,
                ModifyDate     = DateTime.Now
            };
            await _relationEmployeeRoleAppService.RemoveByEmployeeIdAndRoleIds(removeRelationRoleEmp);
        }
        /// <summary>
        /// 批量新增
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <JsonResponse> BatchCreate(RelationEmployeeRoleBatchRequestDto input)
        {
            foreach (var relationEmployeeRoleRequestDto in input.RelationEmployeeRoleRequestList)
            {
                relationEmployeeRoleRequestDto.InitCreateRequest(input.Payload);
            }
            var resJson = await _applicationEnginee.TryTransactionAsync(async() =>
            {
                await _relationEmployeeRoleAppService.BatchCreateAsync(input.RelationEmployeeRoleRequestList);
            });

            return(resJson);
        }