Ejemplo n.º 1
0
        public static void Main(string[] args)
        {
            var generator = new DbContextGenerator();

            //   generator.BlogOneToZeroOrOneTester();
            generator.CategorySelfReferenceTester();

            Console.ReadLine();
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        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();
        }
Ejemplo n.º 6
0
        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);
                }
            }
        }
Ejemplo n.º 7
0
        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");
            }
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 11
0
 static void Main(string[] args)
 {
     Console.WriteLine("");
     DbContextGenerator generator = new DbContextGenerator();
     var context = generator.GenerateDbContext(@"SampleModel.xml");
 }