public override async Task <Customer> Run(EntityView entityView, CommercePipelineExecutionContext context) { var customer = await base.Run(entityView, context); var customDetails = new MembershipSubscriptionComponent(); foreach (ViewProperty viewProperty in entityView.Properties) { if (viewProperty.Name == nameof(MembershipSubscriptionComponent.MemerbshipLevelName)) { customDetails.MemerbshipLevelName = viewProperty.Value?.ToString(); } } customer.Components.Add(customDetails); return(customer); }
public async Task <IActionResult> SetMembershipLevelToCustomer([FromBody] ODataActionParameters value) { if (!ModelState.IsValid || value == null) { return(new BadRequestObjectResult(ModelState)); } var customerMembershipSubscription = ((JObject)value["CustomerMembershipSubscription"]).ToObject <CustomerMembershipSubscriptionModel>(); var command = Command <AddEditCustomerMembershipSubscriptionCommand>(); var membershipSubscription = new MembershipSubscriptionComponent { MemerbshipLevelName = customerMembershipSubscription.MemerbshipLevelName }; var result = await command.Process(CurrentContext, customerMembershipSubscription.CustomerId, membershipSubscription); return(new ObjectResult(command)); }
public virtual async Task <Customer> Process( CommerceContext commerceContext, string customerId, MembershipSubscriptionComponent membershipSubscription) { Customer result = null; Customer customer; using (CommandActivity.Start(commerceContext, this)) { await PerformTransaction(commerceContext, async() => { CommercePipelineExecutionContextOptions pipelineContextOptions = commerceContext.GetPipelineContextOptions(); result = await _pipeline.Run(new CustomerMembershipSubscriptioArgument(customerId, membershipSubscription), pipelineContextOptions); }); customer = result; } return(customer); }
public CustomerMembershipSubscriptioArgument(string customerId, MembershipSubscriptionComponent membershipSubscription) : base(customerId, string.Empty) { Condition.Requires(membershipSubscription).IsNotNull("The MembershipSubscription can not be null"); MembershipSubscription = membershipSubscription; }