コード例 #1
0
            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());
            }
コード例 #2
0
        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());
        }