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 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)); }
private static Task HandleException(IConfigCreator <IExceptionHandler> exceptionHandler, IWebHandler handler, WebBasePage page, Exception ex) { IPageData pageData = page ?? handler; IExceptionHandler exHandler = exceptionHandler.CreateObject(pageData); return(exHandler.HandleException(handler, page, ex)); }
public override void Handle(INode node) { IWebHandler handler = node as IWebHandler; if (handler != null) { IsHandled = IsHandled || handler.ProcessRequest(_context); } }
public Task HandleException(IWebHandler handler, WebBasePage page, Exception ex) { TkDebug.AssertArgument(ex is ErrorPageException, "ex", string.Format(ObjectUtil.SysCulture, "此Handler只处理ErrorPageException,当前的Exception类型为{0}", ex.GetType()), this); ErrorPageSource source = new ErrorPageSource((ErrorPageException)ex); return(InternalWebUtil.WritePage(null, source, fPageMaker, handler)); }
public static void RedirectPage(IMetaData metaData, ISource source, IWebHandler handler, OutputData outputData, IRedirector redirector) { MetaDataUtil.SetMetaData(redirector, handler.Style, metaData); string url = redirector.Redirect(source, handler, outputData); TkDebug.AssertNotNullOrEmpty(url, "Redirector.Redirect函数返回的Url为空,不能重定向该地址", redirector); url = AppUtil.ResolveUrl(url); handler.Response.Redirect(url, false); }
public Task HandleException(IWebHandler handler, WebBasePage page, Exception ex) { string type = page == null?handler.GetType().ToString() : page.GetType().ToString(); ExceptionSource source = new ExceptionSource(handler.SourceInfo.Source, type, handler.PageUrl.ToString(), ex); if (LogException || handler.IsPost) { string fileName = ExceptionUtil.LogException(source.Data); source.FileName = fileName; } return(InternalWebUtil.WritePage(null, source, fPageMaker, handler)); }
public Task HandleException(IWebHandler handler, WebBasePage page, Exception ex) { FileData data = FileData.Create(fFileName); if (LogException) { string type = page == null?handler.GetType().ToString() : page.GetType().ToString(); ExceptionData exData = new ExceptionData(handler.SourceInfo.Source, type, handler.PageUrl.ToString(), ex); ExceptionUtil.LogException(exData); } handler.Response.ContentType = ContentTypeConst.HTML; return(handler.Response.WriteAsync(Encoding.UTF8.GetString(data.Data), Encoding.UTF8)); }
public static bool GetResponse(HttpListenerContext context) { string url = context.Request.Url.AbsolutePath; string query = context.Request.Url.Query; Console.WriteLine("url={0} : Query={1}", url, query); string[] parts = url.Trim('/').Split('/'); if (parts[0] == "api" && parts.Length > 2) { string fullname = parts[0] + "/" + parts[1]; if (responseHandlers.ContainsKey(fullname)) { IWebHandler wh = responseHandlers[fullname]; QuickResponse(context, wh.GetResponse(parts[2] + query)); return(true); } } else if (parts[0] == "api" && parts.Length > 1) { string fullname = parts[0] + "/" + parts[1]; if (responseHandlers.ContainsKey(fullname)) { IWebHandler wh = responseHandlers[fullname]; QuickResponse(context, wh.GetResponse(query)); return(true); } } else if (parts[0] == "ping") { if (responseHandlers.ContainsKey(url)) { IWebHandler wh = responseHandlers[url]; QuickResponse(context, wh.GetResponse(query)); return(true); } } else { QuickResponse(context, "failed "); } return(false); }
public Task HandleException(IWebHandler handler, WebBasePage page, Exception ex) { TkDebug.AssertArgument(ex is ReLogOnException, "ex", string.Format(ObjectUtil.SysCulture, "此Handler只处理ReLogonException,当前的Exception类型为{0}", ex.GetType()), this); TkDebug.ThrowIfNoAppSetting(); string logOnUrl = WebAppSetting.WebCurrent.LogOnPath; UriBuilder builder = new UriBuilder(logOnUrl); string retUrl = "RetUrl=" + HttpUtility.UrlEncode(ex.Message); if (builder.Query != null && builder.Query.Length > 1) { builder.Query = builder.Query.Substring(1) + "&" + retUrl; } else { builder.Query = retUrl; } handler.Response.Redirect(builder.Uri.ToString(), false); return(Task.FromResult(0)); }
public Task HandleException(IWebHandler handler, WebBasePage page, Exception ex) { throw new Exception("空Exception,具体请看InnerException", ex); }
private static T UnauthorizedRequest <T>(IWebHandler handler, string url) => handler.GetRequest <T>(url, null);
private static T AuthorizedRequest <T>(IWebHandler handler, string url, string apiKey) => handler.GetRequest <T>(url, new Dictionary <string, string>() { { "Authorization", string.Format("Bearer {0}", apiKey) } });
public Repository(IWebHandler webHandler) { _webHandler = webHandler; _webHandler.EventsJsonReady += new JsonData(webHandler_EventsJsonReady); _webHandler.SelectedJsonReady += new JsonData(webHandler_SelectedJsonReady); }
public WebController(ILogger <WebController> logger, IWebHandler webHandler) : base(logger) => _webHandler = webHandler;
public abstract Task HandleException(IWebHandler handler, WebBasePage page, Exception ex);
private static IWebHandler GetWebHandler(IWebHandler page, HttpContext context, PageSourceInfo info) { return(page ?? new ContextWebHandler(context, info)); }
protected static void HandleException(ISource source, IPageMaker pageMaker, IWebHandler handler) { InternalWebUtil.WritePage(null, source, pageMaker, handler); }