示例#1
0
        public static void PerformControllerGenerate(TargetLanguage targetLanguage, TargetDatabaseConnector targetDatabaseConnector, string connectionString, string directory, string @namespace)
        {
            IModelGenerator generator = default;

            switch (targetLanguage)
            {
            case TargetLanguage.CSharp:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new CSharpControllerGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new CSharpControllerGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new CSharpControllerGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new CSharpControllerGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new CSharpControllerGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;
            }
            generator.Generate();
        }
示例#2
0
 public TrendsPostGenerator(IModelGenerator <TrendsPostModel> modelGenerator,
                            IPostTextGenerator <TrendsPostModel> postGenerator,
                            ILogger <TrendsPostGenerator> logger)
 {
     ModelGenerator = modelGenerator;
     PostGenerator  = postGenerator;
     Logger         = logger;
 }
示例#3
0
 public AdmissionsByAgePostGenerator(
     IModelGenerator <AdmissionsByAgePostModel> modelGenerator,
     IPostTextGenerator <AdmissionsByAgePostModel> postGenerator,
     ILogger <AdmissionsByAgePostGenerator> logger)
 {
     ModelGenerator = modelGenerator;
     PostGenerator  = postGenerator;
     Logger         = logger;
 }
示例#4
0
        public ReviewTest()
        {
            var mapperConfig = new MapperConfiguration(cfg => cfg.AddMaps(ProfileRegistration.GetProfiles()));

            _mapper          = mapperConfig.CreateMapper();
            _reviewGenerator = new ReviewGenerator(new GameGenerator());
            _fakeRepository  = new Mock <IReviewRepository>();
            _fakeUnitOfWork  = new Mock <IUnitOfWork>();
            _fakeUnitOfWork.Setup(m => m.ReviewRepository).Returns(_fakeRepository.Object);
            _controller = new ReviewController(_fakeUnitOfWork.Object, _mapper);
        }
示例#5
0
        public GameTest()
        {
            var mapperConfig = new MapperConfiguration(cfg => cfg.AddMaps(ProfileRegistration.GetProfiles()));

            _mapper         = mapperConfig.CreateMapper();
            _gameGenerator  = new GameGenerator();
            _mockRepository = new Mock <IGameRepository>();
            _mockUnitOfWork = new Mock <IUnitOfWork>();
            _mockUnitOfWork.Setup(m => m.GameRepository).Returns(_mockRepository.Object);
            _controller = new GameController(_mockUnitOfWork.Object, _mapper);
        }
示例#6
0
        public ReviewGenerator(IModelGenerator <Game> gameGenerator)
        {
            _gameGenerator = gameGenerator ?? throw new ArgumentNullException(nameof(gameGenerator));
            _random        = new Random();

            _faker = new Faker <Review>("pt_BR")
                     .RuleFor(r => r.Id, f => f.Random.Guid().ToString())
                     .RuleFor(r => r.AuthorName, f => f.Person.FullName)
                     .RuleFor(r => r.Subject, f => _gameGenerator.Get())
                     .RuleFor(r => r.Score, f => f.Random.Double(0, 10))
                     .RuleFor(r => r.ReviewText, (f, u) => f.Rant.Review(u.Subject.Name))
                     .RuleFor(r => r.SubjectId, (f, u) => u.Subject.Id);
        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            var interfaceType = typeof(IModelGenerator);

            var types = AppDomain.CurrentDomain.GetAssemblies()
                        .SelectMany(s => s.GetTypes()).Where(p => p.IsClass && interfaceType.IsAssignableFrom(p));

            foreach (var type in types)
            {
                IModelGenerator instance = (IModelGenerator)Activator.CreateInstance(type);
                instance?.OnModelCreating(modelBuilder);
            }

            base.OnModelCreating(modelBuilder);
        }
示例#8
0
 public ReviewRepositoryTests(ServiceProviderFixture fixture)
 {
     _reviewGenerator  = fixture.Provider.GetService <IModelGenerator <Review> >();
     _reviewRepository = fixture.Provider.GetService <IUnitOfWork>().ReviewRepository;
     _context          = fixture.Provider.GetService <PlaygroundContext>();
 }
 /// <summary>Creates a 1200x1000 window with the specified title.</summary>
 public DataOpenTK_3DVisualiser(IModelGenerator modelGenerator)
     : base(1200, 1000, GraphicsMode.Default, "Gravitatioanl Simulation")
 {
     VSync = VSyncMode.On;
     _modelGenerator = modelGenerator;
 }
        /// <summary>
        /// Generates entity.
        /// </summary>
        /// <param name="modelGenerator">The model generator.</param>
        /// <param name="id">The identifier for identity.</param>
        /// <param name="originalName">Original name of entity.</param>
        /// <param name="type">The type of entity.</param>
        /// <param name="parameters">Parameters for entity.</param>
        /// <param name="context">Reading context.</param>
        /// <returns>
        /// A new instance of entity.
        /// </returns>
        public Context.Models.Model GenerateModel(IModelGenerator modelGenerator, string id, string originalName, string type, ParameterCollection parameters, ICircuitContext context)
        {
            if (modelGenerator == null)
            {
                throw new ArgumentNullException(nameof(modelGenerator));
            }

            if (id == null)
            {
                throw new ArgumentNullException(nameof(id));
            }

            if (originalName == null)
            {
                throw new ArgumentNullException(nameof(originalName));
            }

            if (type == null)
            {
                throw new ArgumentNullException(nameof(type));
            }

            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            if (!(context.ModelsRegistry is IStochasticModelsRegistry stochasticModelRegistry))
            {
                context.Result.Validation.Add(
                    new ValidationEntry(
                        ValidationEntrySource.Reader,
                        ValidationEntryLevel.Warning,
                        "Model registry is not stochastic models registry",
                        parameters.LineInfo));

                return(null);
            }

            var filteredParameters = FilterDevAndLot(parameters);
            var model = modelGenerator.Generate(id, type, filteredParameters, context);

            if (model == null)
            {
                context.Result.Validation.Add(
                    new ValidationEntry(
                        ValidationEntrySource.Reader,
                        ValidationEntryLevel.Warning,
                        $"Couldn't generate model {id}",
                        parameters.LineInfo));

                return(null);
            }

            context.ModelsRegistry.RegisterModelInstance(model);

            RegisterDevAndLotModels(parameters, stochasticModelRegistry, model, (modelId) =>
            {
                var stochasticCandidate = modelGenerator.Generate(modelId, type, filteredParameters, context);
                context.ModelsRegistry.RegisterModelInstance(stochasticCandidate);
                return(stochasticCandidate);
            });
            return(model);
        }
