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(); } }
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); }
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); } }