public override async Task <Order> Run(Order arg, CommercePipelineExecutionContext context) { if (arg == null) { return(null); } var messageEntity = new MessageEntity { Id = CommerceEntity.IdPrefix <MessageEntity>() + Guid.NewGuid().ToString("N"), Name = "tryry" }; messageEntity.GetComponent <ListMembershipsComponent>().Memberships.Add(CommerceEntity.ListName <MessageEntity>()); messageEntity.History.Add(new HistoryEntryModel { Name = messageEntity.Name, EventMessage = $"An Order was completed" }); var contactComponent = arg.GetComponent <ContactComponent>(); messageEntity.Components.Add(contactComponent); messageEntity.Models.Add(arg.Totals); messageEntity.Models.Add(new OrderSummaryModel { ConfirmationId = arg.OrderConfirmationId, OrderId = arg.Id, Status = arg.Status }); await this._commerceCommander.PersistEntity(context.CommerceContext, messageEntity); return(arg); }
public override async Task <EntityView> Run(EntityView entityView, CommercePipelineExecutionContext context) { if (entityView == null || !entityView.Action.Equals("MyDashboard-AddDashboardEntity", StringComparison.OrdinalIgnoreCase)) { return(entityView); } try { var name = entityView.Properties.First(p => p.Name == "Name").Value ?? ""; var displayName = entityView.Properties.First(p => p.Name == "DisplayName").Value ?? ""; var sampleDashboardEntity = new MessageEntity { Id = CommerceEntity.IdPrefix <MessageEntity>() + Guid.NewGuid().ToString("N"), Name = name, DisplayName = displayName }; sampleDashboardEntity.GetComponent <ListMembershipsComponent>().Memberships.Add(CommerceEntity.ListName <MessageEntity>()); await this._commerceCommander.PersistEntity(context.CommerceContext, sampleDashboardEntity); } catch (Exception ex) { context.Logger.LogError($"Catalog.DoActionAddDashboardEntity.Exception: Message={ex.Message}"); } return(entityView); }
public override async Task <CartEmailArgument> Run(CartEmailArgument arg, CommercePipelineExecutionContext context) { if (arg == null) { return(null); } foreach (var cartLine in arg.Cart.Lines) { if (cartLine.HasComponent <ItemAvailabilityComponent>()) { var itemAvailabilityComponent = cartLine.GetComponent <ItemAvailabilityComponent>(); if (!itemAvailabilityComponent.IsAvailable) { if (cartLine.HasComponent <CartProductComponent>()) { var cartProductComponent = cartLine.GetComponent <CartProductComponent>(); if (!cartProductComponent.HasPolicy <AvailabilityAlwaysPolicy>()) { var messageEntity = new MessageEntity { Id = CommerceEntity.IdPrefix <MessageEntity>() + Guid.NewGuid().ToString("N"), Name = "Order.UnavailableItem" }; messageEntity.GetComponent <ListMembershipsComponent>().Memberships.Add(CommerceEntity.ListName <MessageEntity>()); messageEntity.History.Add(new HistoryEntryModel { Name = "Order.UnavailableItem", EventMessage = $"An Order was attempted with an unavailable item" }); var contactComponent = arg.Cart.GetComponent <ContactComponent>(); messageEntity.Components.Add(contactComponent); messageEntity.Components.Add(itemAvailabilityComponent); await this._commerceCommander.PersistEntity(context.CommerceContext, messageEntity); } } } } } if (context.CommerceContext.GetMessages().Any(p => p.Code == "Error")) { try { } catch (Exception ex) { context.CommerceContext.LogException("DevOps.CheckDeserializedEntityBlock", ex); } } return(arg); }
public override async Task <Cart> Run(Cart arg, CommercePipelineExecutionContext context) { if (arg == null) { return(null); } foreach (var cartLine in arg.Lines) { if (cartLine.HasComponent <ItemAvailabilityComponent>()) { var itemAvailabilityComponent = cartLine.GetComponent <ItemAvailabilityComponent>(); if (!itemAvailabilityComponent.IsAvailable) { var messageEntity = new MessageEntity { Id = CommerceEntity.IdPrefix <MessageEntity>() + Guid.NewGuid().ToString("N"), Name = "Cart.ItemUnavailable" }; messageEntity.GetComponent <ListMembershipsComponent>().Memberships.Add(CommerceEntity.ListName <MessageEntity>()); messageEntity.History.Add(new HistoryEntryModel { Name = "Cart.UnavailableItem", EventMessage = $"An Item as added to the Cart that is not Available" }); messageEntity.Components.Add(itemAvailabilityComponent); var contactComponent = arg.GetComponent <ContactComponent>(); messageEntity.Components.Add(contactComponent); messageEntity.Models.Add(new CartSummaryModel { CartId = arg.Id }); await this._commerceCommander.PersistEntity(context.CommerceContext, messageEntity); } } } return(arg); }