public static void Main(string[] args) { var generator = new DbContextGenerator(); // generator.BlogOneToZeroOrOneTester(); generator.CategorySelfReferenceTester(); Console.ReadLine(); }
public void GetMyEntityShouldReturnEntity() { var contextGenerator = new DbContextGenerator(options); var manager = new MyEntityManager(contextGenerator); var entity = manager.GetMyEntity(); Assert.NotNull(entity); Assert.AreEqual(1, entity.Id); }
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 host = CreateHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; var context = services.GetRequiredService <AppDbContext>(); DbContextGenerator.Initialize(services); } host.Run(); }
public void ConfigureServices(IServiceCollection services) { if (ProjectEnv.IsRemoveEnv()) { var azureStorageConnString = Environment.GetEnvironmentVariable("AZURE_STORAGE_CONNECTION_STRING"); var azureFileShareName = Environment.GetEnvironmentVariable("AZURE_FILE_SHARE_NAME"); var shareClient = new ShareClient(azureStorageConnString, azureFileShareName); var dirClient = shareClient.GetDirectoryClient("schema"); var fileClient = dirClient.GetFileClient("Project.csdl"); var downloadResponse = fileClient.Download(); var stream = downloadResponse.Value.Content; var reader = new StreamReader(stream); File.WriteAllText(DbContextConstants.CsdlFile, reader.ReadToEnd()); } DbContextGenerator generator = new DbContextGenerator(); var contextType = generator.GenerateDbContext(DbContextConstants.CsdlFile, DbContextConstants.Name); var optionsBuilder = new DbContextOptionsBuilder(); var dbContextOptions = optionsBuilder.UseInMemoryDatabase("RapidApiDB").Options; //DbContext dbContext = (DbContext)Activator.CreateInstance(contextType, new object[] { dbContextOptions }); IDataStore dataStore = (IDataStore)Activator.CreateInstance(contextType); var model = Model.GetModel(); Assembly targetAssembly = AppDomain.CurrentDomain.GetAssemblies().First(a => a.GetName().Name.Contains(DbContextConstants.Name)); var targetTypes = targetAssembly.DefinedTypes; //dbContext.Database.CreateIfNotExists(); if (ProjectEnv.ShouldSeedData()) { var dataSeeder = new DataSeeder(model, dataStore, targetTypes); dataSeeder.SeedData().Wait(); } services.AddSingleton(this.Configuration); services.AddSingleton(typeof(IDataStore), dataStore); services.AddMvc(options => { options.EnableEndpointRouting = false; options.Conventions.Insert(0, new DynamicControllerModelConvention(model)); }) .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) .ConfigureApplicationPartManager(d => d.FeatureProviders.Add(new DynamicControllerFeatureProvider(model))); services.AddControllers(); services.AddOData(); }
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 SaveMyEntityShouldReturnValueUpdated() { var contextGenerator = new DbContextGenerator(options); var manager = new MyEntityManager(contextGenerator); const string nameToUpdate = "INTEGRATION TEST"; var entity = manager.GetMyEntity(); var originalValue = entity.Name; entity.Name = nameToUpdate; manager.SaveMyEntity(entity); var entitySaved = manager.GetMyEntity(); Assert.NotNull(entity); Assert.NotNull(entitySaved); Assert.AreEqual(entity.Name, entitySaved.Name); Assert.AreEqual(nameToUpdate, entitySaved.Name); entitySaved.Name = originalValue; manager.SaveMyEntity(entitySaved); }
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"); } }
public void ConfigureServices(IServiceCollection services) { DbContextGenerator generator = new DbContextGenerator(); var contextType = generator.GenerateDbContext(DbContextConstants.CsdlFile, DbContextConstants.Name); services.AddSingleton(this.Configuration); //services.AddDbContext<DbContext, InMemoryDbContext>(options => options.UseInMemoryDatabase(databaseName: "Hackathon2020.Poc01Db")); services.AddSingleton <DbContext>(sp => { var connectionString = $"Server=(localdb)\\MSSQLLocalDB;Database={DbContextConstants.Name};Trusted_Connection=True;MultipleActiveResultSets=true"; DbContext dbContext = Activator.CreateInstance(contextType, new object[] { connectionString }) as DbContext; dbContext.Database.CreateIfNotExists(); return(dbContext); }); services.AddMvc(options => { options.EnableEndpointRouting = false; options.Conventions.Insert(0, new DynamicControllerModelConvention(Model.GetModel())); }) .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) .ConfigureApplicationPartManager(d => d.FeatureProviders.Add(new DynamicControllerFeatureProvider(Model.GetModel()))); services.AddControllers(); services.AddOData(); }
public async Task When_EmployeeFound_Then_CalculateBonus(int employeeId, int totalBonusPool, decimal expectedBonus) { var dbContextOptionBuilder = new DbContextOptionsBuilder <AppDbContext>(); dbContextOptionBuilder.UseInMemoryDatabase(databaseName: "HrDb"); var context = new AppDbContext(dbContextOptionBuilder.Options); //test can break if seed data changes. // we should have our own seed/mock data if (!context.Employees.Any()) { DbContextGenerator.SeedData(context); } var employeeService = new EmployeeService(context); var bonusCalculator = new BonusCalculator(employeeService); var bonus = await bonusCalculator.Calculate(employeeId, totalBonusPool); bonus.Should().NotBeNull().And.BeOfType <BonusPoolCalculatorResultDto>(); bonus.Amount.Should().Be(expectedBonus); }
static void Main(string[] args) { Console.WriteLine(""); DbContextGenerator generator = new DbContextGenerator(); var context = generator.GenerateDbContext(@"SampleModel.xml"); }