private static int ReadTelemetryDailyPushes(IConfigReader configReader) { var telemetryDailyPushesParam = configReader.GetUnencryptedConfigValue( ConfigReader.DiagnosticsSectionName, ConfigReader.TestOnlyTelemetryDailyPushesParamName, string.Empty); int telemetryDailyPushes; if (!int.TryParse(telemetryDailyPushesParam, out telemetryDailyPushes) || telemetryDailyPushes <= 0) { if (telemetryDailyPushesParam != string.Empty) { throw new ArgumentException( string.Format( "Invalid value of '{0}' for parameter '{1}', under '{2}' section. Expecting an integer value greater than zero.", telemetryDailyPushesParam, ConfigReader.DiagnosticsSectionName, ConfigReader.TestOnlyTelemetryDailyPushesParamName), ConfigReader.TestOnlyTelemetryDailyPushesParamName); } return(TelemetryScheduler.DefaultTelemetryDailyPushes); } return(telemetryDailyPushes); }
public void SetupFromSettingsFile(IConfigReader configReader, TimeSpan currentTimeOfTheDay) { // reading the number of daily pushes this.DailyPushes = TelemetryScheduler.ReadTelemetryDailyPushes(configReader); // parsing time from telemetryPushTimeParamValue var telemetryPushTimeParamValue = configReader.GetUnencryptedConfigValue( ConfigReader.DiagnosticsSectionName, ConfigReader.TestOnlyTelemetryPushTimeParamName, string.Empty); TimeSpan telemetryPushTime; if (!TimeSpan.TryParse(telemetryPushTimeParamValue, out telemetryPushTime)) { // the first batch of telemetry is sent after 30min that the cluster came up // the time of the push time will be than be 30min + 24h - (24/dailyPushes) TimeSpan totalTimeToPushTime = this.InitialSendDelay.Add(TimeSpan.FromHours(24.0 - this.SendInterval.TotalHours)); this.PushTime = (currentTimeOfTheDay.Add(totalTimeToPushTime) < TimeSpan.FromDays(1)) ? currentTimeOfTheDay.Add(totalTimeToPushTime) : currentTimeOfTheDay.Add(totalTimeToPushTime).Subtract(TimeSpan.FromDays(1)); this.IsTestOnlyTelemetryPushTimeSet = false; } else { this.PushTime = telemetryPushTime; this.IsTestOnlyTelemetryPushTimeSet = true; } this.UpdateScheduler(false, false, TimeSpan.FromHours(0.0), currentTimeOfTheDay); }