Esempio n. 1
0
        private static void Main(string[] args)
        {
            if (args.Length > 0)
            {
                var dataOptions = new OptionSet
                {
                    { "environment=", s => _environmentName = s }
                };
                dataOptions.Parse(args);
            }

            var configurationBuilder = new ConfigurationBuilder()
                                       .SetBasePath(_baseDirectory ?? Directory.GetCurrentDirectory())
                                       .AddJsonFile("appsettings.json", true, true)
                                       .AddJsonFile($"appsettings.{_environmentName}.json", true)
                                       .AddJsonFile("appsettings.local.json", true);

            IConfigurationRoot configuration = configurationBuilder.Build();
            var builder = new DbContextOptionsBuilder()
                          .UseNpgsql(configuration["DbConnection"], x => x.MigrationsAssembly("DbMigrator"));

            var modelStore = new ModelStore();
            var context    = new CustomEfDbContext(modelStore, builder.Options);
            var provider   = new EfDataProvider(context);

            var generator = new DataGenerator(provider, _environmentName);

            generator.GenAsync().GetAwaiter().GetResult();
        }
Esempio n. 2
0
        public IRepository SetDataProvider()
        {
            switch (_dataProviderConfigurator.Reciever)
            {
            case DataReciever.AdoNet:
                return(new SqlDataProvider(_dataProviderConfigurator.ConnectionData));

            case DataReciever.Linq:
                return(new LinqDataProvider(_dataProviderConfigurator.ConnectionData));

            case DataReciever.EF:
                var databaseConnector = new EfDataProvider(_dataProviderConfigurator.ConnectionData);
                databaseConnector.PrepareIfNotPresent();
                return(databaseConnector);

            default:
                throw new Exception("Cannot read server parameters");
            }
        }