Ejemplo n.º 1
0
        public override void Process(Sitecore.Mvc.Pipelines.Response.RenderRendering.RenderRenderingArgs args)
        {
            TextWriter restoreWriter = args.Writer;

            try
            {
                StringBuilder sb = new StringBuilder();
                using (StringWriter sw = new StringWriter(sb))
                {
                    // nested try attempts to workaround defect in HtmlTextWriter
                    // http://stackoverflow.com/questions/6595742/htmltextwriter-doesnt-flush-upon-disposal
                    HtmlTextWriter hw = new HtmlTextWriter(sw);

                    try
                    {
                        args.Writer = hw;
                        base.Process(args);
                    }
                    finally
                    {
                        hw.Close();
                        hw.Dispose();
                    }
                }

                restoreWriter.Write(sb.ToString());
            }
            catch (Exception ex)
            {
                args.Cacheable = false;
                if (this.ShouldRenderErrors())
                {
                    Sitecore.Web.UI.WebControls.ErrorControl errorControl = Sitecore.Configuration.Factory.CreateErrorControl(
                        HttpUtility.HtmlEncode("Rendering exception processing " + args.Rendering + " : " + ex.Message),
                        ex.ToString());
                    //restoreWriter.Write(errorControl.RenderAsText());

                    TextWriter tx = new StringWriter();
                    tx.Write(errorControl.RenderAsText());
                    restoreWriter = tx;
                }
                else
                {
                    Framework.Sc.Extensions.ErrorHandler.ExceptionHandlerFactory.Create().HandleException(ex, new HttpContextWrapper(HttpContext.Current));
                }
            }
            finally
            {
                args.Writer = restoreWriter;
            }
        }
Ejemplo n.º 2
0
        public override void Process(Sitecore.Mvc.Pipelines.Response.RenderRendering.RenderRenderingArgs args)
        {
            if (WebEditStateSwitcher.CurrentValue == WebEditState.Disabled)
            {
                return;
            }

            if (args.Rendering.Parameters["disablewebedit"] == "1")
            {
                args.Disposables.Add(new WebEditDisabler());
                return;
            }

            base.Process(args);
        }
Ejemplo n.º 3
0
 public override void Process(Sitecore.Mvc.Pipelines.Response.RenderRendering.RenderRenderingArgs args)
 {
     args.Rendering.Item  = null;
     args.Rendering.Model = null;
 }