Beispiel #1
0
        private static async Task InitializeAsync(string settingsFile = null)
        {
            using (Stream settingsStream = settingsFile == null
                ? Assembly.GetExecutingAssembly().GetManifestResourceStream("TestCLI.settings.json")
                : new FileStream(settingsFile, FileMode.Open, FileAccess.Read))
                using (var settingsReader = new StreamReader(settingsStream))
                    using (var textReader = new JsonTextReader(settingsReader))
                    {
                        dynamic settings = new JsonSerializer().Deserialize(textReader);

                        FaceServiceHelper.ApiKey    = settings.CognitiveServicesKeys.Face;
                        EmotionServiceHelper.ApiKey = settings.CognitiveServicesKeys.Emotion;
                        VisionServiceHelper.ApiKey  = settings.CognitiveServicesKeys.Vision;

                        BlobStorageHelper.ConnectionString = settings.AzureStorage.ConnectionString;
                        BlobStorageHelper.ContainerName    = settings.AzureStorage.BlobContainer;
                        blobStorage = await BlobStorageHelper.BuildAsync();

                        DocumentDBHelper.AccessKey      = settings.DocumentDB.Key;
                        DocumentDBHelper.EndpointUri    = settings.DocumentDB.EndpointURI;
                        DocumentDBHelper.DatabaseName   = settings.DocumentDB.DatabaseName;
                        DocumentDBHelper.CollectionName = settings.DocumentDB.CollectionName;
                        documentDb = await DocumentDBHelper.BuildAsync();
                    }
        }
Beispiel #2
0
        private static async Task InitializeAsync(string settingsFile = null)
        {
            using (Stream settingsStream = settingsFile == null
                ? Assembly.GetExecutingAssembly().GetManifestResourceStream("TestCLI.settings.json")
                : new FileStream(settingsFile, FileMode.Open, FileAccess.Read))
                using (var settingsReader = new StreamReader(settingsStream))
                    using (var textReader = new JsonTextReader(settingsReader))
                    {
                        dynamic settings = new JsonSerializer().Deserialize(textReader);

                        VisionServiceHelper.Url    = settings.CognitiveServicesKeys.Url;
                        VisionServiceHelper.ApiKey = settings.CognitiveServicesKeys.Key;

                        BlobStorageHelper.ConnectionString = settings.AzureStorage.ConnectionString;
                        BlobStorageHelper.ContainerName    = settings.AzureStorage.BlobContainer;
                        blobStorage = await BlobStorageHelper.BuildAsync();


                        CosmosDBHelper <ImageMetadata> .AccessKey      = settings.CosmosDB.Key;
                        CosmosDBHelper <ImageMetadata> .EndpointUri    = settings.CosmosDB.EndpointURI;
                        CosmosDBHelper <ImageMetadata> .DatabaseName   = settings.CosmosDB.DatabaseName;
                        CosmosDBHelper <ImageMetadata> .CollectionName = settings.CosmosDB.CollectionName;
                        cosmosDb = CosmosDBHelper <ImageMetadata> .GetInstance;
                    }
        }
        private async Task <bool> InitializeServices()
        {
            if (blobStorage == null || cosmosDb == null)
            {
                BlobStorageHelper.ContainerName    = ConfigurationManager.AppSettings["ContainerName"];
                BlobStorageHelper.ConnectionString = ConfigurationManager.AppSettings["StorageConnectionString"];
                blobStorage = await BlobStorageHelper.BuildAsync();

                CosmosDBHelper.AccessKey      = ConfigurationManager.AppSettings["CosmosDBKey"];
                CosmosDBHelper.EndpointUri    = ConfigurationManager.AppSettings["CosmosDBEndpointURI"];
                CosmosDBHelper.DatabaseName   = ConfigurationManager.AppSettings["DatabaseName"];
                CosmosDBHelper.CollectionName = ConfigurationManager.AppSettings["CollectionName"];
                cosmosDb = await CosmosDBHelper.BuildAsync();
            }
            return(true);
        }
Beispiel #4
0
        private async Task <ImageMetadata> SaveData(AnalysisResultViewModel data)
        {
            var fileName = Path.GetFileName(data.ImageLocalPath);
            Func <Task <Stream> > imageCB;

            try
            {
                if (blobStorage == null || cosmosDb == null)
                {
                    BlobStorageHelper.ContainerName    = ConfigurationManager.AppSettings["ContainerName"];
                    BlobStorageHelper.ConnectionString = ConfigurationManager.AppSettings["StorageConnectionString"];
                    blobStorage = await BlobStorageHelper.BuildAsync();

                    CosmosDBHelper.AccessKey      = ConfigurationManager.AppSettings["CosmosDBKey"];
                    CosmosDBHelper.EndpointUri    = ConfigurationManager.AppSettings["CosmosDBEndpointURI"];
                    CosmosDBHelper.DatabaseName   = ConfigurationManager.AppSettings["DatabaseName"];
                    CosmosDBHelper.CollectionName = ConfigurationManager.AppSettings["CollectionName"];
                    cosmosDb = await CosmosDBHelper.BuildAsync();
                }
                var existing = await cosmosDb.FindDocumentByIdAsync <ImageMetadata>(fileName);

                var resized = ImageResizer.ResizeIfRequired(Server.MapPath(data.ImageLocalPath), 750);
                imageCB = async() => System.IO.File.OpenRead(resized.Item2);
                var imageBlob = await blobStorage.UploadImageAsync(imageCB, fileName);

                var metadata = new ImageMetadata(data.ImageLocalPath);
                metadata.AddInsights(data.Insights);
                metadata.BlobUri  = imageBlob.Uri;
                metadata.TaggedBy = User.Identity.Name;
                if (existing == null)
                {
                    metadata = (await cosmosDb.CreateDocumentIfNotExistsAsync(metadata, metadata.Id)).Item2;
                }
                else
                {
                    metadata = await cosmosDb.UpdateDocumentAsync(metadata, metadata.Id);
                }

                return(metadata);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }