public override Task <EntityView> Run(EntityView entityView, CommercePipelineExecutionContext context) { Condition.Requires(entityView).IsNotNull($"{Name}: The argument cannot be null."); var viewsPolicy = context.GetPolicy <KnownXcentiumCatalogViewsPolicy>(); if (string.IsNullOrEmpty(entityView?.Name) || !entityView.Name.Equals(viewsPolicy.VariantPersonalization, StringComparison.OrdinalIgnoreCase)) { return(Task.FromResult(entityView)); } var actionsPolicy = entityView.GetPolicy <ActionsPolicy>(); var actions = actionsPolicy.Actions; var editActionView = new EntityActionView { Name = context.GetPolicy <KnownXcentiumCatalogActionsPolicy>().EditVariantPersonalization, DisplayName = "Edit Variant Personalization", Description = "Edit Variant Personalization", IsEnabled = true, EntityView = entityView.Name, RequiresConfirmation = false, Icon = "edit" }; actions.Add(editActionView); return(Task.FromResult(entityView)); }
public override Task <EntityView> Run(EntityView entityView, CommercePipelineExecutionContext context) { var policy = context.GetPolicy <KnownCatalogViewsPolicy>(); if (string.IsNullOrEmpty(entityView?.Name) || !entityView.Name.Equals(policy.ParentCategories, StringComparison.OrdinalIgnoreCase)) { return(Task.FromResult(entityView)); } var actionPolicy = entityView.GetPolicy <ActionsPolicy>(); var entity = context.CommerceContext.GetObjects <CommerceEntity>().FirstOrDefault(e => e.Id.Equals(entityView.EntityId)) ?? context.CommerceContext.GetObjects <EntityViewArgument>().FirstOrDefault()?.Entity; if (!(entity is SellableItem)) { return(Task.FromResult(entityView)); } var sellableItem = entity as SellableItem; var disassociateActionView = new EntityActionView { Name = context.GetPolicy <KnownCatalogActionsPolicy>().DisassociateItemFromCategory, DisplayName = "Disassociate Sellable Item from category", Description = "Disassociate item from Parent Category", IsEnabled = sellableItem.ParentCategoryList.Split('|').Any(), EntityView = string.Empty, RequiresConfirmation = true, Icon = "link_broken" }; actionPolicy.Actions.Add(disassociateActionView); return(Task.FromResult(entityView)); }
public override Task <EntityView> Run(EntityView arg, CommercePipelineExecutionContext context) { PopulateComposerTemplatesViewActionsBlock viewActionsBlock = this; Condition.Requires(arg).IsNotNull(viewActionsBlock.Name + ": The argument cannot be null"); EntityViewArgument entityViewArgument = context.CommerceContext.GetObjects <EntityViewArgument>().FirstOrDefault(); KnownComposerViewsPolicy composerViews = context.GetPolicy <KnownComposerViewsPolicy>(); if (!string.IsNullOrEmpty(arg.Name) && (arg.Name.Equals(composerViews.ComposerTemplates, StringComparison.OrdinalIgnoreCase) || entityViewArgument?.Entity is ComposerTemplate && arg.Name.Equals(composerViews.Details, StringComparison.OrdinalIgnoreCase))) { KnownComposerActionsPolicy actions = context.GetPolicy <KnownComposerActionsPolicy>(); ActionsPolicy actionsPolicy = arg.GetPolicy <ActionsPolicy>(); List <Policy> policyList = new List <Policy>(); MultiStepActionPolicy stepActionPolicy = new MultiStepActionPolicy(); EntityActionView entityActionView1 = new EntityActionView(); entityActionView1.Name = actions.SelectCommerceEngineEnvironmentToPullTemplates; entityActionView1.IsEnabled = true; entityActionView1.EntityView = actions.SelectTemplatesToPullFromEnvironment; stepActionPolicy.FirstStep = entityActionView1; policyList.Add(stepActionPolicy); List <Policy> commercePolicies = policyList; List <EntityActionView> actions1 = actionsPolicy.Actions; EntityActionView entityActionView2 = new EntityActionView(commercePolicies); entityActionView2.Name = actions.PullTemplatesFromEnvironment; entityActionView2.IsEnabled = true; entityActionView2.EntityView = string.Empty; entityActionView2.Icon = "add"; actions1.Add(entityActionView2); actions = null; actionsPolicy = null; } return(Task.FromResult(arg)); }
public override Task <EntityView> Run(EntityView arg, CommercePipelineExecutionContext context) { if (string.IsNullOrEmpty(arg?.Name) || !arg.Name.Equals(context.GetPolicy <KnownCustomPricingViewsPolicy>().CustomPricing, StringComparison.OrdinalIgnoreCase) || !string.IsNullOrEmpty(arg.Action)) { return(Task.FromResult(arg)); } CommerceEntity entity = context.CommerceContext.GetObject <EntityViewArgument>()?.Entity; PriceCard priceCard; if ((priceCard = entity as PriceCard) == null) { return(Task.FromResult(arg)); } ActionsPolicy policy = arg.GetPolicy <ActionsPolicy>(); bool isEnabled = priceCard.Snapshots.Any(s => { if (s.Id.Equals(arg.ItemId, StringComparison.OrdinalIgnoreCase)) { return(s.IsDraft(context.CommerceContext)); } return(false); }); List <Policy> commercePolicies = new List <Policy>(); MultiStepActionPolicy stepActionPolicy = new MultiStepActionPolicy(); EntityActionView selectMembershipCurrencyActionView = new EntityActionView { Name = context.GetPolicy <KnownCustomPricingActionsPolicy>().SelectMembershipCurrency, DisplayName = "Select Membership Currency", Description = "Selects a Membership Currency", IsEnabled = isEnabled, EntityView = context.GetPolicy <KnownCustomPricingViewsPolicy>().PriceCustomRow }; stepActionPolicy.FirstStep = selectMembershipCurrencyActionView; commercePolicies.Add(stepActionPolicy); policy.Actions.Add(new EntityActionView() { Name = context.GetPolicy <KnownCustomPricingActionsPolicy>().AddMembershipCurrency, DisplayName = "Add membership currency", Description = "Adds a membership currency", IsEnabled = isEnabled, EntityView = string.Empty, Icon = "add", Policies = commercePolicies }); bool isEnabledForEditAndRemove = !string.IsNullOrEmpty(arg.ItemId) && priceCard.Snapshots.Any(s => { if (s.Id.Equals(arg.ItemId, StringComparison.OrdinalIgnoreCase)) { var membershipTiersComponent = s.GetComponent <MembershipTiersComponent>(); if (membershipTiersComponent != null && membershipTiersComponent.Tiers.Any()) { return(s.IsDraft(context.CommerceContext)); } } return(false); }); policy.Actions.Add(new EntityActionView { Name = context.GetPolicy <KnownCustomPricingActionsPolicy>().EditMembershipCurrency, DisplayName = "Edit membership currency", Description = "Edits a membership currency", IsEnabled = isEnabledForEditAndRemove, EntityView = context.GetPolicy <KnownCustomPricingViewsPolicy>().PriceCustomRow, Icon = "edit" }); policy.Actions.Add(new EntityActionView { Name = context.GetPolicy <KnownCustomPricingActionsPolicy>().RemoveMembershipCurrency, DisplayName = "Remove membership currency", Description = "Removes a membership currency", IsEnabled = isEnabledForEditAndRemove, EntityView = string.Empty, RequiresConfirmation = true, Icon = "delete" }); return(Task.FromResult(arg)); }