public static void Run([QueueTrigger("queue-for-useragents-on-new-image-metadata", Connection = "ConnectionStrings:HR_IMAGE_QUEUE_CX")] string myQueueItem, ILogger log) { try { if (!String.IsNullOrEmpty(myQueueItem)) { log.LogInformation($"C# Queue trigger function processed original value: {myQueueItem}"); //1- var base64EncodedBytes = Convert.FromBase64String(myQueueItem); String convertedString = Encoding.UTF8.GetString(base64EncodedBytes); //2- log.LogInformation($"C# Queue trigger function processed converted value: {convertedString}"); HRSubmitPictureListItemDto data = JsonConvert.DeserializeObject <HRSubmitPictureListItemDto>(convertedString); //3- String endpoint = Environment.GetEnvironmentVariable(ENV_NEW_IMAGE_SIGNALR_ENDPOINT_KEY); log.LogInformation("Endpoint : " + endpoint); HRUtils.NotifyPutBackend <HRSubmitPictureListItemDto>(data, endpoint, log); log.LogInformation("HRNewImageMetadataForUserAgents ended successfully."); } else { log.LogInformation("HRNewImageMetadataForUserAgents dummy on null entry."); } } catch (Exception ex) { log.LogError("HRNewImageMetadataForUserAgents exception : " + ex.Message); } }
public async Task <ActionResult> onNewImageSubmittedAsync([FromBody] HRSubmitPictureListItemDto data) { if (data == null || String.IsNullOrEmpty(data.VernacularName) || data.Id == null || data.Id == Guid.Empty) { return(new StatusCodeResult(StatusCodes.Status400BadRequest)); } try { using var newTask = _signalRService.OnNewImageSubmittedAsync(data); await newTask; if (newTask.IsCompletedSuccessfully) { return(Ok()); } else { return(new StatusCodeResult(StatusCodes.Status500InternalServerError)); } } catch { return(new StatusCodeResult(StatusCodes.Status500InternalServerError)); } }
public async Task OnNewImageSubmittedAsync(HRSubmitPictureListItemDto data) { if (data != null) { String jsonData = JsonSerializer.Serialize(new HRSubmitPictureListItemJsonDto(data)); using var notifyTask = _informHub.Clients.All.SendAsync( HRBirdPictureSubmissionHub.CLIENT_NEW_IMAGE_NOTIFICATION_KEY, jsonData); await notifyTask; } }
/// <summary> /// TODO /// </summary> /// <param name="data"></param> /// <returns></returns> public async Task OnThumbnailUpdatedAsync(HRSubmitPictureListItemDto data) { if (data != null) { String jsonData = JsonSerializer.Serialize(new HRSubmitPictureListItemJsonDto(data)); using var notifyTask = _informHub.Clients.All.SendAsync( HRBirdPictureSubmissionHub.CLIENT_UPDATE_THUMBNAIL_NOTIFICATION_KEY, jsonData); await notifyTask; } }
public static void Run([QueueTrigger("hr-main-new-image", Connection = "ConnectionStrings:HR_IMAGE_QUEUE_CX")] string myQueueItem, ILogger log) { //BONNE PRATIQUE TOUJLURS ENCADRE DE TRY CATH POUR S'Y RETROUVER DANS LES LOGS AZURE try { if (!String.IsNullOrEmpty(myQueueItem)) { //1 var base64EncodedBytes = Convert.FromBase64String(myQueueItem); String convertedString = Encoding.UTF8.GetString(base64EncodedBytes); HRSubmitPictureListItemDto data = JsonConvert.DeserializeObject <HRSubmitPictureListItemDto>(convertedString); String url = data?.FullImageUrl; if (!String.IsNullOrEmpty(url)) { log.LogInformation($"Data received : " + convertedString); //2- String blobPath = CreateAndUploadThumbnail(url, log); data.ThumbnailUrl = blobPath; //3- string backEndPoint = Environment.GetEnvironmentVariable(ENV_UPDATE_THUMBNAIL_ENDPOINT); HRUtils.NotifyPutBackend <HRSubmitPictureListItemDto>(data, backEndPoint, log); log.LogInformation($"Step 2: " + blobPath); //4- string userAgentsEndPoint = Environment.GetEnvironmentVariable(ENV_NEW_THUMBNAIL_SIGNALR_ENDPOINT_KEY); HRUtils.NotifyPutBackend <HRSubmitPictureListItemDto>(data, userAgentsEndPoint, log); log.LogInformation($"Step 3 : " + blobPath); } else { log.LogInformation($"No Fullimage URL supplied, can not process thumbnail."); } } else { log.LogInformation($"Empty entry"); } } catch (Exception ex) { log.LogInformation($"HR Error !!! : " + ex.Message); } }
/// <summary> /// Add message in main queue to start thumbnail processing /// </summary> /// <param name="message"></param> /// <returns></returns> public async Task OnNewImageAsync(HRSubmitPictureListItemDto message) { if (message == null) { return; } // Get the connection string from app settings // Instantiate a QueueClient which will be used to create and manipulate the queue QueueClientOptions queueClientOptions = new QueueClientOptions() { MessageEncoding = QueueMessageEncoding.Base64 }; QueueClient queueClient = new QueueClient( _config.Value?.HRSubmittedPictureCx, _config.Value?.HRMainNewImageQueueName, queueClientOptions); // Create the queue if it doesn't already exist queueClient.CreateIfNotExists(); if (queueClient.Exists()) { String messageToString = JsonConvert.SerializeObject(message); var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(messageToString); string message64 = System.Convert.ToBase64String(plainTextBytes); using var queueTask = queueClient.SendMessageAsync(message64); await queueTask; if (!queueTask.IsCompletedSuccessfully) { throw new Exception("queueClient.SendMessageAsync failure."); } } }