/// <summary>
 /// Calculates the actual heat rate.
 /// </summary>
 /// <param name="coalGenerator">The coal generator.</param>
 /// <returns></returns>
 private async Task <ActualHeatRates> CalculateActualHeatRate(Input.CoalGenerator coalGenerator)
 {
     if (coalGenerator == null)
     {
         return(null);
     }
     try
     {
         _iLog.Info("Actual heat rate calculation started.");
         return(new ActualHeatRates
         {
             Name = coalGenerator.Name,
             HeatRate = (coalGenerator.TotalHeatInput / coalGenerator.ActualNetGeneration)
         });
     }
     catch (Exception ex)
     {
         _iLog.Error($"Error while calculating coal actual heat rate. Error: {ex.Message}");
     }
     return(null);
 }
        /// <summary>
        /// Calculates the coal maximum emission.
        /// </summary>
        /// <param name="coalGenerator">The coal generator.</param>
        /// <returns></returns>
        private async Task <List <Day> > CalculateCoalMaxEmission(Input.CoalGenerator coalGenerator)
        {
            if (coalGenerator == null)
            {
                return(null);
            }
            List <Day> days = new List <Day>();

            try
            {
                _iLog.Info("Calculate coal max emission process started.");
                foreach (var day in coalGenerator.Generations?.Days)
                {
                    days.Add(await CalculateDailyMaxEmission(day, coalGenerator.Name, coalGenerator.EmissionsRating, "High"));
                }
            }
            catch (Exception ex)
            {
                _iLog.Error($"Error while calculating coal max emission. Error: {ex.Message}");
            }
            return(days);
        }