Exemplo n.º 1
0
            public override void Render(Context context, TextWriter result)
            {
                var zoneName = (string)context[_zoneName] ?? _zoneName;

                if (zoneName.IsEmpty())
                {
                    return;
                }

                var model = context.Environments.First();
                var evt   = new ZoneRenderingEvent(zoneName, model);

                evt.LiquidContext = context;

                EventPublisher.Publish(evt);

                if (evt.Snippets != null && evt.Snippets.Count > 0)
                {
                    foreach (var snippet in evt.Snippets)
                    {
                        if (snippet.Parse)
                        {
                            Template.Parse(snippet.Content)
                            .Render(result, new RenderParameters(context.FormatProvider)
                            {
                                LocalVariables = model
                            });
                        }
                        else
                        {
                            result.Write(snippet.Content);
                        }
                    }
                }
            }
        public void HandleEvent(ZoneRenderingEvent message)
        {
            if (!message.ZoneName.IsCaseInsensitiveEqual("order_summary_after"))
            {
                return;
            }

            try
            {
                var ppInstalments = message.Evaluate("PayPalInstalments");
                if (ppInstalments != null)
                {
                    var liquidPath = CommonHelper.MapPath("~/Plugins/SmartStore.PayPal/Views/PayPalInstalments/OrderDetails.liquid");
                    var content    = File.ReadAllText(liquidPath);

                    message.InjectContent(content.EmptyNull().Trim());
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
        }