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());
        }
Exemplo n.º 2
0
        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());
        }