public Task <string> RenderViewAsync(SkinTawkToModule module, SkinTawkToModuleController.DisplayModel model) { ScriptBuilder sb = new ScriptBuilder(); ConfigData config = ConfigDataProvider.GetConfigAsync().Result; sb.Append($@" // https://www.tawk.to/javascript-api/ var Tawk_API = Tawk_API || {{}}, Tawk_LoadStart = new Date();"); if (Manager.HaveUser) { sb.Append($@" Tawk_API.visitor = {{ name: '{JE(Manager.UserName)}', email: '{JE(Manager.UserEmail)}', hash: '{JE(model.Hash)}' }};"); } sb.Append($@" (function() {{ var s1=document.createElement('script'),s0=document.getElementsByTagName('script')[0]; s1.async=true; s1.src = '{JE(string.Format("https://embed.tawk.to/{0}/default", Utility.UrlEncodePath(config.Account)))}'; s1.charset='UTF-8'; s1.setAttribute('crossorigin','*'); s0.parentNode.insertBefore(s1,s0); }})();"); Manager.ScriptManager.AddLast(sb.ToString()); return(Task.FromResult <string>(null)); }
private static void AppendDelimiter(ScriptBuilder scriptBuilder, ref int i) { if (i++ == 0) { scriptBuilder.Append(" "); } else { scriptBuilder.AppendLine(); scriptBuilder.Append(" ,"); } }
private async Task SaveRatesJSAsync(ExchangeRateData data) { string file = GetJSFileName(); ScriptBuilder sb = new ScriptBuilder(); sb.Append("// Generated file (see ExchangeRateDataProvider) - Do not modify\n"); sb.Append("YetaWF_CurrencyConverter_Rates = \n"); sb.Append(Utility.JsonSerialize(data.Rates)); sb.Append(";\n"); await FileSystem.FileSystemProvider.WriteAllTextAsync(file, sb.ToString()); }
public async Task <ActionResult> UninstallPackageModels(string packageName) { Package package = Package.GetPackageFromPackageName(packageName); List <string> errorList = new List <string>(); if (!await package.UninstallModelsAsync(errorList)) { ScriptBuilder sb = new ScriptBuilder(); sb.Append(this.__ResStr("cantUninstallModels", "Can't uninstall models for package {0}:(+nl)"), packageName.Split(new char[] { ',' }).First()); sb.Append(errorList, LeadingNL: true); throw new Error(sb.ToString()); } return(FormProcessed(null, popupText: this.__ResStr("removed", "Package models successfully removed"), OnClose: OnCloseEnum.Nothing)); }
public async Task <ActionResult> PerformSiteBackup() { List <string> errorList = new List <string>(); SiteBackup siteBackup = new SiteBackup(); if (!await siteBackup.CreateAsync(errorList, ForDistribution: true)) { ScriptBuilder sb = new ScriptBuilder(); sb.Append(this.__ResStr("cantBackup", "Can't create a site backup for site {0}:(+nl)"), Manager.CurrentSite.SiteDomain); sb.Append(errorList, LeadingNL: true); throw new Error(sb.ToString()); } return(Reload(null, PopupText: this.__ResStr("backupCreated", "The site backup has been successfully created"), Reload: ReloadEnum.ModuleParts)); }
public Task <string> RenderViewAsync(DisqusModule module, DisqusModuleController.DisplayModel model) { HtmlBuilder hb = new HtmlBuilder(); hb.Append($@" <div id='disqus_thread'></div>"); ScriptBuilder sb = new ScriptBuilder(); sb.Append($@" var disqus_config = function () {{ this.page.url = '{Utility.JserEncode(Manager.CurrentPage.EvaluatedCanonicalUrl)}'; this.page.identifier = '{Utility.JserEncode(Manager.CurrentPage.PageGuid.ToString())}'; this.page.title = '{Utility.JserEncode(Manager.CurrentPage.Title)}'; this.page.language = '{MultiString.ActiveLanguage.Substring(0, 2)}';"); if (model.UseSSO && !string.IsNullOrWhiteSpace(model.AuthPayload)) { sb.Append($@" this.page.remote_auth_s3 = '{Utility.JserEncode(model.AuthPayload)}'; this.page.api_key = '{Utility.JserEncode(model.PublicKey)}';"); } if (model.UseSSO) { sb.Append($@" this.sso = {{ name: '{Utility.JserEncode(Manager.CurrentSite.SiteDomain)}', //button: 'https://yetawf.com/images/samplenews.gif', //icon: 'https://yetawf.com/favicon.png', url: '{Utility.JserEncode(model.LoginUrl)}', logout: '{Utility.JserEncode(model.LogoffUrl)}', width: {model.Width}, height: {model.Height} }};"); } sb.Append($@" }}; (function () {{ var d = document, s = d.createElement('script'); s.src = '//{Utility.JserEncode(model.ShortName)}.disqus.com/embed.js'; s.setAttribute('data-timestamp', +new Date()); (d.head || d.body).appendChild(s); }})(); </script>"); Manager.ScriptManager.AddLast(sb.ToString()); return(Task.FromResult(hb.ToString())); }
/// <summary> /// Render a JSON object with data and tooltips for a DropDownList component. /// </summary> /// <param name="extraData">Optional data to be returned in JSON object as 'extra:' data.</param> /// <param name="list">A list of all items part of the DropDownList component.</param> /// <returns>A JSON object containing data and tooltips to update the contents of a dropdownlist.</returns> public static string RenderDataSource(List <SelectionItem <TYPE> > list, string extraData) { ScriptBuilder sb = new ScriptBuilder(); sb.Append(Basics.AjaxJSONReturn); sb.Append(@"{""data"":["); foreach (SelectionItem <TYPE> item in list) { sb.Append(@"{{""t"":{0},""v"":{1}}},", Utility.JsonSerialize(item.Text.ToString()), Utility.JsonSerialize(item.Value != null ? item.Value.ToString() : "")); } if (list.Count > 0) { sb.RemoveLast(); } sb.Append(@"],""tooltips"":["); if ((from i in list where i.Tooltip != null && !string.IsNullOrWhiteSpace(i.Tooltip.ToString()) select i).FirstOrDefault() != null) { foreach (SelectionItem <TYPE> item in list) { sb.Append("{0},", Utility.JsonSerialize(item.Tooltip == null ? "" : item.Tooltip.ToString())); } if (list.Count > 0) { sb.RemoveLast(); } } if (!string.IsNullOrWhiteSpace(extraData)) { sb.Append(@"],""extra"":["); sb.Append("{0}", Utility.JsonSerialize(extraData)); } sb.Append("]}"); return(sb.ToString()); }
/// <summary> /// /// </summary> private void BuildUpdateCommand() { ScriptBuilder.Append("UPDATE "); ScriptBuilder.AppendFormat(Table.ToString()); ScriptBuilder.Append(" SET "); foreach (var column in Table.GetAdditionalColumns()) { ScriptBuilder.Append(column.Name); ScriptBuilder.Append(Strings.Equal); ScriptBuilder.Append($"@{column.Name}"); ScriptBuilder.AppendIf(Columns.IsNotLast(column), Strings.Comma); ScriptBuilder.Append(Strings.WhiteSpace); } var primaryColumn = Table.GetPrimaryColumnName(); ScriptBuilder.Append("WHERE "); ScriptBuilder.Append(primaryColumn); ScriptBuilder.Append(Strings.Equal); ScriptBuilder.Append($"@{primaryColumn}"); ScriptBuilder.AppendLine(); ScriptBuilder.AppendLine("ELSE"); }
public async Task <ActionResult> ImportModule(HttpPostedFileBase __filename, ImportModuleModel model) #endif { FileUpload upload = new FileUpload(); string tempName = await upload.StoreTempPackageFileAsync(__filename); List <string> errorList = new List <string>(); bool success = await ModuleDefinition.ImportAsync(tempName, model.CurrentPageGuid, true, model.ModulePane, model.ModuleLocation == Location.Top, errorList); await FileSystem.TempFileSystemProvider.DeleteFileAsync(tempName); string errs = ""; if (errorList.Count > 0) { ScriptBuilder sbErr = new ScriptBuilder(); sbErr.Append(errorList, LeadingNL: true); errs = sbErr.ToString(); } if (success) { string msg = this.__ResStr("imported", "\"{0}\" successfully imported(+nl)", __filename.FileName) + errs; UploadResponse resp = new UploadResponse { Result = $"$YetaWF.confirm('{Utility.JserEncode(msg)}', null, function() {{ $YetaWF.reloadPage(true); }} );", }; return(new YJsonResult { Data = resp }); } else { // Anything else is a failure throw new Error(this.__ResStr("cantImport", "Can't import {0}:(+nl)", __filename.FileName) + errs); } }
public static void FormatExpressionList( IEnumerable <Expression> expressions, SqlFragment parent, ScriptBuilder scriptBuilder, TSqlVisitor visitor, string appendOptional = null) { int i = 0; foreach (Expression expression in expressions) { if (expression == null) { continue; } AppendDelimiter(scriptBuilder, ref i); scriptBuilder.AppendFragment(expression, parent, visitor); if (appendOptional != null) { scriptBuilder.Append(appendOptional); } } }
public void WhenAppendString_StrignIsAppended() { _sb.Append("test"); var script = _sb.ToString(); Assert.Equal("test", script); }
public async Task <ActionResult> GetPackageModulesDesignedFromGuid(Guid modGuid) { ScriptBuilder sb = new ScriptBuilder(); sb.Append(await ModuleSelectionPackageExistingEditComponent.RenderReplacementPackageModulesDesignedAsync(modGuid)); return(new YJsonResult { Data = sb.ToString() }); }
public ActionResult GetPackageModulesNew(string areaName) { ScriptBuilder sb = new ScriptBuilder(); sb.Append(ModuleSelectionModuleNewEditComponent.RenderReplacementPackageModulesNew(areaName)); return(new YJsonResult { Data = sb.ToString() }); }
public ActionResult GetPopupPageSkins(string skinCollection) { ScriptBuilder sb = new ScriptBuilder(); sb.Append(SkinNamePopupEditComponent.RenderReplacementSkinsForCollection(skinCollection)); return(new YJsonResult { Data = sb.ToString() }); }
public async Task <ActionResult> LocalizePackage(string packageName) { if (YetaWFManager.Deployed) { throw new InternalError("Can't localize packages on a deployed site"); } Package package = Package.GetPackageFromPackageName(packageName); List <string> errorList = new List <string>(); if (!await package.LocalizeAsync(errorList)) { ScriptBuilder sb = new ScriptBuilder(); sb.Append(this.__ResStr("cantLocalize", "Can't localize package {0}:(+nl)"), packageName.Split(new char[] { ',' }).First()); sb.Append(errorList, LeadingNL: true); throw new Error(sb.ToString()); } return(FormProcessed(null, popupText: this.__ResStr("generated", "Package localization resources successfully generated"), OnClose: OnCloseEnum.Nothing)); }
/// <summary> /// /// </summary> protected virtual void SetColumnNullableInfo() { if (!Column.IsAllowNull) { ScriptBuilder.Append(" NOT"); } ScriptBuilder.Append(" NULL"); }
/// <summary> /// /// </summary> protected override void InternalBuildCommandText() { SetAlterTable(); ScriptBuilder.Append(" ADD"); SetColumnInfo(); ScriptBuilder.AppendLine(); ScriptBuilder.AppendLine($"comment on column {Table.GetPgSqlName()}.{Column.GetPgSqlName()} is '{Column.Description}';"); }
/// <summary> /// /// </summary> /// <param name="column"></param> private void BuildNullableInfo(ColumnInfo column) { if (!column.IsAllowNull) { ScriptBuilder.Append(" NOT"); } ScriptBuilder.Append(" NULL"); }
/// <summary> /// /// </summary> /// <param name="column"></param> private void BuildUpdateSet(ColumnInfo column) { ScriptBuilder.Append(column.GetPgSqlName()); ScriptBuilder.Append(" = "); ScriptBuilder.Append($"@{column.Name}"); ScriptBuilder.AppendIf(Columns.IsNotLast(column), Strings.Comma); ScriptBuilder.Append(Strings.WhiteSpace); }
/// <summary> /// Imports all package data from a zip file (created using Export Data) or from templates /// </summary> public async Task ImportDataAsync(QueryHelper qs) { string zipFileName = qs["ZipFile"]; if (string.IsNullOrWhiteSpace(zipFileName)) { throw new InternalError("Zip filename missing"); } List <string> errorList = new List <string>(); if (!await Package.ImportDataAsync(zipFileName, errorList)) { ScriptBuilder sb = new ScriptBuilder(); sb.Append(this.__ResStr("cantImportData", "Can't import data from file {0}:(+nl)"), zipFileName); sb.Append(errorList, LeadingNL: true); throw new Error(sb.ToString()); } }
public override string GenerateHubs(Assembly assembly, bool generateAsModules) { var hubs = assembly.GetTypes() .Where(t => t.BaseType != null && t.BaseType.FullName != null && t.BaseType.FullName.Contains(HUB_TYPE)) .OrderBy(t => t.FullName) .ToList(); if (!hubs.Any()) { Console.WriteLine("No SignalR hubs found"); return(""); } Console.WriteLine(hubs.Count + " SignalR hubs found"); var requiredImports = new HashSet <string>(); foreach (var hub in hubs) { requiredImports.Add(hub.Namespace.Split('.')[0]); } var scriptBuilder = new ScriptBuilder(" "); scriptBuilder.AppendLine(); hubs.ForEach(h => GenerateHubInterfaces(h, scriptBuilder, generateAsModules, requiredImports)); // Generate client connection interfaces if (generateAsModules) { scriptBuilder.Append("export "); } scriptBuilder.AppendLineIndented("interface SignalR {"); using (scriptBuilder.IncreaseIndentation()) { hubs.ForEach(h => scriptBuilder.AppendLineIndented(h.Name.ToCamelCase() + ": I" + h.Name + "Proxy;")); } scriptBuilder.AppendLineIndented("}"); scriptBuilder.AppendLine(); var output = scriptBuilder.ToString(); // Output imports if required // TODO: this isn't going to work if SignalR hubs are in more than one assembly. if (generateAsModules) { var imports = "import Classes = require(\"./classes\");\r\n"; foreach (var ns in requiredImports) { imports += string.Format("import {0} = Classes.{0};\r\n", ns); } imports += "\r\n"; output = imports + output; } return(output); }
/// <summary> /// /// </summary> /// <param name="column"></param> private void BuildColumn(ColumnInfo column) { ScriptBuilder.AppendLine(); ScriptBuilder.Append($"{column.GetPgSqlName()} "); ScriptBuilder.Append(column.Type.GetColumnType()); BuildNullableInfo(column); BuildPrimaryKeyAndIdentity(column); ScriptBuilder.AppendIf(Columns.IsNotLast(column), Strings.Comma); }
/// <summary> /// /// </summary> private void BuildUpdateCommand() { ScriptBuilder.Append("WITH upsert AS (UPDATE "); ScriptBuilder.Append($"{Table.GetPgSqlName()} SET "); Table.Columns.ForEach(BuildUpdateSet); var primaryColumn = Table.GetPrimaryColumnName(); ScriptBuilder.Append($"WHERE \"{primaryColumn}\" = @{primaryColumn}"); ScriptBuilder.AppendLine(" RETURNING *)"); }
private string FormatMessage(bool success, List <string> errorList, string fileName) { string errs = ""; if (errorList.Count > 0) { ScriptBuilder sbErr = new ScriptBuilder(); sbErr.Append(errorList, LeadingNL: false); sbErr.Append("(+nl)(+nl)"); errs = sbErr.ToString(); } if (success) { return(errs + this.__ResStr("imported", "\"{0}\" successfully imported - YOU MUST RESTART THE SITE FOR PROPER OPERATION", fileName)); } else { // Anything else is a failure return(errs + this.__ResStr("cantImport", "Can't import {0}:{1}", fileName, errs)); } }
/// <summary> /// /// </summary> /// <param name="column"></param> private void BuildColumn(ColumnInfo column) { ScriptBuilder.AppendLine(); ScriptBuilder.Append($"{column.GetSqlName()} "); ScriptBuilder.Append(column.Type.GetColumnType()); BuildIdentity(column); BuildNullableInfo(column); ScriptBuilder.AppendIf(column.IsPrimary(), " PRIMARY KEY"); ScriptBuilder.Append(Strings.Comma); }
/// <summary> /// /// </summary> /// <param name="column"></param> private void BuildValue(ColumnInfo column) { ScriptBuilder.Append($"@{column.Name}"); if (Table.Columns.IsLast(column)) { return; } ScriptBuilder.Append(Strings.Comma); ScriptBuilder.Append(Strings.WhiteSpace); }
/// <summary> /// /// </summary> private void BuildColumn(ColumnInfo column) { ScriptBuilder.Append($"{column.GetMySqlName()}"); if (Table.Columns.IsLast(column)) { return; } ScriptBuilder.Append(Strings.Comma); ScriptBuilder.Append(Strings.WhiteSpace); }
/// <summary> /// /// </summary> protected void BuildMultipleColumnUnique() { ScriptBuilder.AppendLine($"ALTER TABLE {Table.GetPgSqlName()}"); ScriptBuilder.Append($"ADD CONSTRAINT {UniqueName} UNIQUE ("); foreach (var column in UniqueColumns) { ScriptBuilder.Append(column.GetPgSqlName()); ScriptBuilder.AppendIf(UniqueColumns.IsNotLast(column), " ,"); } ScriptBuilder.Append(");"); }
/// <summary> /// /// </summary> private void BuildIfStatement() { ScriptBuilder.Append("IF EXISTS(SELECT * FROM "); ScriptBuilder.AppendFormat(Table.GetSqlName()); ScriptBuilder.Append(" WHERE "); var primaryColumn = Table.GetPrimaryColumnName(); ScriptBuilder.Append(primaryColumn); ScriptBuilder.Append(Strings.Equal); ScriptBuilder.Append($"@{primaryColumn}"); ScriptBuilder.Append(Strings.RBracket); ScriptBuilder.AppendLine(); }
public async Task <ActionResult> LocalizeAllPackages() { if (YetaWFManager.Deployed) { throw new InternalError("Can't localize packages on a deployed site"); } List <string> errorList = new List <string>(); foreach (Package package in Package.GetAvailablePackages()) { if (package.IsCorePackage || package.IsModulePackage || package.IsSkinPackage) { if (!await package.LocalizeAsync(errorList)) { ScriptBuilder sb = new ScriptBuilder(); sb.Append(this.__ResStr("cantLocalize", "Can't localize package {0}:(+nl)"), package.Name); sb.Append(errorList, LeadingNL: true); throw new Error(sb.ToString()); } } } return(FormProcessed(null, popupText: this.__ResStr("generatedAll", "Localization resources for all packages have been successfully generated"), OnClose: OnCloseEnum.Nothing)); }
public static void FormatExpressionList( IEnumerable<Expression> expressions, SqlFragment parent, ScriptBuilder scriptBuilder, TSqlVisitor visitor, string appendOptional = null) { int i = 0; foreach (Expression expression in expressions) { if (expression == null) { continue; } AppendDelimiter(scriptBuilder, ref i); scriptBuilder.AppendFragment(expression, parent, visitor); if (appendOptional != null) { scriptBuilder.Append(appendOptional); } } }