public Task ProcessDataAsync(string sourceData, ILogger logger)
        {
            this._logger = logger;

            logger.LogInformation($"MessageController::ProcessDataAsync [Deserializing messages] : {DateTime.Now}");

            try
            {
                var attendanceRecFromQueue = MessageConverter.GetMessageType <AttendanceRecord>(sourceData);

                if (attendanceRecFromQueue.MessageType == TextMessageType)
                {
                    logger.LogInformation($"Test data detected : { attendanceRecFromQueue.Id }");
                    return(Task.CompletedTask);
                }
                else if (attendanceRecFromQueue.MessageType == CoreMessageType.AttendanceMessage)
                {
                    _notificationTrigger.ExecuteDataFiltering(attendanceRecFromQueue, logger);

                    var result = this._dataStoreProcesor.SaveAttendanceRecordAsync(attendanceRecFromQueue);
                    logger.LogInformation($" ********** Saved attendance record to database ********* : { attendanceRecFromQueue.Id } and record count  {result.Result}");
                }
                else if (attendanceRecFromQueue.MessageType == CoreMessageType.HeartBeatMessage)
                {
                    var heartbeat = MessageConverter.GetMessageType <HeartbeatMessage>(sourceData);

                    var result = this._dataStoreProcesor.SaveHeartBeatRecordAsync(heartbeat);
                    logger.LogInformation($" ********** Saved HeartBeat record to database ********* : { attendanceRecFromQueue.Id } and record count  {result.Result}");
                }
            }
            catch (Exception ex)
            {
                logger.LogError($"Error in MessageConroller : {ex.Message}");
                logger.LogError($"StackTrace: {ex.StackTrace}");
                throw;
            }
            return(Task.CompletedTask);
        }