Example #1
0
        public async Task SendMessagesToAzureServiceBus(AttendanceResponse attendanceRecResult)
        {
            var currentBatchId = Guid.NewGuid().ToString();

            foreach (var attendanceItem in attendanceRecResult.Data)
            {
                attendanceItem.MessageType = CoreMessageType.AttendanceMessage;
                attendanceItem.BatchId     = currentBatchId;
                attendanceItem.Birth ??= DateTime.MinValue;
                attendanceItem.TimeStamp ??= DateTime.MinValue;

                if (double.IsNaN(attendanceItem.BodyTemperature))
                {
                    attendanceItem.BodyTemperature = 0d;
                    this._logger.LogInformation($"Temperature is NaN setting it to : {attendanceItem.BodyTemperature}");
                }

                if (!string.IsNullOrWhiteSpace(attendanceItem.Img))
                {
                    // All these can be done async

                    var targetImagePath = $"{_blobConfiguration.ImageStorePath}{Path.DirectorySeparatorChar}{attendanceItem.Id}{DefaultImageJpg}";

                    // Save Images
                    ImageConverter.SaveByteArrayAsImage(targetImagePath, ImageConverter.ExractBase64(attendanceItem.Img));

                    // Push image to Azure //
                    await this._blobClientProvider.PushImageToStoreAsync(_blobConfiguration.ContainerName, targetImagePath);

                    attendanceItem.Img = $"{_blobConfiguration.StorageEndpoint}/{attendanceItem.Id}{DefaultImageJpg}";

                    this._logger.LogInformation($"Saving images: {attendanceItem.Id} to {targetImagePath} to cloud path : {_blobConfiguration.StorageEndpoint}/{_blobConfiguration.ContainerName} : {DateTime.Now}");

                    // Removeing image file /
                    File.Delete(targetImagePath);
                }

                var messgeInstance = MessageConverter.Serialize(attendanceItem);
                await _messageSender.SendMessagesAsync(messgeInstance);
            }

            this._logger.LogInformation($"{currentBatchId} : Batch sent {DateTime.Now}");
            //return Task.CompletedTask;
        }
Example #2
0
 private Attendance SetState(AttendanceResponse attende, Attendance currentMember)
 {
     if ((attende.Status != null
          &&
          attende.Status == "attended"))
     {
         currentMember.Attend();
     }
     else if ((attende.Status != null
               &&
               attende.Status == "absent"))
     {
         currentMember.NoAttend();
     }
     else
     {
         currentMember.SetDoNotKnow();
     }
     return(currentMember);
 }