public async Task <SubaccountAcctionsResult> Process(CommerceContext commerceContext, List <string> subaccountsId, string mainaccountId)
        {
            var subaccounts = await _getSubaccounts.Process(commerceContext, mainaccountId);

            var validSubaccounts = subaccountsId.Where(x => subaccounts.Subaccounts.Any(y => y.Id == x));

            if (!validSubaccounts.Any())
            {
                return(new SubaccountAcctionsResult {
                    Completed = false
                });
            }

            using (CommandActivity.Start(commerceContext, (CommerceCommand)this))
            {
                foreach (string id in validSubaccounts)
                {
                    await _delete.Run(new GetCustomerArgument(id, string.Empty), commerceContext.GetPipelineContext());
                }
            }

            return(new SubaccountAcctionsResult {
                Completed = true
            });
        }
Exemplo n.º 2
0
        public async Task <SubaccountAcctionsResult> Process(CommerceContext commerceContext, SubaccountModel subaccount, string mainaccountId)
        {
            Customer result;
            var      subaccounts = await _getSubaccountsCommand.Process(commerceContext, mainaccountId);

            var validSubaccount = subaccounts.Subaccounts.FirstOrDefault(x => x.Id.Equals(subaccount.Id, StringComparison.OrdinalIgnoreCase));

            if (validSubaccount == null)
            {
                return(new SubaccountAcctionsResult {
                    Completed = false
                });
            }
            using (CommandActivity.Start(commerceContext, (CommerceCommand)this))
            {
                result = await _updateSubaccountPipeline.Run(subaccount, commerceContext.GetPipelineContext());

                if (result == null)
                {
                    new SubaccountAcctionsResult {
                        Completed = false
                    };
                }
            }

            return(new SubaccountAcctionsResult {
                Completed = true
            });
        }