Пример #1
0
 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));
     }
 }
Пример #3
0
 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;
     }
 }
Пример #4
0
        /// <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);
            }
        }
Пример #6
0
        /// <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.");
                }
            }
        }