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