private ConnectKinesisEventRecord ConvertRecordData()

in functions/source/real-time-adherence/AspectKinesisLamda/ProcessKinesisEvents.cs [282:310]


        private ConnectKinesisEventRecord ConvertRecordData(string json, EventRecordData eventRecord)
        {
            _logger.Trace("Beginning ConvertRecordData");

            // if this record doesn't include an agent ARN, assume it doesn't match the
            // required format. Discard it.
            if (String.IsNullOrEmpty(eventRecord?.AgentARN))
            {
                _logger.Info("recordData does not include AgentARN. Discarding recordData.");
                return null;
            }
            
            ConnectKinesisEventRecord streamRecord = new ConnectKinesisEventRecord()
            {
                AgentARN = eventRecord.AgentARN,
                AgentUsername = eventRecord.CurrentAgentSnapshot?.Configuration?.Username,
                LastEventType = eventRecord.EventType,
                LastEventTimeStamp = eventRecord.EventTimestamp, 
                LastStateChangeTimeStamp = eventRecord.CurrentAgentSnapshot?.AgentStatus.StartTimestamp,
                CurrentState = eventRecord.CurrentAgentSnapshot?.AgentStatus?.Name,
                RawAgentEventJSon = json
            };

            _logger.Debug($"Event Type: {eventRecord.EventType} Agent Username: {streamRecord.AgentUsername} Current State: {streamRecord.CurrentState} Event Time: {streamRecord.LastEventTimeStamp} State Change Time: {streamRecord.LastStateChangeTimeStamp}");

            _logger.Trace("Ending ConvertRecordData");

            return streamRecord;
        }