示例#11
0
 public ReviewGeneratorTest(ServiceProviderFixture fixture)
 {
     _reviewGenerator = fixture.Provider.GetService <IModelGenerator <Review> >();
 }
示例#12
0
        public static void PerformModelGenerate(TargetLanguage targetLanguage, TargetDatabaseConnector targetDatabaseConnector, string connectionString, string directory, string @namespace)
        {
            IModelGenerator generator = default;

            switch (targetLanguage)
            {
            case TargetLanguage.CSharp:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new CSharpGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new CSharpGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new CSharpGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new CSharpGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new CSharpGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;

            case TargetLanguage.VisualBasic:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new VisualBasicGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new VisualBasicGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new VisualBasicGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new VisualBasicGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new VisualBasicGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;

            case TargetLanguage.TypeScript:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new TypeScriptGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new TypeScriptGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new TypeScriptGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new TypeScriptGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new TypeScriptGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;

            case TargetLanguage.PHP:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new PHPGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new PHPGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new PHPGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new PHPGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new PHPGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;

            case TargetLanguage.Python:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new PythonGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new PythonGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new PythonGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new PythonGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new PythonGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;

            case TargetLanguage.Python37:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new Python37Generator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new Python37Generator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new Python37Generator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new Python37Generator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new Python37Generator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;

            case TargetLanguage.Java:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new JavaGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new JavaGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new JavaGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new JavaGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new JavaGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;

            case TargetLanguage.CPP:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new CPPGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new CPPGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new CPPGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new CPPGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new CPPGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;

            case TargetLanguage.Golang:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new GolangGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new GolangGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new GolangGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new GolangGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new GolangGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;
            }
            generator.Generate();
        }
示例#13
0
 public UnitOfWork(IModelGenerator <Game> gameGenerator, IModelGenerator <Review> reviewGenerator)
 {
     _gameGenerator   = gameGenerator ?? throw new ArgumentNullException(nameof(gameGenerator));
     _reviewGenerator = reviewGenerator ?? throw new ArgumentNullException(nameof(reviewGenerator));
 }
 public void SetGenerator <TDatabase, TParameter>(Func <string, string> parserFunction = null)
     where TDatabase : DbConnection, new()
     where TParameter : DbParameter, new()
 {
     ModelGenerator = new TypeScriptGenerator <TDatabase, TParameter>(this.ConnectionString, this.ModelDirectory, "", parserFunction);
 }
示例#15
0
 public GameRepositoryTest(ServiceProviderFixture fixture)
 {
     _gameGenerator = fixture.Provider.GetService <IModelGenerator <Game> >();
     _gameRepo      = fixture.Provider.GetService <IUnitOfWork>().GameRepository;
 }
示例#16
0
 public ReviewRepositoryTest(ServiceProviderFixture fixture)
 {
     _reviewGenerator = fixture.Provider.GetService <IModelGenerator <Review> >();
     _reviewRepo      = fixture.Provider.GetService <IUnitOfWork>().ReviewRepository;
 }
示例#17
0
 public GameRepository(IModelGenerator <Game> gameGenerator)
 {
     _gameGenerator = gameGenerator ?? throw new ArgumentNullException(nameof(gameGenerator));
 }
示例#18
0
 public GameGeneratorTest(ServiceProviderFixture fixture)
 {
     _gameGenerator = fixture.Provider.GetService <IModelGenerator <Game> >();
 }
示例#19
0
 public GameRepositoryTests(ServiceProviderFixture fixture)
 {
     _gameGenerator  = fixture.Provider.GetService <IModelGenerator <Game> >();
     _gameRepository = fixture.Provider.GetService <IUnitOfWork>().GameRepository;
     _context        = fixture.Provider.GetService <PlaygroundContext>();
 }
 public ModelCommandRunner(IModelCommandParser modelCommandParser,
     IModelGenerator modelGenerator)
 {
     this.modelCommandParser = modelCommandParser;
     this.modelGenerator = modelGenerator;
 }
示例#21
0
 public ReviewRepository(IModelGenerator <Review> reviewGenerator)
 {
     _reviewGenerator = reviewGenerator ?? throw new ArgumentNullException(nameof(reviewGenerator));
 }