public async Task <ResponseResult> Handle(Command request, CancellationToken cancellationToken) { using (var scope = _databaseScopeFactory.CreateWithTransaction()) { await _materialRepository.DeleteAsync(request.Id, string.IsNullOrWhiteSpace(request.UserId)?null : request.UserId); scope.SaveChanges(); } return(ResponseResult.Ok()); }
public async Task <ObjectResult> Handle(MaterialBatchDeleteCommand 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 materialRepository.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 materialRepository.DeleteAsync(data, operatorId); result.AddResult(uri, 200, ""); } return(result.Transfer()); }