Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
 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");
 }