public override async Task <Order> Run(Order arg, CommercePipelineExecutionContext context) { if (!arg.HasComponent <IngenicoPaymentComponent>()) { return(arg); } var paymentComponent = arg.GetComponent <IngenicoPaymentComponent>(); switch (paymentComponent.TransactionStatus) { case "Problem": KnownOrderStatusPolicy knownOrderStatusPolicy = context.GetPolicy <KnownOrderStatusPolicy>(); arg.Status = knownOrderStatusPolicy.Problem; await context.CommerceContext.AddMessage(context.CommerceContext.GetPolicy <KnownResultCodes>().Error, "InvalidOrderState", new object[] { arg.Id }, $"There was a problem with the Ingenico payment."); break; case "Settled": // The Payment has been settled, continue with the normal flow. break; default: // No payment received, abort the normal order flow. context.Abort("Ogone payment has not yet been received.", context); break; } return(arg); }
public override Task <Order> Run(Order arg, CommercePipelineExecutionContext context) { KnownOrderStatusPolicy policy1 = context.GetPolicy <KnownOrderStatusPolicy>(); if (!arg.Status.Equals(policy1.Pending, StringComparison.OrdinalIgnoreCase)) { return(Task.FromResult(arg)); } arg.Status = "WaitingForPayment"; arg.GetComponent <TransientListMembershipsComponent>().Memberships.Add("WaitingForPaymentOrders"); return(Task.FromResult(arg)); }
public override async Task <Order> Run(Order arg, CommercePipelineExecutionContext context) { KnownOrderStatusPolicy policy = context.GetPolicy <KnownOrderStatusPolicy>(); arg.Status = policy.Released; KnownOrderListsPolicy listPolicy = context.GetPolicy <KnownOrderListsPolicy>(); arg.GetComponent <TransientListMembershipsComponent>().Memberships.Add(listPolicy.ReleasedOrders); await removeListEntitiesPipeline.Run(new ListEntitiesArgument(new string[1] { arg.Id }, "WaitingForPaymentOrders"), context); await persistEntityPipeline.Run(new PersistEntityArgument(arg), context).ConfigureAwait(false); await eventRegistry.ListItemUpdated().Send(arg, Name); return(arg); }