Example #1
0
        private static void Init()
        {
            //Configuration initialisation des différents objets
            var configurationBuilder = new ConfigurationBuilder()
                                       .AddJsonFile("appsettings.json", true)
                                       .AddJsonFile("appsettings.Development.json", true, false);

            var configuration = configurationBuilder.Build();

            //initialisation du système de log
            var loggerFactory = new LoggerFactory().AddConsole(configuration);

            //initialisation des files d'attente
            var settings = new AzureQueueSettings();

            configuration.GetSection("InputQueue").Bind(settings);

            _inputQueueService = new AzureQueueService(settings);

            _outputQueueSettings = new AzureQueueSettings();
            configuration.GetSection("OutputQueue").Bind(_outputQueueSettings);

            _outputQueueService = new AzureQueueService(_outputQueueSettings);

            //initialisation du repository
            _dataMapper = new DataMapper();

            var productRepositorySettings = new RepositorySettings();

            configuration.GetSection("Repositories:Product").Bind(productRepositorySettings);

            var modelRepositorySettings = new RepositorySettings();

            configuration.GetSection("Repositories:Model").Bind(modelRepositorySettings);

            var diagnosticSource = new MyDiagnosticSource();

            var productRepository = new RepositoryStoreFactory <ProductModel>(productRepositorySettings.Provider, new ConnectionOptions
            {
                Provider         = productRepositorySettings.ProviderType,
                ConnectionString = JsonConvert.SerializeObject(productRepositorySettings.ConnectionString)
            }, loggerFactory, diagnosticSource);

            var modelRepository = new RepositoryStoreFactory <ProductModel>(modelRepositorySettings.Provider, new ConnectionOptions
            {
                Provider         = productRepositorySettings.ProviderType,
                ConnectionString = JsonConvert.SerializeObject(modelRepositorySettings.ConnectionString)
            }, loggerFactory, diagnosticSource);

            _dataRepo = new DataRepository(productRepository, modelRepository, diagnosticSource, loggerFactory.CreateLogger <DataRepository>());

            //initialisation du partage Azure

            var azureBlobSettings = new AzureBlobSettings();

            configuration.Bind(azureBlobSettings);

            new AzureStorageAccess(azureBlobSettings);
        }
Example #2
0
 public void StartTestVoid()
 {
     _repository = new RepositoryStoreFactory <TestDocument>("ECommerce.Data.FileStore",
                                                             new ConnectionOptions {
         Provider = "FileDb", ConnectionString = new FileInfo($"data\\data_{Guid.NewGuid()}.json").FullName
     },
                                                             _loggerFactory, new MyDiagnosticSource());
 }
Example #3
0
 public DataRepository(RepositoryStoreFactory <ProductModel> productRepository,
                       RepositoryStoreFactory <ProductModel> modelRepository, DiagnosticSource diagnosticSource,
                       ILogger <DataRepository> logger)
 {
     ProductRepository = productRepository;
     ModelRepository   = modelRepository;
     _diagnosticSource = diagnosticSource;
     _logger           = logger;
 }
Example #4
0
        public void StartTestVoid()
        {
            var config = new NoSqlConnectionString
            {
                Url = "localhost"
            };

            _repository = new RepositoryStoreFactory <TestDocument>("ECommerce.Data.NoSql",
                                                                    new ConnectionOptions {
                Provider = "ECommerce.Data.RedisProvider", ConnectionString = JsonConvert.SerializeObject(config)
            },
                                                                    _loggerFactory, new MyDiagnosticSource());
        }
        public void StartTestVoid()
        {
            var sqlConnection = new SqlConnectionOptions {
                ConnectionString = @"Server=(localdb)\mssqllocaldb;Database=EFProviders.InMemory;Trusted_Connection=True;ConnectRetryCount=3"
            };

            _repository = new RepositoryStoreFactory <TestDocument>("ECommerce.Data.EntityFramework",
                                                                    new ConnectionOptions
            {
                Provider         = "ECommerce.Data.EntityFramework.InMemory",
                ConnectionString = JsonConvert.SerializeObject(sqlConnection)
            },
                                                                    _loggerFactory, new MyDiagnosticSource());
        }
        public void StartTestVoid()
        {
            var sqlConnection = new SqlConnectionOptions {
                ConnectionString = $"Data Source={new FileInfo("data\\data.db").FullName}"
            };

            _repository = new RepositoryStoreFactory <TestDocument>("ECommerce.Data.EntityFramework",
                                                                    new ConnectionOptions
            {
                Provider         = "ECommerce.Data.EntityFramework.SqlLite",
                ConnectionString = JsonConvert.SerializeObject(sqlConnection)
            },
                                                                    _loggerFactory, new MyDiagnosticSource());
        }
