public CodeGeneratorForm() { InitializeComponent(); templateGenerator = new TemplateGenerator(); // List up all available Factions and select the first factionCombo.Items.AddRange(templateGenerator.Factions.ToArray()); if (factionCombo.Items.Count > 0) { factionCombo.SelectedIndex = 0; } // List up all available Languages and select the first languageCombo.Items.AddRange(templateGenerator.Languages.ToArray()); if (languageCombo.Items.Count > 0) { languageCombo.SelectedIndex = 0; } // List up all available Programming Languages and select the first programmingLanguageCombo.Items.AddRange(templateGenerator.ProgrammingLanguages.ToArray()); if (programmingLanguageCombo.Items.Count > 0) { programmingLanguageCombo.SelectedIndex = 0; } // List up all available IDEs and select the first environmentComboBox.Items.AddRange(templateGenerator.Environments.ToArray()); if (environmentComboBox.Items.Count > 0) { environmentComboBox.SelectedIndex = 0; } }
/// <summary> /// 生成代码文件 /// </summary> public virtual void Generating() { foreach (var file in CodeFileInfos) { if (!Directory.Exists(file.AbsolutePath)) { Directory.CreateDirectory(Path.GetDirectoryName(file.AbsolutePath)); } TemplateGenerator.ProcessTemplate(file.TemplatePath, file.AbsolutePath); if (TemplateGenerator.Errors.HasErrors) { Logs.AppendLine($"Processing '{file.TemplatePath}' failed."); } foreach (System.CodeDom.Compiler.CompilerError err in TemplateGenerator.Errors) { if (err.IsWarning) { Logs.AppendLine($"{err.FileName}({err.Line},{err.Column}): WARNING {err.ErrorText}"); } else { Logs.AppendLine($"{err.FileName}({err.Line},{err.Column}): ERROR {err.ErrorText}"); } } } }
public IActionResult GetAllApplicationsPDF(int id) { var globalSettings = new GlobalSettings { ColorMode = ColorMode.Color, Orientation = Orientation.Portrait, PaperSize = PaperKind.A4, Margins = new MarginSettings { Top = 10 }, DocumentTitle = "Application Document" }; var objectSettings = new ObjectSettings { PagesCount = true, HtmlContent = TemplateGenerator.GetHTMLString(), WebSettings = { DefaultEncoding = "utf-8", UserStyleSheet = Path.Combine(Directory.GetCurrentDirectory(), "assets", "styles.css") }, HeaderSettings = { }, FooterSettings = { FontName = "Arial", FontSize = 9, Line = true, Right = "Page [page] of [toPage]" } }; var pdf = new HtmlToPdfDocument() { GlobalSettings = globalSettings, Objects = { objectSettings } }; var file = _converter.Convert(pdf); return(File(file, "application/pdf")); }
public IActionResult Get() { var globalSettings = new GlobalSettings { ColorMode = ColorMode.Color, Orientation = Orientation.Portrait, PaperSize = PaperKind.A4, Margins = new MarginSettings { Top = 10 }, DocumentTitle = "PDF Report", Out = @"D:\pdf\Employee_Report.pdf" }; var objectSettings = new ObjectSettings { PagesCount = true, HtmlContent = TemplateGenerator.GetHTMLString(), WebSettings = { DefaultEncoding = "utf-8", UserStyleSheet = Path.Combine(Directory.GetCurrentDirectory(), "assets", "styles.css") }, HeaderSettings = { FontName = "Arial", FontSize = 9, Right = "Page [page] of [toPage]", Line = true }, FooterSettings = { FontName = "Arial", FontSize = 9, Line = true, Center = "Report Footer" } }; var pdf = new HtmlToPdfDocument() { GlobalSettings = globalSettings, Objects = { objectSettings } }; converter.Convert(pdf); return(Ok("Successfully created PDF document.")); }
public virtual void Init(GeneratorParameters parameters) { if (parameters == null) { parameters = new GeneratorParameters(); } Templates = GetTemplateFiles(Options.TemplateDirectory); Logs.AppendLine($"发现Template '{Templates.Count}' 个。"); foreach (var item in parameters) { Parameters.Add(item.Key, item.Value); } var pathBuilder = new GeneratorPathBuilder(Options, Parameters); foreach (var template in Templates) { CodeFileInfos.Add(pathBuilder.Build(template)); } TemplateGenerator = new TemplateGenerator(); TemplateGenerator.Refs.Add(Path.Combine(AppContext.BaseDirectory, "System.CodeDom.dll")); TemplateGenerator.Refs.Add("System.ComponentModel.Primitives.dll"); foreach (var item in Parameters) { TemplateGenerator.TryAddParameter(item.Key + "=" + item.Value); } }
public async Task IncludeFileThatDoesNotExistTest() { var gen = new TemplateGenerator(); await gen.ProcessTemplateAsync(null, "<#@ include file=\"none.tt\" #>", null); Assert.StartsWith("Could not read included file 'none.tt'", gen.Errors.OfType <CompilerError> ().First().ErrorText); }
public IActionResult CreatePDF(string contratcIds, string request) { try { GlobalSettings globalSettings = getGlobalConfig(); ObjectSettings objectSettings = getObjectSettings(); IContractRepository Repository = new ContractRepository(); List <Contract> contratcs = Repository.GetByIdStringList(contratcIds); objectSettings.HtmlContent = TemplateGenerator.GetHTMLString(contratcs, request); var pdf = new HtmlToPdfDocument() { GlobalSettings = globalSettings, Objects = { objectSettings } }; _converter.Convert(pdf); var buffer = System.IO.File.ReadAllBytes(this._PDFLocale); return(File(buffer, "application/pdf")); } catch (System.Exception) { throw; } }
public async Task ValidateVMInVnetButNotInTargetVNet() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VM3")); var artifacts = new AsmArtifacts(); artifacts.VirtualMachines.Add((await azureContextUSCommercialRetriever.GetAzureAsmCloudServices())[0].VirtualMachines[0]); bool exceptionThrown = false; try { TemplateResult templateResult = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); } catch (Exception exc) { if (exc.GetType() == typeof(ArgumentException) && exc.Message == "Target Virtual Network for ASM Virtual Machine 'VM3' must be specified.") { exceptionThrown = true; } } Assert.IsFalse(!exceptionThrown, "Did not receive Null Target Virtual Network Argument Exception"); }
public async Task ValidateVMInExistingArmSubnetId() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VM3")); var artifacts = new AsmArtifacts(); artifacts.VirtualMachines.Add((await azureContextUSCommercialRetriever.GetAzureAsmCloudServices())[0].VirtualMachines[0]); TestHelper.SetTargetSubnets(artifacts); TemplateResult templateReault = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); JObject templateJson = templateReault.GenerateTemplate(); // Validate VM var vmResource = templateJson["resources"].Where( j => j["type"].Value <string>() == "Microsoft.Compute/virtualMachines").Single(); Assert.AreEqual("VM3-vm", vmResource["name"].Value <string>()); StringAssert.Contains(vmResource["properties"]["networkProfile"]["networkInterfaces"][0]["id"].Value <string>(), "'" + ArmConst.ProviderNetworkInterfaces + "VM3-nic'"); // Validate NIC var nicResource = templateJson["resources"].Where( j => j["type"].Value <string>() == "Microsoft.Network/networkInterfaces").Single(); Assert.AreEqual("VM3-nic", nicResource["name"].Value <string>()); StringAssert.Contains(nicResource["properties"]["ipConfigurations"][0]["properties"]["subnet"]["id"].Value <string>(), "/subscriptions/22222222-2222-2222-2222-222222222222/resourceGroups/dummygroup-rg/providers/Microsoft.Network/virtualNetworks/DummyVNet/subnets/subnet01"); }
public void TestAPI() { TemplateGenerator generator = GetTemplateGenerator(); var template = generator.GenerateTemplate().GetAwaiter().GetResult(); var obj = ((JArray)template["resources"]).Where(rr => rr.Value <string>("type") == "Microsoft.ApiManagement/service/apis").First(); Assert.AreEqual("Microsoft.ApiManagement/service/apis", obj.Value <string>("type")); Assert.AreEqual("2017-03-01", obj.Value <string>("apiVersion")); Assert.AreEqual("[concat(parameters('service_apidev_name'), '/' ,parameters('api_invoice-retrieval-api_name'))]", obj.Value <string>("name")); Assert.AreEqual(3, obj["resources"].Count()); Assert.AreEqual(2, obj["dependsOn"].Count()); var prop = obj["properties"]; Assert.AreEqual("Invoices", prop.Value <string>("displayName")); Assert.AreEqual("[parameters('invoice-retrieval-api_apiRevision')]", prop.Value <string>("apiRevision")); Assert.AreEqual("Retrieves invoices depending on market and invoice id", prop.Value <string>("description")); Assert.AreEqual("[parameters('invoice-retrieval-api_serviceUrl')]", prop.Value <string>("serviceUrl")); Assert.AreEqual("api/documents/invoices", prop.Value <string>("path")); Assert.AreEqual("[parameters('invoice-retrieval-api_isCurrent')]", prop.Value <string>("isCurrent")); Assert.AreEqual("[parameters('invoice-retrieval-api_apiVersion')]", prop.Value <string>("apiVersion")); Assert.AreEqual("[resourceId('Microsoft.ApiManagement/service/api-version-sets',parameters('service_apidev_name'), '5b1fb4607e5c66b5cb2fe2e8')]", prop.Value <string>("apiVersionSetId")); Assert.AreEqual("https", prop.Value <JArray>("protocols").First().Value <string>()); }
public TicketController(ITicket ticket, IMemoryCache cache, IConverter converter, TemplateGenerator template) { _ticket = ticket; _cache = cache; _converter = converter; _template = template; }
private JObject GetTemplate() { var generator = new TemplateGenerator("INT0012C.Workday.Rehire.Leavers", "c107df29-a4af-4bc9-a733-f88f0eaa4296", "blobtest", new MockResourceCollector("BlobConnector")); generator.GenerateHttpTriggerUrlOutput = true; return(generator.GenerateTemplate().GetAwaiter().GetResult()); }
public async Task <IActionResult> CreatePDFDownload() { var pdfData = await _repository.Book.GetBookAuthorReports(); var globalSettings = new GlobalSettings { ColorMode = ColorMode.Color, Orientation = Orientation.Portrait, PaperSize = PaperKind.A4, Margins = new MarginSettings { Top = 10 }, DocumentTitle = "Book Author Report" }; var objectSettings = new ObjectSettings { PagesCount = true, HtmlContent = TemplateGenerator.GetHTMLString(pdfData), WebSettings = { DefaultEncoding = "utf-8", UserStyleSheet = Path.Combine(Directory.GetCurrentDirectory(), "assets", "styles.css") }, HeaderSettings = { FontName = "Arial", FontSize = 9, Right = "Page [page] of [toPage]", Line = true }, FooterSettings = { FontName = "Arial", FontSize = 9, Line = true, Center = "Report Footer" } }; var pdf = new HtmlToPdfDocument() { GlobalSettings = globalSettings, Objects = { objectSettings } }; var file = _converter.Convert(pdf); return(File(file, "application/pdf", "BookReport.pdf")); }
public IActionResult CreatePDF() { var globalSettings = new GlobalSettings { ColorMode = ColorMode.Grayscale, Orientation = Orientation.Portrait, PaperSize = PaperKind.A4, Margins = new MarginSettings { Top = 10 }, DocumentTitle = "PDF Report", Out = @"C:\PDFCreator\Employee_Report1.pdf" }; var objectSettings = new ObjectSettings { PagesCount = true, HtmlContent = TemplateGenerator.GetHTMLString(), WebSettings = { DefaultEncoding = "utf-8", UserStyleSheet = Path.Combine(Directory.GetCurrentDirectory(), "assets", "styles.css") }, HeaderSettings = { FontName = "Arial", FontSize = 9, Right = "Page [page] of [toPage]", Line = true }, FooterSettings = { FontName = "Arial", FontSize = 9, Line = true, Center = "Report Footer" } }; var pdf = new HtmlToPdfDocument() { GlobalSettings = globalSettings, Objects = { objectSettings } }; //_converter.Convert(pdf); IF WE USE Out PROPERTY IN THE GlobalSettings CLASS, THIS IS ENOUGH FOR CONVERSION var file = _converter.Convert(pdf); //return Ok("Successfully created PDF document."); return(File(file, "application/pdf", "EmployeeReport1.pdf")); //return File(file, "application/pdf"); }
public void TemplateGeneratorTest () { var gen = new TemplateGenerator (); string tmp = null; gen.ProcessTemplate (null, "<#@ template language=\"C#\" #>", ref tmp, out tmp); Assert.AreEqual (0, gen.Errors.Count, "ProcessTemplate"); }
public IActionResult CreatePdfForUser(int userId) { var templateGenerator = new TemplateGenerator(_repo, _mapper); var globalSettings = new GlobalSettings { ColorMode = ColorMode.Color, Orientation = Orientation.Portrait, PaperSize = PaperKind.A4, Margins = new MarginSettings { Top = 15, Bottom = 20 }, DocumentTitle = "بطاقة مشترك" }; var objectSettings = new ObjectSettings { PagesCount = true, HtmlContent = templateGenerator.GetHTMLStringForUser(userId), WebSettings = { DefaultEncoding = "utf-8", UserStyleSheet = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "assets", "styles.css") }, HeaderSettings = { FontName = "Impact", FontSize = 12, Spacing = 5, Line = false }, FooterSettings = { FontName = "Geneva", FontSize = 15, Spacing = 7, Line = true, Center = "ZwajApp By Eng Muhammad Awadallah", Right = "[page]" } }; var pdf = new HtmlToPdfDocument() { GlobalSettings = globalSettings, Objects = { objectSettings } }; var file = _converter.Convert(pdf); return(File(file, "application/pdf")); }
public void TestDiagnosticSettings() { // /subscriptions/89d02439-770d-43f3-9e4a-8b910457a10c/resourceGroups/INT001.Invoice/providers/Microsoft.Logic/workflows/INT001.Invoice/providers/microsoft.insights/diagnosticSettings/service var generator = new TemplateGenerator("INT001.Invoice", "89d02439-770d-43f3-9e4a-8b910457a10c", "INT001.Invoice", new MockResourceCollector("DiagnosticSettings")); generator.DiagnosticSettings = true; var defintion = generator.GenerateTemplate().GetAwaiter().GetResult(); Assert.AreEqual("providers/diagnosticSettings", defintion["resources"][0]["resources"][0]["type"]); Assert.AreEqual("[concat('Microsoft.Insights/', parameters('diagnosticSettings_name'))]", defintion["resources"][0]["resources"][0]["name"]); Assert.AreEqual("[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', parameters('diagnosticSettings_resourceGroupName'), '/providers/Microsoft.OperationalInsights/workspaces/', parameters('diagnosticSettings_workspaceName'))]", defintion["resources"][0]["resources"][0]["properties"]["workspaceId"]); Assert.AreEqual("service", defintion["parameters"]["diagnosticSettings_name"]["defaultValue"]); Assert.AreEqual("twobits", defintion["parameters"]["diagnosticSettings_workspaceName"]["defaultValue"]); Assert.AreEqual("shared.infrastructure", defintion["parameters"]["diagnosticSettings_resourceGroupName"]["defaultValue"]); Assert.AreEqual("[parameters('logicAppName')]", defintion["resources"][0]["resources"][0]["dependsOn"][0]); // Logs Assert.AreEqual("[parameters('diagnosticSettings_logsEnabled')]", defintion["resources"][0]["resources"][0]["properties"]["logs"][0]["enabled"]); Assert.AreEqual("WorkflowRuntime", defintion["resources"][0]["resources"][0]["properties"]["logs"][0]["category"]); Assert.AreEqual(true, defintion["parameters"]["diagnosticSettings_logsEnabled"]["defaultValue"]); Assert.AreEqual(true, defintion["parameters"]["diagnosticSettings_logsRetentionPolicyEnabled"]["defaultValue"]); Assert.AreEqual(3, defintion["parameters"]["diagnosticSettings_logsRetentionPolicyDays"]["defaultValue"]); // Metrics Assert.AreEqual("[parameters('diagnosticSettings_metricsEnabled')]", defintion["resources"][0]["resources"][0]["properties"]["metrics"][0]["enabled"]); Assert.AreEqual("AllMetrics", defintion["resources"][0]["resources"][0]["properties"]["metrics"][0]["category"]); Assert.AreEqual(false, defintion["parameters"]["diagnosticSettings_metricsEnabled"]["defaultValue"]); Assert.AreEqual(false, defintion["parameters"]["diagnosticSettings_metricsRetentionPolicyEnabled"]["defaultValue"]); Assert.AreEqual(0, defintion["parameters"]["diagnosticSettings_metricsRetentionPolicyDays"]["defaultValue"]); Assert.AreEqual("[parameters('logicAppLocation')]", defintion["resources"][0]["location"]); }
public void TestAPIMMultipleSame() { var content = GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.APIMMultipleSame.json"); var generator = new TemplateGenerator("", "", "", null); var defintion = generator.generateDefinition(JObject.Parse(content)).GetAwaiter().GetResult(); //check parameters Assert.AreEqual("Api-Default-West-Europe", defintion["parameters"]["apimResourceGroup"]["defaultValue"]); Assert.AreEqual("apiminstancename", defintion["parameters"]["apimInstanceName"]["defaultValue"]); Assert.AreEqual("58985740990a990dd41e5392", defintion["parameters"]["apimApiId"]["defaultValue"]); Assert.AreEqual("8266eb865e6c440eb007067773e6890b", defintion["parameters"]["apimSubscriptionKey"]["defaultValue"]); //check parameters 2 is null Assert.IsNull(defintion["parameters"]["apimResourceGroup2"]); Assert.IsNull(defintion["parameters"]["apimInstanceName2"]); Assert.IsNull(defintion["parameters"]["apimApiId2"]); Assert.IsNull(defintion["parameters"]["apimSubscriptionKey2"]); //check Upload Attachment Assert.AreEqual("[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/', parameters('apimResourceGroup'),'/providers/Microsoft.ApiManagement/service/', parameters('apimInstanceName'),'/apis/', parameters('apimApiId'),'')]", defintion["resources"][0]["properties"]["definition"]["actions"]["UploadAttachment"]["inputs"]["api"]["id"]); Assert.AreEqual("[parameters('apimSubscriptionKey')]", defintion["resources"][0]["properties"]["definition"]["actions"]["UploadAttachment"]["inputs"]["subscriptionKey"]); //check upload Attachment 2 Assert.AreEqual("[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/', parameters('apimResourceGroup'),'/providers/Microsoft.ApiManagement/service/', parameters('apimInstanceName'),'/apis/', parameters('apimApiId'),'')]", defintion["resources"][0]["properties"]["definition"]["actions"]["UploadAttachment2"]["inputs"]["api"]["id"]); Assert.AreEqual("[parameters('apimSubscriptionKey')]", defintion["resources"][0]["properties"]["definition"]["actions"]["UploadAttachment2"]["inputs"]["subscriptionKey"]); }
public void GenerateSQLGatewayConnectionTemplate() { var apiresource = JObject.Parse(GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.ApiSource.sqlgateway.json")); var apiresourceInstance = JObject.Parse(GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.ApiSource.sqlgatewayInstance.json")); var generator = new TemplateGenerator("", "", "", null); var defintion = generator.generateConnectionTemplate(apiresource, apiresourceInstance, "sql", "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/', 'sql')]", "sql_name"); var template = generator.GetTemplate(); Assert.AreEqual("windows", template.parameters["sql_authType"]["defaultValue"]); Assert.AreEqual("windows", template.parameters["sql_authType"]["allowedValues"][0]); Assert.AreEqual("Username credential", template.parameters["sql_username"]["metadata"]["description"]); Assert.AreEqual("[parameters('sql_server')]", defintion["properties"]["parameterValues"]["server"]); Assert.AreEqual("[parameters('sql_database')]", defintion["properties"]["parameterValues"]["database"]); Assert.AreEqual("[parameters('sql_authType')]", defintion["properties"]["parameterValues"]["authType"]); Assert.AreEqual("[parameters('sql_username')]", defintion["properties"]["parameterValues"]["username"]); Assert.AreEqual("[parameters('sql_password')]", defintion["properties"]["parameterValues"]["password"]); Assert.AreEqual("[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',parameters('sql_gatewayresourcegroup'),'/providers/Microsoft.Web/connectionGateways/',parameters('sql_gatewayname'))]", defintion["properties"]["parameterValues"]["gateway"]["id"]); Assert.AreEqual("[parameters('sql_name')]", defintion["name"]); Assert.AreEqual("[parameters('sql_displayName')]", defintion["properties"]["displayName"]); Assert.AreEqual("SQL server OnPrem", template.parameters["sql_displayName"]["defaultValue"]); Assert.AreEqual("[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/', 'sql')]", defintion["properties"]["api"]["id"]); }
public void GenerateSQLCloudConnectionTemplate() { var apiresource = JObject.Parse(GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.ApiSource.sqlcloud.json")); var apiresourceInstance = JObject.Parse(GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.ApiSource.sqlcloudInstance.json")); var generator = new TemplateGenerator("", "", "", null); var defintion = generator.generateConnectionTemplate(apiresource, apiresourceInstance, "sql-1", "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/', 'sql')]", "sql-1_name"); var template = generator.GetTemplate(); Assert.IsNull(template.parameters["sql-1_authType"]); Assert.AreEqual("Username credential", template.parameters["sql-1_username"]["metadata"]["description"]); Assert.AreEqual("[parameters('sql-1_server')]", defintion["properties"]["parameterValues"]["server"]); Assert.AreEqual("[parameters('sql-1_database')]", defintion["properties"]["parameterValues"]["database"]); Assert.IsNull(defintion["properties"]["parameterValues"]["authType"]); Assert.AreEqual("[parameters('sql-1_username')]", defintion["properties"]["parameterValues"]["username"]); Assert.AreEqual("[parameters('sql-1_password')]", defintion["properties"]["parameterValues"]["password"]); Assert.IsNull(defintion["properties"]["parameterValues"]["gateway"]); Assert.AreEqual("[parameters('sql-1_name')]", defintion["name"]); Assert.AreEqual("[parameters('sql-1_displayName')]", defintion["properties"]["displayName"]); Assert.AreEqual("SQL Azure", template.parameters["sql-1_displayName"]["defaultValue"]); Assert.AreEqual("[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/', 'sql')]", defintion["properties"]["api"]["id"]); }
public void TestHTTPAuthentication() { var content = GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.HTTP-Authentication.json"); var generator = new TemplateGenerator("", "", "", null); var defintion = generator.generateDefinition(JObject.Parse(content)).GetAwaiter().GetResult(); //check parameters basic auth Assert.AreEqual(defintion["parameters"]["HTTP-Password"]["defaultValue"], "bbb"); Assert.AreEqual(defintion["parameters"]["HTTP-Username"]["defaultValue"], "aa"); Assert.AreEqual(defintion["parameters"]["HTTP-URI"]["defaultValue"], "http://google.se"); Assert.AreEqual(defintion["resources"][0]["properties"]["definition"]["actions"]["HTTP"]["inputs"]["uri"], "[parameters('HTTP-URI')]"); //check parameters certificate auth Assert.AreEqual(defintion["parameters"]["HTTP_2-Password"]["defaultValue"], "mypassword"); Assert.AreEqual(defintion["parameters"]["HTTP_2-Pfx"]["defaultValue"], "pfxcontent"); Assert.AreEqual(defintion["resources"][0]["properties"]["definition"]["actions"]["HTTP_2"]["inputs"]["uri"], "[parameters('HTTP_2-URI')]"); //check parameters oauth AAD Assert.AreEqual(defintion["parameters"]["HTTP_3-Audience"]["defaultValue"], "myaudience"); Assert.AreEqual(defintion["parameters"]["HTTP_3-Authority"]["defaultValue"], "https://login.microsoft.com/my"); Assert.AreEqual(defintion["parameters"]["HTTP_3-ClientId"]["defaultValue"], "myclientid"); Assert.AreEqual(defintion["parameters"]["HTTP_3-Secret"]["defaultValue"], "mysecret"); Assert.AreEqual(defintion["parameters"]["HTTP_3-Tenant"]["defaultValue"], "mytenant"); Assert.AreEqual(defintion["parameters"]["HTTP_3-URI"]["defaultValue"], "http://google.se/w2"); Assert.AreEqual(defintion["resources"][0]["properties"]["definition"]["actions"]["HTTP_3"]["inputs"]["uri"], "[parameters('HTTP_3-URI')]"); //check parameters Raw Assert.AreEqual(defintion["parameters"]["HTTP_4-Raw"]["defaultValue"], "myauthheader"); Assert.AreEqual(defintion["resources"][0]["properties"]["definition"]["actions"]["HTTP_4"]["inputs"]["uri"], "[parameters('HTTP_4-URI')]"); }
public void GenerateFileSystemGatewayConnectionTemplate() { var apiresource = JObject.Parse(GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.ApiSource.filegateway.json")); var apiresourceInstance = JObject.Parse(GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.ApiSource.filegatewayInstance.json")); var generator = new TemplateGenerator("", "", "", null); var defintion = generator.generateConnectionTemplate(apiresource, apiresourceInstance, "filesystem", "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/filesystem')]", "filesystem_name"); var template = generator.GetTemplate(); Assert.AreEqual("windows", template.parameters["filesystem_authType"]["defaultValue"]); Assert.AreEqual("Root folder path (examples: \\\\MACHINE\\myShare or C:\\myShare)", template.parameters["filesystem_rootfolder"]["metadata"]["description"]); Assert.AreEqual("[parameters('filesystem_rootfolder')]", defintion["properties"]["parameterValues"]["rootfolder"]); Assert.AreEqual("[parameters('filesystem_authType')]", defintion["properties"]["parameterValues"]["authType"]); Assert.AreEqual("[parameters('filesystem_username')]", defintion["properties"]["parameterValues"]["username"]); Assert.AreEqual("[parameters('filesystem_password')]", defintion["properties"]["parameterValues"]["password"]); Assert.AreEqual("[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',parameters('filesystem_gatewayresourcegroup'),'/providers/Microsoft.Web/connectionGateways/',parameters('filesystem_gatewayname'))]", defintion["properties"]["parameterValues"]["gateway"]["id"]); Assert.AreEqual("[parameters('filesystem_name')]", defintion["name"]); Assert.AreEqual("[parameters('filesystem_displayName')]", defintion["properties"]["displayName"]); Assert.AreEqual("Malos-LogicApp2015", template.parameters["filesystem_gatewayname"]["defaultValue"]); Assert.AreEqual("OnPremDataGateway", template.parameters["filesystem_gatewayresourcegroup"]["defaultValue"]); Assert.AreEqual("File System", template.parameters["filesystem_displayName"]["defaultValue"]); Assert.AreEqual("[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/filesystem')]", defintion["properties"]["api"]["id"]); }
public void TestTriggerWithGateway() { var content = GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.file-test-trigger-gateway.json"); var generator = new TemplateGenerator("", "fakeb73-d0ff-455d-a2bf-eae0b300696d", "", null); var defintion = generator.generateDefinition(JObject.Parse(content), false).GetAwaiter().GetResult(); //check parameters Assert.AreEqual(defintion["parameters"]["When_a_file_is_createdFrequency"]["defaultValue"], "Minute"); Assert.AreEqual(defintion["parameters"]["When_a_file_is_createdInterval"]["defaultValue"], 3); Assert.AreEqual(defintion["parameters"]["filesystem-1_name"]["defaultValue"], "filesystem-1"); //check nested nested action Assert.AreEqual("[parameters('When_a_file_is_createdFrequency')]", defintion["resources"][0]["properties"]["definition"]["triggers"]["When_a_file_is_created"]["recurrence"]["frequency"]); Assert.AreEqual("[parameters('When_a_file_is_createdInterval')]", defintion["resources"][0]["properties"]["definition"]["triggers"]["When_a_file_is_created"]["recurrence"]["interval"]); //make sure no depends on is added Assert.AreEqual(0, defintion["resources"][0]["dependsOn"].Count()); //File trigger parameters and base64 handling Assert.IsNotNull(defintion["resources"][0]["properties"]["definition"]["triggers"]["When_a_file_is_created"]["metadata"]["[base64(parameters('When_a_file_is_created-folderPath'))]"]); Assert.AreEqual("[parameters('When_a_file_is_created-folderPath')]", defintion["resources"][0]["properties"]["definition"]["triggers"]["When_a_file_is_created"]["metadata"]["[base64(parameters('When_a_file_is_created-folderPath'))]"]); Assert.AreEqual("[base64(parameters('When_a_file_is_created-folderPath'))]", defintion["resources"][0]["properties"]["definition"]["triggers"]["When_a_file_is_created"]["inputs"]["queries"]["folderId"]); }
public void TestFileLogicApp() { var content = GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.file-test-readfolder.json"); var generator = new TemplateGenerator("", "fakeecb73-d0ff-455d-a2bf-eae0b300696d", "", null); var defintion = generator.generateDefinition(JObject.Parse(content), false).GetAwaiter().GetResult(); //check parameters Assert.AreEqual(defintion["parameters"]["RecurrenceFrequency"]["defaultValue"], "Minute"); Assert.AreEqual(defintion["parameters"]["RecurrenceInterval"]["defaultValue"], 3); Assert.AreEqual(defintion["parameters"]["filesystem-1_name"]["defaultValue"], "filesystem-1"); //check nested nested action Assert.AreEqual("[parameters('RecurrenceFrequency')]", defintion["resources"][0]["properties"]["definition"]["triggers"]["Recurrence"]["recurrence"]["frequency"]); Assert.AreEqual("[parameters('RecurrenceInterval')]", defintion["resources"][0]["properties"]["definition"]["triggers"]["Recurrence"]["recurrence"]["interval"]); //make sure no depends on is added Assert.AreEqual(0, defintion["resources"][0]["dependsOn"].Count()); //File trigger parameters and base64 handling Assert.IsNotNull(defintion["resources"][0]["properties"]["definition"]["actions"]["List_files_in_folder"]["metadata"]["[base64(parameters('List_files_in_folder-folderPath'))]"]); Assert.AreEqual("[parameters('List_files_in_folder-folderPath')]", defintion["resources"][0]["properties"]["definition"]["actions"]["List_files_in_folder"]["metadata"]["[base64(parameters('List_files_in_folder-folderPath'))]"]); Assert.AreEqual("[concat('/datasets/default/folders/@{encodeURIComponent(encodeURIComponent(', parameters('__apostrophe'), base64(parameters('List_files_in_folder-folderPath')), parameters('__apostrophe'), '))}')]", defintion["resources"][0]["properties"]["definition"]["actions"]["List_files_in_folder"]["inputs"]["path"]); //Assert.AreEqual("[base64(parameters('When_a_file_is_created-folderPath'))]", defintion["resources"][0]["properties"]["definition"]["triggers"]["When_a_file_is_created"]["inputs"]["queries"]["folderId"]); }
/// <summary> /// This is a helper function that generates the steps that need to be executed for initializing the kernel and ProcessedInput /// </summary> /// <param name="rawSchema">rawSchema as passed in from the frontend</param> /// <param name="sampleDataPath">Sample Data path where the sample data is stored</param> /// <param name="normalizationSnippet">normalizationSnippet as passed in from the frontend</param> private void DiagnosticInputhelper(string rawSchema, string sampleDataPath, string normalizationSnippet, string flowId) { List <string> columnNames = new List <string>(); var normalizationSnippetLines = normalizationSnippet.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); columnNames.AddRange(normalizationSnippetLines); string finalNormalizationString = string.Empty; if (columnNames.Count == 0) { finalNormalizationString = "\"Raw.*\""; } else { finalNormalizationString = $"\"{columnNames[0]}\""; for (int i = 1; i < columnNames.Count; i++) { finalNormalizationString = finalNormalizationString + $@",""{columnNames[i]}"""; } } Dictionary <string, string> values = new Dictionary <string, string> { ["RawSchema"] = rawSchema, ["SampleDataPath"] = sampleDataPath, ["NormalizationSnippet"] = finalNormalizationString, ["BinName"] = TranslateBinNames(_engineEnvironment.EngineFlowConfig.BinaryName, _engineEnvironment.EngineFlowConfig.OpsStorageAccountName, _engineEnvironment.EngineFlowConfig.InteractiveQueryDefaultContainer), ["KernelDisplayName"] = _engineEnvironment.GenerateKernelDisplayName(flowId) }; SetupSteps = Helper.TranslateOutputTemplate(TemplateGenerator.GetSetupStepsTemplate(), values); }
public void LoadLogicAppCustom() { TemplateGenerator generator = GetTemplateGenerator(); var template = generator.GenerateTemplate().GetAwaiter().GetResult(); Assert.IsNotNull(template); }
public dynamic RetornoTotalOcorrencia([FromBody] FiltroOcorrenciaCommands command) { try { if (!command.IsValid()) { return(new ComandResult(false, "Por favor corrija os campos abaixo", command.Notifications)); } byte[] file; var retorno = _ocorrenciaRepositorio.RetornoTotalOcorrencia(command); var obj = TemplateGenerator.TotalOcorrencias(retorno); var pdf = RetornoPdf.Retorno(obj, "assets", "styles.css", Orientation.Landscape); file = _converter.Convert(pdf); return(File(file, "application/pdf")); } catch (NullReferenceException ex) { return(ex.Message); } }
public async Task ValidateSingleVnetWithNoSubnetsGetsNewDefaultSubet() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VNET4")); var artifacts = new AsmArtifacts(); artifacts.VirtualNetworks.Add(await azureContextUSCommercialRetriever.GetAzureAsmVirtualNetwork("asmnet")); TemplateResult templateResult = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); JObject templateJson = templateResult.GenerateTemplate(); // Validate VNETs var vnets = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/virtualNetworks"); Assert.AreEqual(1, vnets.Count()); Assert.AreEqual("asmnet-vnet", vnets.First()["name"].Value <string>()); Assert.AreEqual("10.0.0.0/20", vnets.First()["properties"]["addressSpace"]["addressPrefixes"][0].Value <string>()); // Validate subnets var subnets = vnets.First()["properties"]["subnets"]; Assert.AreEqual(1, subnets.Count()); Assert.AreEqual("Subnet1", subnets[0]["name"].Value <string>()); Assert.AreEqual("10.0.0.0/20", subnets[0]["properties"]["addressPrefix"].Value <string>()); }
public async Task ValidateSingleVnetWithNsgAndRT() { AzureContext azureContextUSCommercial = TestHelper.SetupAzureContext(); TemplateGenerator templateGenerator = TestHelper.SetupTemplateGenerator(azureContextUSCommercial); FakeAzureRetriever azureContextUSCommercialRetriever = (FakeAzureRetriever)azureContextUSCommercial.AzureRetriever; azureContextUSCommercialRetriever.LoadDocuments(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDocs\\VNET2")); var artifacts = new AsmArtifacts(); artifacts.VirtualNetworks.Add(await azureContextUSCommercialRetriever.GetAzureAsmVirtualNetwork("asmtest")); artifacts.NetworkSecurityGroups.Add(await azureContextUSCommercialRetriever.GetAzureAsmNetworkSecurityGroup("asmnsg")); TemplateResult templateResult = await templateGenerator.GenerateTemplate(TestHelper.GetTestAzureSubscription(), TestHelper.GetTestAzureSubscription(), artifacts, await TestHelper.GetTargetResourceGroup(azureContextUSCommercial), AppDomain.CurrentDomain.BaseDirectory); JObject templateJson = templateResult.GenerateTemplate(); // Validate NSG var nsgs = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/networkSecurityGroups"); Assert.AreEqual(1, nsgs.Count()); Assert.AreEqual("asmnsg-nsg", nsgs.First()["name"].Value <string>()); // Validate NSG rules JArray rules = (JArray)nsgs.First()["properties"]["securityRules"]; Assert.AreEqual(2, rules.Count()); Assert.AreEqual("Enable-Internal-DNS", rules[0]["name"].Value <string>()); Assert.AreEqual("Port-7777-rule", rules[1]["name"].Value <string>()); // Validate RouteTable var rt = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/routeTables"); Assert.AreEqual(1, rt.Count()); Assert.AreEqual("asmrt", rt.First()["name"].Value <string>()); // Validate Routes JArray routes = (JArray)rt.First()["properties"]["routes"]; Assert.AreEqual(1, routes.Count()); Assert.AreEqual("all-traffic-to-fw", routes[0]["name"].Value <string>()); // Validate VNETs var vnets = templateJson["resources"].Children().Where( r => r["type"].Value <string>() == "Microsoft.Network/virtualNetworks"); Assert.AreEqual(1, vnets.Count()); Assert.AreEqual("asmtest-vnet", vnets.First()["name"].Value <string>()); // Validate subnets var subnets = vnets.First()["properties"]["subnets"]; Assert.AreEqual(1, subnets.Count()); Assert.AreEqual("Subnet-1", subnets.First()["name"].Value <string>()); StringAssert.Contains(subnets.First()["properties"]["networkSecurityGroup"]["id"].Value <string>(), "networkSecurityGroups/asmnsg"); StringAssert.Contains(subnets.First()["properties"]["routeTable"]["id"].Value <string>(), "routeTables/asmrt"); }
public void When_files_is_null_should_throw_argument_null_exception() { var writer = new StringWriter(); var generator = new TemplateGenerator(writer); Action method = () => generator.Generate(null); method.ShouldThrow<ArgumentNullException>() .And.ParamName.Should().Be("files"); }
public void TemplateGeneratorTest() { var gen = new TemplateGenerator(); string tmp = null; gen.ProcessTemplate(null, "<#@ template language=\"C#\" #>", ref tmp, out tmp); Assert.IsNull(gen.Errors.OfType <CompilerError> ().FirstOrDefault(), "ProcessTemplate"); }
public void ImportReferencesTest () { var gen = new TemplateGenerator (); string tmp = null; gen.ReferencePaths.Add (Path.GetDirectoryName (typeof (Uri).Assembly.Location)); gen.ProcessTemplate (null, "<#@ assembly name=\"System.dll\" #>\n<#@ assembly name=\"System.Core.dll\" #>", ref tmp, out tmp); Assert.AreEqual (0, gen.Errors.Count, "ImportReferencesTest"); }
public void TestResourcesCount() { TemplateGenerator generator = GetTemplateGenerator(); var template = generator.GenerateTemplate().GetAwaiter().GetResult(); var obj = (JArray)template["resources"]; Assert.AreEqual(4, obj.Count); }
public void Given_one_content_when_generate_writer_should_contains_all_contents() { var writer = new StringWriter(); var generator = new TemplateGenerator(writer); var contents = new [] { new FileContent { Name = "template.tpl.html", Content = "<p>Hi!</p>" } }; generator.Generate(contents); writer.GetStringBuilder() .ToString() .Should().Be("<p>Hi!</p>"); }
private static void TemplateGaneratorAction(Action<TemplateGenerator> action, string transactionName) { var versionManager = VersionManager.GetManager(null, transactionName); var pageManager = PageManager.GetManager(null, transactionName); var moduleManager = ModuleBuilderManager.GetManager(null, transactionName); var templateGenerator = new TemplateGenerator(pageManager, moduleManager, versionManager); action(templateGenerator); if (transactionName.IsNullOrEmpty()) { moduleManager.SaveChanges(); pageManager.SaveChanges(); versionManager.SaveChanges(); } }