Ejemplo n.º 1
0
            public void Can_Be_Constructed()
            {
                //Arrange

                //Act
                var connection = new BlobConnection(Mock.Of <IStorageConnectionManager <CloudBlobClient> >());

                //Assert
                Assert.That(connection, Is.Not.Null);
            }
Ejemplo n.º 2
0
            public void Transaction_Id_Cannot_Be_Empty()
            {
                //Arrange
                var connection = new BlobConnection(Mock.Of <IStorageConnectionManager <CloudBlobClient> >());

                //Act
                async Task <CloudBlobContainer> TestDelegate() => await connection.GetObjectAsync(Guid.Empty);

                //Assert
                Assert.That(TestDelegate,
                            Throws.ArgumentException.With.Message.EqualTo("Id cannot be Empty"));
            }
Ejemplo n.º 3
0
            public async Task Can_Get_Container()
            {
                //Arrange
                _mockManager.Setup(x => x.GetStorageClient()).Returns(Task.FromResult(_mockClient.Object));
                _mockClient.Setup(x => x.GetContainerReference(It.IsAny <string>())).Returns(_mockContainer.Object);
                _mockContainer.Setup(x => x.CreateIfNotExistsAsync()).Returns(Task.FromResult(true));
                var connection = new BlobConnection(_mockManager.Object);

                //Act
                var result = await connection.GetObjectAsync(Guid.NewGuid());

                //Assert
                Assert.That(result, Is.EqualTo(_mockContainer.Object));
            }
Ejemplo n.º 4
0
            public void Can_Remove_Container()
            {
                //Arrange
                _mockManager.Setup(x => x.GetStorageClient()).Returns(Task.FromResult(_mockClient.Object));
                _mockClient.Setup(x => x.GetContainerReference(It.IsAny <string>())).Returns(_mockContainer.Object);
                _mockContainer.Setup(x => x.DeleteIfExistsAsync()).Returns(Task.FromResult(true));
                var connection = new BlobConnection(_mockManager.Object);

                //Act
                async Task TestDelegate() => await connection.RemoveObjectAsync(Guid.NewGuid());

                //Assert
                Assert.That(TestDelegate, Throws.Nothing);
            }
Ejemplo n.º 5
0
            public void Exception_Thrown_In_Connection_Manager_Will_Bubble_Up()
            {
                //Arrange
                const string exceptionMessage = "Test Exception";

                _mockManager.Setup(x => x.GetStorageClient())
                .Throws(new Exception(exceptionMessage));
                var connection = new BlobConnection(_mockManager.Object);

                //Act
                async Task <CloudBlobContainer> TestDelegate() => await connection.GetObjectAsync(Guid.NewGuid());

                //Assert
                Assert.That(TestDelegate, Throws.Exception.With.Message.EqualTo(exceptionMessage));
            }
Ejemplo n.º 6
0
            public void Exception_Thrown_In_Cloud_Blob_Container_Will_Bubble_Up()
            {
                //Arrange
                const string exceptionMessage = "Test Exception";

                _mockManager.Setup(x => x.GetStorageClient()).Returns(Task.FromResult(_mockClient.Object));
                _mockClient.Setup(x => x.GetContainerReference(It.IsAny <string>())).Returns(_mockContainer.Object);
                _mockContainer.Setup(x => x.DeleteIfExistsAsync()).Throws(new Exception(exceptionMessage));
                var connection = new BlobConnection(_mockManager.Object);

                //Act
                async Task TestDelegate() => await connection.RemoveObjectAsync(Guid.NewGuid());

                //Assert
                Assert.That(TestDelegate, Throws.Exception.With.Message.EqualTo(exceptionMessage));
            }
Ejemplo n.º 7
0
        public ModelController(IConfiguration configuration)
        {
            _configuration = configuration;

            _context = new MLContext();
            var modelPath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "wine.zip");

            if (!System.IO.File.Exists(modelPath))
            {
                var blob = BlobConnection.GetBlobReference(_configuration["blobConnectionString"], "models", "wine.zip");

                blob.DownloadToFileAsync(modelPath, System.IO.FileMode.CreateNew).RunSynchronously();
            }

            using (var stream = System.IO.File.OpenRead(modelPath))
            {
                _model = _context.Model.Load(stream);
            }
        }
Ejemplo n.º 8
0
        static async Task Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("config.json");

            var configuration = builder.Build();

            _sqlConnectionString = configuration["connectionString"];

            var fileData = ReadFromFile("./winequality.csv");

            AddDataToDatabase(fileData);

            var dbData = ReadFromDatabase();

            var context = new MLContext();

            var mlData = context.Data.LoadFromEnumerable(dbData);

            var trainTestData = context.Regression.TrainTestSplit(mlData, testFraction: 0.2);

            var dataPreview = trainTestData.TrainSet.Preview();

            var pipeline = context.Transforms.Categorical.OneHotEncoding("TypeOneHot", "Type")
                           .Append(context.Transforms.Concatenate("Features", "FixedAcidity", "VolatileAcidity", "CitricAcid",
                                                                  "ResidualSugar", "Chlorides", "FreeSulfurDioxide", "TotalSulfurDioxide", "Density", "Ph", "Sulphates",
                                                                  "Alcohol"))
                           .Append(context.Transforms.CopyColumns(("Label", "Quality")))
                           .Append(context.Regression.Trainers.FastTree());

            var model = pipeline.Fit(trainTestData.TrainSet);

            var blob = BlobConnection.GetBlobReference(configuration["blobConnectionString"], "models", fileName);

            using (var stream = File.Create(fileName))
            {
                context.Model.Save(model, stream);
            }

            await blob.UploadFromFileAsync(fileName);
        }