private void GenerateSettings() { this.settings = new NavControlAddInSettings { ExtensionVersion = "1.0.0.5", ApplicationVersion = "17.0.0.0", PlatformVersion = "17.0.0.0", RuntimeVersion = "6.0", DependenciesJson = "[{\"id\": \"aa674118-6bda-4ffb-9c00-2fa79a1d13d5\", \"name\": \"Meta UI Wizard\", \"publisher\": \"Global Mediator\", \"version\": \"1.0.0.4\"}]", IdRangesJson = "[{\"from\": 50000, \"to\": 50100}]", ClientId = "02aab7a9-5e57-44e1-900e-546a34d4940e", ClientSecret = @"-qq_~Ciq31FoQXu475CrZ54-Us3GTfpA1-", EnvironmentName = "test", EnvironmentTenantId = "d25c5a7b-54fb-4863-88b9-5ccf8190a323", ExtensionPublisher = "Global Mediator", SymbolsToDownload = new List <SymbolsConfiguration> { new SymbolsConfiguration { Publisher = "Microsoft", AppName = "Application", VersionText = "18.0.0.0" }, new SymbolsConfiguration { Publisher = "Microsoft", AppName = "Base Application", VersionText = "18.0.0.0" }, new SymbolsConfiguration { Publisher = "Microsoft", AppName = "System Application", VersionText = "18.0.0.0" }, new SymbolsConfiguration { Publisher = "Microsoft", AppName = "System", VersionText = "18.0.0.0" }, new SymbolsConfiguration { Publisher = "Global Mediator", AppName = "Meta UI Wizard", VersionText = "1.0.0.4" } }, ControlId = Guid.NewGuid(), CustomStylesString = "", InitEventName = "init", ControlHtmlContext = "<meta-ui-grid></meta-ui-grid>", ControlAddInName = "Customers", PluginDetailsUrl = "test settings", ExtensionPages = new List <ExtensionPage> { new ExtensionPage { PageExtensionId = "50001", PageExtensionName = "Customer Grid", PageToExtendName = "Customer List" } }, Scripts = new List <string> { "https://dev-navnxt-angular.azureedge.net/dist/meta-ui-two/meta-ui-grid.js" }, Styles = new List <string> { "https://cdn.jsdelivr.net/npm/[email protected]/primeicons.min.css", "https://cdn.jsdelivr.net/npm/primeng@6/resources/primeng.min.css", "https://cdn.jsdelivr.net/npm/[email protected]/resources/themes/nova-light/theme.min.css" } }; }
private string ReplacePlaceholders(string content, NavControlAddInSettings settings) { foreach (var page in settings.ExtensionPages) { content = content .Replace("{{Version}}", settings.ExtensionVersion) .Replace("{{DependenciesJson}}", settings.DependenciesJson) .Replace("{{PlatformVersion}}", settings.PlatformVersion) .Replace("{{ApplicationVersion}}", settings.ApplicationVersion) .Replace("{{IdRangesJson}}", settings.IdRangesJson) .Replace("{{RuntimeVersion}}", settings.RuntimeVersion) .Replace("{{InitEventName}}", settings.InitEventName) .Replace("{{ControlHtmlContext}}", settings.ControlHtmlContext) .Replace("{{ControlAddInName}}", settings.ControlAddInName) .Replace("{{PluginDetailsUrl}}", settings.PluginDetailsUrl) .Replace("{{PageExtensionId}}", page.PageExtensionId) .Replace("{{PageExtensionName}}", page.PageExtensionName) .Replace("{{PageToExtendName}}", page.PageToExtendName) .Replace("{{ScriptsPlaceholder}}", $"'{settings.Scripts.Aggregate((x, y) => x == string.Empty ? y : $"{y}', '{x}")}'")
private async Task SetupSettingsAsync(HttpRequestMessage httpRequest) { // Read request body params NameValueCollection formData; try { logger.LogInformation("Reading http request form data"); formData = await httpRequest.Content.ReadAsFormDataAsync(); } catch (Exception ex) { throw new Exception("Failed to read http request form data", ex?.InnerException); } // Create settings for generator try { var controlSettings = new NavControlAddInSettings { ApplicationVersion = formData["ApplicationVersion"], PlatformVersion = formData["PlatformVersion"], RuntimeVersion = formData["RuntimeVersion"], DependenciesJson = formData["DependenciesJson"], IdRangesJson = formData["IdRangesJson"], ClientId = formData["ClientId"], ClientSecret = formData["ClientSecret"], EnvironmentName = formData["EnvironmentName"], EnvironmentTenantId = formData["EnvironmentTenantId"], SymbolsToDownload = new List <SymbolsConfiguration>(), ExtensionPublisher = formData["ExtensionPublisher"], ExtensionVersion = formData["ExtensionVersion"], ControlAddInName = formData["ControlAddInName"], ControlHtmlContext = formData["ControlHtmlContext"], ControlId = Guid.Parse(formData["ControlId"]), CustomStylesString = formData["CustomStylesString"], ExtensionPages = new List <ExtensionPage>(), InitEventName = formData["InitEventName"], PluginDetailsUrl = formData["PluginDetailsUrl"], Scripts = new List <string>(), Styles = new List <string>() }; // Deserialize extra data controlSettings.ExtensionPages = JsonConvert.DeserializeObject <List <ExtensionPage> >(formData["ExtensionPages"]); controlSettings.Scripts = JsonConvert.DeserializeObject <List <string> >(formData["Scripts"]); controlSettings.Styles = JsonConvert.DeserializeObject <List <string> >(formData["Styles"]); controlSettings.SymbolsToDownload = JsonConvert.DeserializeObject <List <SymbolsConfiguration> >(formData["SymbolsToDownload"]); // Set provider's settings settingsProvider.ControlAddInSettings = controlSettings; logger.LogInformation($"Initialized control settings."); } catch (Exception ex) { throw new Exception("Failed to create control settings", ex?.InnerException); } }