Example #7
0
        public void StartTestVoid()
        {
            var config = new NoSqlConnectionString
            {
                Url      = "http://localhost:8080",
                Database = "",
                IsTest   = true
            };

            _repository = new RepositoryStoreFactory <TestDocument>("ECommerce.Data.NoSql",
                                                                    new ConnectionOptions {
                Provider = "ECommerce.Data.RavenDbProvider", ConnectionString = JsonConvert.SerializeObject(config)
            },
                                                                    _loggerFactory, new MyDiagnosticSource());
        }
Example #8
0
        public void TestInsert(RepositoryStoreFactory <TestDocument> repository, string applicationName, string key, string value)
        {
            var result = repository.AddAsync(new TestDocument
            {
                ApplicationName = applicationName,
                Key             = key,
                Value           = value
            }).Result;

            Assert.IsTrue(result.IsSuccessful);

            var searchResult = repository.SearchASingleItemAsync(x => x.Key == key).Result;

            Assert.IsNotNull(searchResult);
            Assert.IsTrue(searchResult.IsSuccessful);
        }
        public void StartTestVoid()
        {
            var config = new NoSqlConnectionString
            {
                UserId     = "chercherunproduit-mongodb",
                Password   = "******",
                Url        = "chercherunproduit-mongodb.documents.azure.com:10255/?ssl=true&replicaSet=globaldb",
                Database   = "Configuration",
                Collection = $"ConfigurationItem_{Guid.NewGuid()}"
            };

            _repository = new RepositoryStoreFactory <TestDocument>("ECommerce.Data.NoSql",
                                                                    new ConnectionOptions {
                Provider = "ECommerce.Data.MongoDbProvider", ConnectionString = JsonConvert.SerializeObject(config)
            },
                                                                    _loggerFactory, new MyDiagnosticSource());
        }
Example #10
0
        public void TestDelete(RepositoryStoreFactory <TestDocument> repository, string applicationName, string key)
        {
            var searchResult = repository.SearchASingleItemAsync(x => x.Key == key).Result;

            Assert.IsNotNull(searchResult);
            Assert.IsTrue(searchResult.IsSuccessful);

            var item = searchResult.Result;

            Assert.IsNotNull(item);

            item.Value = "mod";

            var removeResult = repository.RemoveAsync(item).Result;

            Assert.IsNotNull(removeResult);
            Assert.IsTrue(removeResult.IsSuccessful);
        }
Example #11
0
        public void TestUpdate(RepositoryStoreFactory <TestDocument> repository, string applicationName, string key, string value)
        {
            var searchResult = repository.SearchASingleItemAsync(x => x.Key == key).Result;

            Assert.IsNotNull(searchResult);
            Assert.IsTrue(searchResult.IsSuccessful);

            var item = searchResult.Result;

            Assert.IsNotNull(item);

            item.Value = "mod";

            var updateResult = repository.UpdateAsync(item).Result;

            Assert.IsNotNull(updateResult);
            Assert.IsTrue(updateResult.IsSuccessful);
            Assert.IsTrue(updateResult.Result.Value.Equals("mod"));
        }
Example #12
0
        public void StartTestVoid()
        {
            var config = new NoSqlConnectionString
            {
                Url = "https://rechercherunproduit-dev-sql.documents.azure.com:443/",
                AuthorizationKey =
                    "IWLYmQ6TcRhGDFVN6W2eQAYMJD8m0FFd0MKtV7wPiAQ8EDD8pnhs6b5hSvnXxbZHAhGQQWlvVCe1HqofPjnp7w==",
                Database   = "Configuration",
                Collection = $"ConfigurationItem_{Guid.NewGuid()}"
            };

            _repository = new RepositoryStoreFactory <TestDocument>(
                "ECommerce.Data.NoSql",
                new ConnectionOptions
            {
                Provider         = "ECommerce.Data.DocumentDbProvider",
                ConnectionString = JsonConvert.SerializeObject(config)
            },
                _loggerFactory, new MyDiagnosticSource());
        }
Example #13
0
        public void TestInsertDuplicate(RepositoryStoreFactory <TestDocument> repository, string applicationName, string key, string value)
        {
            Assert.ThrowsException <DuplicateNameException>(() =>
            {
                try
                {
                    repository.AddAsync(new TestDocument
                    {
                        ApplicationName = applicationName,
                        Key             = key,
                        Value           = value
                    }).Wait();
                }
                catch (AggregateException ex)
                {
                    if (ex is AggregateException aggregate)
                    {
                        aggregate.Handle((x) => throw x);
                    }

                    throw;
                }
            });
        }