public async Task <IActionResult> AddWaterMark(PictureWaterMarkQueque pictureWaterMarkQueque) { if (pictureWaterMarkQueque.Pictures == null) { return(BadRequest()); } var jsonString = JsonConvert.SerializeObject(pictureWaterMarkQueque); var jsonStringBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(jsonString)); await _queue.SendMessageAsync(jsonStringBase64); return(Ok()); }
public async static void Run([QueueTrigger("watermarkqueue", Connection = "")] PictureWaterMarkQueque myQueueItem, ILogger log) { try { // AzureStorageConstant.AzureStorageConnectionString = "AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;DefaultEndpointsProtocol=http;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;"; IBlobStorage blobStorage = new BlobStorage(); INoSqlStorage <UserPicture> noSqlStorage = new TableStorage <UserPicture>(); foreach (var item in myQueueItem.Pictures) { using var stream = await blobStorage.DownloadAsync(item, EContainerName.pictures); using var memoryStream = AddWaterMark(myQueueItem.WatermarkText, stream); await blobStorage.UploadAsync(memoryStream, item, EContainerName.watermarkpictures); log.LogInformation($"{item} Pictures added for watermark."); } var userpicture = await noSqlStorage.Get(myQueueItem.UserId, myQueueItem.UserPartitionKey); if (userpicture.WatermarkRawPaths != null) { myQueueItem.Pictures.AddRange(userpicture.WatermarkPaths); } userpicture.WatermarkPaths = myQueueItem.Pictures; await noSqlStorage.Add(userpicture); HttpClient httpClient = new HttpClient(); var response = await httpClient.GetAsync("https://localhost:44392/api/Notifications/CompleteWatermarkProcess/" + myQueueItem.ConnectionId); log.LogInformation($"Client({myQueueItem.ConnectionId}) my process complate."); } catch (Exception e) { Console.WriteLine(e.Message); } }