async Task SendPage(String pageContent) { AppTitleModel appTitle = await _dbContext.LoadAsync <AppTitleModel>(_host.CatalogDataSource, "a2ui.[AppTitle.Load]"); StringBuilder layout = new StringBuilder(_localizer.Localize(null, ResourceHelper.InitLayoutHtml)); layout.Replace("$(Lang)", CurrentLang); layout.Replace("$(Build)", _host.AppBuild); layout.Replace("$(AssetsStyleSheets)", _host.AppStyleSheetsLink("applink")); layout.Replace("$(LayoutHead)", _host.CustomAppHead()); layout.Replace("$(LayoutScripts)", _host.CustomAppScripts()); layout.Replace("$(Partial)", pageContent); layout.Replace("$(Title)", appTitle.AppTitle); layout.Replace("$(Description)", _host.AppDescription); StringBuilder script = new StringBuilder(ResourceHelper.AppLinksScript); script.Replace("$(PageData)", $"{{ version: '{_host.AppVersion}', title: '{appTitle?.AppTitle}', subtitle: '{appTitle?.AppSubTitle}', multiTenant: false, registation: false }}"); script.Replace("$(Locale)", ResourceHelper.Locale); script.Replace("$(Utils)", ResourceHelper.PageUtils); script.Replace("$(AppLinks)", _localizer.Localize(null, _host.AppLinks())); layout.Replace("$(PageScript)", script.ToString()); Response.Write(layout.ToString()); }
public static void ReplaceMacros(this IApplicationHost host, StringBuilder sb) { sb.Replace("$(Build)", host.AppBuild); sb.Replace("$(LayoutHead)", host.CustomAppHead()); sb.Replace("$(AppleTouchIcon)", host.AppleTouchIcon()); sb.Replace("$(LayoutManifest)", host.CustomManifest()); sb.Replace("$(AssetsStyleSheets)", host.AppStyleSheetsLink("applink")); sb.Replace("$(HelpUrl)", host.HelpUrl); sb.Replace("$(Description)", host.AppDescription); var theme = host.Theme; sb.Replace("$(ColorScheme)", theme?.ColorScheme ?? null); sb.Replace("$(Theme)", theme?.FileName ?? null); }