示例#1
0
        public override string ToString()
        {
            IPageMaker pageMaker = PageMaker;

            return(pageMaker == null?base.ToString() :
                       string.Format(ObjectUtil.SysCulture, "PageMaker为{0}的ContentPage", pageMaker));
        }
示例#2
0
        public static Task WritePage(IMetaData metaData, ISource source, IPageMaker pageMaker,
                                     IWebHandler handler)
        {
            PrepareSource(source, handler);
            OutputData outputData = CreateOutputData(metaData, source, handler.Style, handler);

            return(WritePage(metaData, source, pageMaker, handler, outputData));
        }
示例#3
0
        public static Task WritePage(IMetaData metaData, ISource source, IPageMaker pageMaker,
                                     IWebHandler handler, OutputData outputData)
        {
            MetaDataUtil.SetMetaData(pageMaker, handler.Style, metaData);
            IContent content = pageMaker.WritePage(source, handler, outputData);

            return(WriteContent(handler.Request, handler.Response, content));
        }
        public IExceptionHandler CreateObject(params object[] args)
        {
            IPageMaker pageMaker = PageMaker.CreateObject(args);

            return(new PageMakerExceptionHandler(pageMaker)
            {
                LogException = Log
            });
        }
示例#5
0
        public PageMakerInfo(Func <ISource, IInputData, OutputData, bool> function,
                             IPageMaker pageMaker)
        {
            TkDebug.AssertArgumentNull(function, "function", null);
            TkDebug.AssertArgumentNull(pageMaker, "pageMaker", null);

            Function  = function;
            PageMaker = pageMaker;
        }
示例#6
0
 public virtual void SetPageMaker(ISource source, IInputData input,
                                  OutputData outputData, IPageMaker pageMaker)
 {
     if (input.IsPost && (input.Style.Style == PageStyle.Update))
     {
         PostPageMaker maker = pageMaker as PostPageMaker;
         if (maker != null)
         {
             maker.UseRetUrlFirst = true;
         }
     }
 }
示例#7
0
 public IEnumerable <PageMakerInfo> CreatePageMakers(IPageData pageData)
 {
     if (fPageMakers != null)
     {
         fPageMakers = new List <PageMakerInfo>();
         if (fConfig.PageMakers != null)
         {
             foreach (var item in fConfig.PageMakers)
             {
                 IPageMaker    pageMaker = item.PageMaker.CreateObject(pageData);
                 PageMakerInfo info      = new PageMakerInfo(item.Condition.UseCondition, pageMaker);
                 fPageMakers.Add(info);
             }
         }
     }
     return(fPageMakers);
 }
示例#8
0
        private Task DoAction()
        {
            var     metaData = MetaData;
            ISource source   = Source;

            TkDebug.AssertNotNull(source, $"当前{Style}下,Source为Null,请检查配置是否正确", this);
            using (source as IDisposable)
            {
                InternalWebUtil.PrepareSource(source, this);
                CheckFunctionRight();
                PrepareRecordLog(source);

                OutputData outputData = InternalWebUtil.CreateOutputData(metaData, source, Style, this);

                Log(source, outputData);
                IPageMaker pageMaker = PageMaker;
                return(InternalWebUtil.WritePage(metaData, source, pageMaker, this, outputData));
            }
        }
示例#9
0
        public IContent WritePage(ISource source, IPageData pageData, OutputData outputData)
        {
            IPageMaker pageMaker = null;

            switch (DataType)
            {
            case ContentDataType.Json:
                pageMaker = new JsonObjectPageMaker();
                break;

            case ContentDataType.Xml:
                pageMaker = new XmlObjectPageMaker(null, null);
                break;

            default:
                TkDebug.ThrowImpossibleCode(this);
                break;
            }
            WebErrorResult error = outputData.Data as WebErrorResult;

            if (error != null)
            {
                return(pageMaker.WritePage(source, pageData, outputData));
            }
            else
            {
                string url = null;
                if (UseRetUrlFirst)
                {
                    url = pageData.QueryString["RetURL"];
                }
                if (string.IsNullOrEmpty(url))
                {
                    url = GetDefaultUrl(source, pageData, outputData);
                }
                WebSuccessResult success = new WebSuccessResult(url)
                {
                    AlertMessage = AlertMessage
                };
                OutputData newData = OutputData.CreateToolkitObject(success);
                return(pageMaker.WritePage(source, pageData, newData));
            }
        }
        protected override void PrepareWritePage(IPageMaker pageMaker, ISource source,
                                                 IPageData pageData, OutputData outputData)
        {
            base.PrepareWritePage(pageMaker, source, pageData, outputData);

            fModuleTemplate.SetPageMaker(source, pageData, outputData, pageMaker);
            RazorPageTemplatePageMaker templateMaker = pageMaker as RazorPageTemplatePageMaker;

            if (templateMaker != null)
            {
                var overrideItem = FindOverrideItem(pageData);
                templateMaker.SetConfig(overrideItem);
                return;
            }

            PostPageMaker postMaker = pageMaker as PostPageMaker;

            if (postMaker != null)
            {
                if (fOverridePostPageMakers == null)
                {
                    return;
                }
                var overrideItem = (from item in fOverridePostPageMakers
                                    where MetaDataUtil.Equals(item.Style, pageData.Style)
                                    select item).FirstOrDefault();
                if (overrideItem != null)
                {
                    postMaker.SetProperties(overrideItem.DataType,
                                            overrideItem.DestUrl, overrideItem.CustomUrl);
                    postMaker.UseRetUrlFirst = overrideItem.UseRetUrlFirst;
                    if (overrideItem.AlertMessage != null)
                    {
                        postMaker.AlertMessage = overrideItem.AlertMessage.ToString();
                    }
                }
            }
        }
示例#11
0
 protected static void HandleException(ISource source,
                                       IPageMaker pageMaker, IWebHandler handler)
 {
     InternalWebUtil.WritePage(null, source, pageMaker, handler);
 }
        public ErrorPageExceptionHandler(IPageMaker pageMaker)
        {
            TkDebug.AssertArgumentNull(pageMaker, "pageMaker", null);

            fPageMaker = pageMaker;
        }
示例#13
0
        public void Add(Func <ISource, IInputData, OutputData, bool> function, IPageMaker pageMaker)
        {
            int order = (fList.Count + 1) * 10;

            Add(order, function, pageMaker);
        }
示例#14
0
        public void Add(int order, Func <ISource, IInputData, OutputData, bool> function, IPageMaker pageMaker)
        {
            TkDebug.AssertArgumentNull(function, "function", this);
            TkDebug.AssertArgumentNull(pageMaker, "pageMaker", this);

            PageMakerInfo info = new PageMakerInfo(function, pageMaker, order);

            fList.Add(info);
        }
示例#15
0
 /// <summary>
 /// Initializes a new instance of the PageMakerInfo class.
 /// </summary>
 public PageMakerInfo(Func <ISource, IInputData, OutputData, bool> function, IPageMaker pageMaker, int order)
 {
     Function  = function;
     PageMaker = pageMaker;
     Order     = order;
 }
示例#16
0
 protected virtual void PrepareWritePage(IPageMaker pageMaker, ISource source,
                                         IPageData pageData, OutputData outputData)
 {
 }