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 }); }
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 }); }