private void CreateContextAndConfig(List <EntityType> tablesType, Application application, string appPath) { bool generated = DbContextGenerator.Generate(application.Name, appPath, tablesType); if (generated) { //Create web.config string connectionString = Globals.GetSQLServerConnectionString(application); ApplicationUtilities.CreateWebConfig(appPath, application, connectionString); //Create Global.asax ApplicationUtilities.CreateGlobalAsax(application, appPath); } }
public static void Main(string[] args) { var logger = new LoggerConfiguration().WriteTo.ColoredConsole().CreateLogger(); Log.Logger = logger; logger.Information("Parsing options"); var parser = CreateArgumentParser(logger); var parseResult = parser.Parse(args); if (parseResult.HelpCalled) { return; } if (parseResult.HasErrors) { logger.Warning("Some required options are missing (see below). Please use '-?', '/?', '/help' or '--help' parameter to get list of options."); foreach (var error in parseResult.Errors) { logger.Error( $"'{error.Option.Description}' was not found."); } } else { logger.Information("Options successfully parsed. Generating DbContext"); var parsedArguments = parser.Object; var generator = new DbContextGenerator(); try { generator.Generate(parsedArguments.DbContextName, parsedArguments.EntitiesNamespace, parsedArguments.DataNamespace, parsedArguments.EntitiesDll, parsedArguments.EntityBaseClass); } catch (GenerationException exception) { logger.Error(exception, exception.Message); } catch (Exception exception) { logger.Fatal(exception, "Unknow error occured. Details: {error}", exception.Message); } } }
public void Test01_Generate_TestDbContext_For_All_Entities() { var dll = Path.Combine(Directory.GetCurrentDirectory(), @"SSW.DataOnion.CodeGenerator.Tests.Unit.dll"); var generator = new DbContextGenerator(); generator.Generate("TestDbContext", "SSW.DataOnion.CodeGenerator.Tests.Unit.TestEntities", "SSW.DataOnion.CodeGenerator.Tests.Unit", dll); var expectedDbContextContents = ResourceReader.GetResourceContents( "SSW.DataOnion.CodeGenerator.Tests.Unit.Resources.TestDbContext.output"); var generatedFileContent = File.ReadAllText("TestDbContext.gen.cs"); try { Assert.Equal(expectedDbContextContents, generatedFileContent); } finally { File.Delete("TestDbContext.gen.cs"); } }