public async Task <ObjectResult> Handle(UserRoleBatchDeleteCommand request, CancellationToken cancellationToken) { var resourcePartUri = uriService.GetUriWithoutQuery().URIUpperLevel(); var result = new MultiStatusObjectResult(); var userRoleIds = request.UserRoleIds.Split(",", StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < userRoleIds.Length; i++) { var userRoleId = userRoleIds[i]; var role = await userRoleRepository.FindAsync(userRoleId); if (role == null) { result.AddResult($"{resourcePartUri}/{userRoleId}", 404, ""); continue; } if (role.IsDefault == EntityStateConst.IsDefault) { var roleType = Enumeration.FromValue <Role>(role.RoleId); result.AddResult($"{resourcePartUri}/{userRoleId}", 403, localizer["UserRole.CannotDeleteDefaultRole", localizer[roleType.Name]]); continue; } await userRoleRepository.DeleteAsync(userRoleId, null); result.AddResult($"{resourcePartUri}/{userRoleId}", 200, ""); } return(result.Transfer()); }
public async Task <ObjectResult> Handle(ProductBatchDeleteCommand request, CancellationToken cancellationToken) { var result = new MultiStatusObjectResult(); var operatorId = identityService.GetUserId(); var resourcePartUri = uriService.GetUriWithoutQuery().URIUpperLevel(); var idArr = request.Ids.Split(",", StringSplitOptions.RemoveEmptyEntries); for (int i = 0, len = idArr.Count(); i < len; i++) { var id = idArr[i]; var uri = $"{resourcePartUri}/{id}"; var data = await productRepository.FindAsync(id); if (data == null) { result.AddResult(uri, 404, ""); continue; } await productRepository.DeleteAsync(data, operatorId); result.AddResult(uri, 200, ""); } return(result.Transfer()); }
public async Task <ObjectResult> Handle(MapBatchDeleteCommand request, CancellationToken cancellationToken) { var canOperate = await clientAssetPermissionControlService.CanEditClientAsset(); if (!canOperate) { throw new HttpForbiddenException(); } var result = new MultiStatusObjectResult(); var operatorId = identityService.GetUserId(); var resourcePartUri = uriService.GetUriWithoutQuery().URIUpperLevel(); var idArr = request.Ids.Split(",", StringSplitOptions.RemoveEmptyEntries); for (int i = 0, len = idArr.Count(); i < len; i++) { var id = idArr[i]; var uri = $"{resourcePartUri}/{id}"; var data = await mapRepository.FindAsync(id); if (data == null) { result.AddResult(uri, 404, ""); continue; } //var query = await userManagedAccountService.GetManagedAccounts(operatorId); //var canOperat = await query.AnyAsync(x => x.Id == accountId); //if (!canOperat) //{ // result.AddResult(uri, 403, localizer["OperateForbidden"]); // continue; //} await mapRepository.DeleteAsync(data, operatorId); result.AddResult(uri, 200, ""); } return(result.Transfer()); }
public async Task <ObjectResult> Handle(AccountBatchDeleteCommand request, CancellationToken cancellationToken) { var result = new MultiStatusObjectResult(); var operatorId = identityService.GetUserId(); var resourcePartUri = uriService.GetUriWithoutQuery().URIUpperLevel(); var accountIdArr = request.Ids.Split(",", StringSplitOptions.RemoveEmptyEntries); for (int i = 0, len = accountIdArr.Count(); i < len; i++) { var accountId = accountIdArr[i]; var uri = $"{resourcePartUri}/{accountId}"; var account = await accountRepository.FindAsync(accountId); if (account == null) { result.AddResult(uri, 404, ""); continue; } var query = await userManagedAccountService.GetManagedAccounts(operatorId); var canOperat = await query.AnyAsync(x => x.Id == accountId); if (!canOperat) { result.AddResult(uri, 403, localizer["OperateForbidden"]); continue; } await accountRepository.DeleteAsync(accountId, operatorId); result.AddResult(uri, 200, ""); } return(result.Transfer()); }