Beispiel #1
0
        public static string LazyRender(List <IRenderTask> task, RenderContext context)
        {
            List <RenderResult> result = new List <RenderResult>();

            foreach (var item in task)
            {
                if (item.ClearBefore)
                {
                    result.Add(new RenderResult()
                    {
                        ClearBefore = true
                    });
                }
                item.AppendResult(context, result);
            }

            StringBuilder sb = new StringBuilder();

            foreach (var item in result)
            {
                if (item.ClearBefore)
                {
                    string currentvalue = sb.ToString();
                    sb.Clear();
                    context.AddPlaceHolderContent("", currentvalue);
                }
                else
                {
                    sb.Append(item.Value);
                }
            }
            return(sb.ToString());
        }
Beispiel #2
0
        public static string Render(this List <IRenderTask> task, RenderContext context)
        {
            StringBuilder sb = new StringBuilder();

            foreach (var item in task)
            {
                if (item.ClearBefore)
                {
                    string currentvalue = sb.ToString();
                    sb.Clear();
                    context.AddPlaceHolderContent("", currentvalue);
                }

                sb.Append(item.Render(context));
            }
            return(sb.ToString());
        }
Beispiel #3
0
        public static string Render(this List <IRenderTask> task, RenderContext context)
        {
            StringBuilder sb = new StringBuilder();

            IRenderTask headertask = null;
            int         headerpos  = 0;

            foreach (var item in task)
            {
                if (item.ClearBefore)
                {
                    if (headertask != null)
                    {
                        var header = headertask.Render(context);
                        sb.Insert(headerpos, header);
                        headertask = null;
                        headerpos  = 0;
                    }

                    string currentvalue = sb.ToString();

                    sb.Clear();
                    context.AddPlaceHolderContent("", currentvalue);
                }

                if (item is HeaderRenderTask)
                {
                    headertask = item;
                    headerpos  = sb.Length;
                }
                else
                {
                    sb.Append(item.Render(context));
                }
            }

            if (headertask != null)
            {
                var header = headertask.Render(context);
                sb.Insert(headerpos, header);
            }

            return(sb.ToString());
        }