public static void ClassStartup(TestContext testContext) { var cacheOptions = Microsoft.Extensions.Options.Options .Create(new MemoryCacheOptions()); RazorPageInfoFactory = new RazorPageInfoFactory( PATH_TO_RAZOR_PROJECT, new MemoryCache(cacheOptions)); }
public override async Task <Project> Generate( Project originalProject, Project destinationProject, IProgress <CodeGenerationProgress> progress, CancellationToken cancellationToken) { originalProject = originalProject.AddRazorFiles(); var memOptions = Microsoft.Extensions .Options .Options .Create(new MemoryCacheOptions()); var razorPageInfoFactory = new RazorPageInfoFactory( originalProject.FilePath, new MemoryCache(memOptions)); var razorPages = razorPageInfoFactory.GenerateRazorInfoPages(); var imports = new[] { "ApertureLabs.Selenium", "ApertureLabs.Selenium.PageObjects", "OpenQA.Selenium", "OpenQA.Selenium.Support.Events", "OpenQA.Selenium.Support.PageObjects", "OpenQA.Selenium.Support.UI", "System", "System.Collections", "System.Collections.Generic" }; foreach (var razorPage in razorPages) { var originalFile = originalProject.Documents.First( d => d.FilePath.Equals( razorPage.PhysicalPath, StringComparison.Ordinal)); destinationProject = GetOrCreateDocumentWithSameRelativePath( originalFile, destinationProject, razorPage.GeneratedInterfaceName, out var generatedInterfaceDoc, out var interfaceRelativePath); destinationProject = await razorPageInfoFactory.GenerateInterfaceDocumentAsync( imports, razorPage, generatedInterfaceDoc) .ConfigureAwait(false); destinationProject = GetOrCreateDocumentWithSameRelativePath( originalFile, destinationProject, razorPage.GeneratedClassName, out var generatedClassDoc, out var classRelativePath); destinationProject = await razorPageInfoFactory.GeneratedClassDocumentAsync( imports, razorPage, generatedClassDoc) .ConfigureAwait(false); } return(destinationProject); }