private static void Main(string[] args) { var libType = LibType.Assembly; var executingDir = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); var sourcePath = $"{executingDir}/testscaffolding/sources.txt"; var omnisharpJson = File.ReadAllText($"{executingDir}/testscaffolding/omnisharp.json"); var source = File.ReadAllText(sourcePath); var sourceBuilder = new SourceBuilder(); var scriptBuilder = new ScriptGenerator(); // build assemblies here var libraryData = sourceBuilder.BuildAssembly(new[] { source }); var firstDbsetPropertyName = "Applications"; var userFolder = Environment.GetEnvironmentVariable("LocalAppData"); var appFolder = $"{userFolder}\\SqlMapper"; var libraryPath = libType == LibType.Assembly ? $"{appFolder}\\generatedAssembly.dll" : $"{appFolder}\\generatedAssembly.csx"; var scriptPath = $"{appFolder}\\main.csx"; var script = scriptBuilder.BuildMainScript("GeneratedNamespace", "TempContext", libraryPath, firstDbsetPropertyName); var omnisharpJsonpath = $"{appFolder}\\omnisharp.json"; var directory = new DirectoryInfo(appFolder); if (!directory.Exists) { directory.Create(); } File.WriteAllBytes(libraryPath, libraryData); File.WriteAllText(scriptPath, script); File.WriteAllText(omnisharpJsonpath, omnisharpJson); }
public async Task <object> Get(string connectionString, string databaseName, string workspaceDir, LibType libType) { await Task.Yield(); try { var scaffolder = new Scaffolder(); var sourceBuilder = new SourceBuilder(); var scriptBuilder = new ScriptGenerator(); var @namespace = libType == LibType.Assembly ? "GeneratedNamespace" : "System"; var contextName = $"{databaseName}Context"; var userFolder = Environment.GetEnvironmentVariable("LocalAppData"); var appFolder = $"{userFolder}\\SqlMapper"; var directory = new DirectoryInfo(appFolder); if (!directory.Exists) { directory.Create(); } var libraryPath = libType == LibType.Assembly ? $"{appFolder}\\generatedAssembly.dll" : $"{appFolder}\\generatedAssembly.csx"; var scriptPath = $"{workspaceDir}\\main.csx"; var queryableExtensionsSource = File.ReadAllText($"{AppContext.BaseDirectory}/IQueryableExtensions.cs"); var scaffolding = scaffolder.ScaffoldDatabase(connectionString, @namespace, contextName); scaffolding.AdditionalFiles.Add(queryableExtensionsSource); var libraryData = sourceBuilder.Build(scaffolding.AllFiles, libType); var firstDbsetPropertyName = scriptBuilder.GetPropertyName(scaffolding.DbContextSource); var script = scriptBuilder.BuildMainScript(@namespace, contextName, libraryPath, firstDbsetPropertyName); File.WriteAllBytes(libraryPath, libraryData); File.WriteAllText(scriptPath, script); return(new { ScriptPath = scriptPath }); } #pragma warning disable 168 catch (Exception ex) #pragma warning restore 168 { throw; } }
public void BuildTest() { var scriptGenerator = new ScriptGenerator(); //var script = scriptGenerator.BuildMainScript("GeneratedNamespace", "GeneratedContext", @"C:\temp\temp.dll", "Tacos"); var script = scriptGenerator.BuildMainScript("System", "GeneratedContext", @"C:\temp\temp.csx", "Tacos"); }