예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #4
0
        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);
        }