public static void SetIntervalUtc(IntervalTypes intervalType, DateTime interval) { try { Trace.Debug($"SetIntervalUtc(), intervalType:{intervalType}, interval:{interval.ToString("o")}"); var config = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location); if (config.AppSettings.Settings[intervalType.ToString()] == null) { config.AppSettings.Settings.Add(intervalType.ToString(), ""); } config.AppSettings.Settings[intervalType.ToString()].Value = interval.ToString("o"); config.Save(ConfigurationSaveMode.Modified); Trace.Info($"{intervalType} saved: {interval.ToString("o")}"); } catch (Exception ex) { Trace.Fatal(ex); } }
public static DateTime GetIntervalUtc(IntervalTypes intervalType) { try { Trace.Debug($"GetIntervalUtc(), intervalType:{intervalType}"); var config = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location); var valueAsString = config.AppSettings.Settings[intervalType.ToString()].Value; var valueAsDate = DateTime.Parse(valueAsString); Trace.Info($"{intervalType} loaded: {valueAsDate.ToString("o")}"); return(valueAsDate); } catch { // <return a default value if interval does not exist> var dt = DateTime.Today.ToUniversalTime().AddDays(-DefaultNumberOfDays); Trace.Warn($"{intervalType} not found, taking the default one: {dt.ToString("o")}"); return(dt); // <return a default value if interval does not exist> } }
internal TimeSpan GetAverageWaitTime(string workgroupName, IntervalTypes intervalType, bool waitForData) { using (Trace.Cic.scope()) { try { var key = new StatisticKey(AverageWaitTimeDefinition.Id, new ParameterValueKeyedCollection { new ParameterValue(new ParameterTypeId("ININ.People.WorkgroupStats:Workgroup"), workgroupName), new ParameterValue(new ParameterTypeId("ININ.Queue:Interval"), intervalType.ToString()) }); return(GetStatisticDuration(key, waitForData)); } catch (NullStatisticValueException ex) { Trace.Cic.warning(ex.Message); return(TimeSpan.MinValue); } catch (StatisticErrorException ex) { Trace.Cic.exception(ex); return(TimeSpan.MinValue); } catch (Exception ex) { Trace.Cic.exception(ex); return(TimeSpan.MinValue); } } }