public void ProcessToAnotherFileManager(IFileManager fileManager, GeneratedTextTransformation outer) { AddCurrentBlock(); foreach (var fileBlock in _blocks) { fileManager.StartNewFile(fileBlock.Filename); outer.WriteLine(fileBlock.Text); fileManager.EndBlock(); } }
public FileManagementService(GeneratedTextTransformation outer) { if (outer == null) { throw new ArgumentNullException(nameof(outer)); } _outer = outer; _fileManagers = new Dictionary <string, IFileManager>(); _fileManager = null; _visualStudioFileManager = null; }
public void Run(string filename, string singleDbContextSubNamespace, Type fileManagerType, string subFolder) { Inflector.PluralisationService = new EnglishPluralizationService(); Settings.GenerateSingleDbContext = true; var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); if (!string.IsNullOrEmpty(subFolder)) { path = Path.Combine(path, subFolder); } Settings.Root = path; var fullPath = Path.Combine(path, $"{filename}_{Settings.DatabaseType}_{Settings.TemplateType}_Fk{Settings.ForeignKeyNamingStrategy}.cs"); // Delete old generated files if (File.Exists(fullPath)) { File.Delete(fullPath); } if (!string.IsNullOrEmpty(subFolder)) { foreach (var old in Directory.GetFiles(Settings.Root)) { File.Delete(old); } } var outer = new GeneratedTextTransformation(); var fileManagement = new FileManagementService(outer); var generator = GeneratorFactory.Create(fileManagement, fileManagerType, singleDbContextSubNamespace); // Turn on everything for testing Assert.IsNotNull(generator); Assert.IsNotNull(generator.FilterList); var filters = generator.FilterList.GetFilters(); Assert.IsNotNull(filters); foreach (var filter in filters) { filter.Value.IncludeViews = true; filter.Value.IncludeSynonyms = true; filter.Value.IncludeStoredProcedures = true; filter.Value.IncludeTableValuedFunctions = true; filter.Value.IncludeScalarValuedFunctions = true; } var stopwatch = new Stopwatch(); var stopwatchGenerator = new Stopwatch(); stopwatch.Start(); generator.ReadDatabase(); stopwatchGenerator.Start(); generator.GenerateCode(); stopwatchGenerator.Stop(); stopwatch.Stop(); Console.WriteLine("Duration: {0:F1} seconds, Generator {1:F1} seconds", stopwatch.ElapsedMilliseconds / 1000.0, stopwatchGenerator.ElapsedMilliseconds / 1000.0); Console.WriteLine($"Writing to {fullPath}"); Console.WriteLine(); if (outer.FileData.Length > 0) { using (var sw = new StreamWriter(fullPath)) { sw.Write(outer.FileData.ToString()); } } fileManagement.Process(true); }
public EFCore2ModelGenerator(GeneratedTextTransformation host) : base(host) { }
public void Init(GeneratedTextTransformation textTransformation) { throw new NotImplementedException(); }
public void Run(string filename, Type fileManagerType, string subFolder) { Inflector.PluralisationService = new EnglishPluralizationService(); var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); if (!string.IsNullOrEmpty(subFolder)) { path = Path.Combine(path, subFolder); } Settings.Root = path; var outer = new GeneratedTextTransformation(); var fileManagement = new FileManagementService(outer); var generator = GeneratorFactory.Create(fileManagement, fileManagerType); Assert.IsNotNull(generator); List <MultiContextSettings> multiDbSettings; if (string.IsNullOrWhiteSpace(Settings.MultiContextSettingsPlugin)) { multiDbSettings = generator.FilterList.GetMultiContextSettings(); } else { var plugin = (IMultiContextSettingsPlugin)AssemblyHelper.LoadPlugin(Settings.MultiContextSettingsPlugin); multiDbSettings = plugin.ReadSettings(); } Assert.IsNotNull(multiDbSettings); var filters = generator.FilterList.GetFilters(); Assert.IsNotNull(filters); var keys = filters.Select(x => x.Key).ToArray(); _generatedFileNames = keys.Select(x => $"{filename}_{Settings.DatabaseType}_{Settings.TemplateType}_{x}.cs").ToArray(); _generatedFullPaths = _generatedFileNames.Select(x => Path.Combine(path, x)).ToArray(); // Set the fileManager to generate these filenames for testing for (var n = 0; n < keys.Length; n++) { fileManagement.UseFileManager(keys[n]); fileManagement.StartNewFile(_generatedFileNames[n]); } // Delete old generated files foreach (var fullPath in _generatedFullPaths) { Console.WriteLine($"Deleting {fullPath}"); if (File.Exists(fullPath)) { File.Delete(fullPath); } } if (!string.IsNullOrEmpty(subFolder)) { foreach (var old in Directory.GetFiles(Settings.Root)) { File.Delete(old); } } // Turn on everything for testing foreach (var filter in generator.FilterList.GetFilters()) { filter.Value.IncludeViews = true; filter.Value.IncludeSynonyms = true; filter.Value.IncludeStoredProcedures = true; filter.Value.IncludeTableValuedFunctions = true; filter.Value.IncludeScalarValuedFunctions = true; } var stopwatch = new Stopwatch(); var stopwatchGenerator = new Stopwatch(); stopwatch.Start(); generator.ReadDatabase(); stopwatchGenerator.Start(); generator.GenerateCode(); stopwatchGenerator.Stop(); stopwatch.Stop(); Console.WriteLine("Duration: {0:F1} seconds, Generator {1:F1} seconds", stopwatch.ElapsedMilliseconds / 1000.0, stopwatchGenerator.ElapsedMilliseconds / 1000.0); foreach (var file in _generatedFullPaths) { Console.WriteLine($"Writing to {file}"); } Console.WriteLine(); if (outer.FileData.Length > 0 && _generatedFullPaths.Length == 1) { using (var sw = new StreamWriter(_generatedFullPaths[0])) { sw.Write(outer.FileData.ToString()); } } fileManagement.Process(true); }
public void Init(GeneratedTextTransformation textTransformation) { }
public void Init(GeneratedTextTransformation textTransformation) { _wrapped = EntityFrameworkTemplateFileManager.Create(textTransformation); }