/// <summary>
        /// Executes a "feed iteration" whereby data is retrieved via feed(s), feed result tokens are stored and persisted to file, feed results are processed (including writing data to output files and displaying summary data in the console window), and a delay of the configured duration is applied.  This method is called iteratively via the inherited <see cref="Worker.DoWorkAsync(bool)"/> method of the base <see cref="Worker"/> class.
        /// </summary>
        /// <returns></returns>
        public async override Task WorkActionAsync()
        {
            iterationNumber += 1;
            ConsoleUtility.LogSeparator2();
            ConsoleUtility.LogInfoMultiPart("Iteration:", iterationNumber.ToString(), Common.ConsoleColorForUnchangedData);

            // Execute the feed calls and get the results for processing.
            FeedResultData feedResultData = await feedProcessor.GetFeedDataAsync(feedParameters);

            // Write the feed result token (toVersion) values to file.
            using (StreamWriter faultDataTokenFileWriter = new(faultDataTokenFilePath))
            {
                faultDataTokenFileWriter.Write(feedParameters.LastFaultDataToken);
            }
            using (StreamWriter gpsTokenFileWriter = new(gpsTokenFilePath))
            {
                gpsTokenFileWriter.Write(feedParameters.LastGpsDataToken);
            }
            using (StreamWriter statusDataTokenFileWriter = new(statusDataTokenFilePath))
            {
                statusDataTokenFileWriter.Write(feedParameters.LastStatusDataToken);
            }

            // Process the feed results.
            await ProcessFeedResultsAsync(feedResultData);

            // Wait for the configured duration before executing the process again.
            ConsoleUtility.LogListItem($"Waiting for {FeedIntervalSeconds} second(s) before starting next iteration...");
            await Task.Delay(TimeSpan.FromSeconds(FeedIntervalSeconds));
        }