/// <summary> /// Occurs after loading a new world or current data (through LoadWorldForm) /// </summary> private void EventPublisherOnLoaded(object sender, System.EventArgs eventArgs) { Debug.Assert(World.Default.CurrentData.HasValue); CurrentDataDate.InvokeIfRequired(() => CurrentDataDate.Text = World.Default.CurrentData.Value.PrintWorldDate()); // Show what the current date can be compared with List <WorldDataDateInfo> dirs = GetPreviousDatums(); WorldDataDateInfo current = dirs.Single(x => x.IsCurrentData()); PreviousDateList.InvokeIfRequired(() => { PreviousDateList.Items.Clear(); foreach (WorldDataDateInfo info in dirs) { var listItem = new ListViewItem(info.Text); listItem.Tag = info; if (info.IsCurrentData()) { listItem.BackColor = Color.Green; listItem.Text += ControlsRes.MonitoringControl_DateCurrent; } else { listItem.ToolTipText = (current.Value - info.Value).GetTimeDifference(); } PreviousDateList.Items.Add(listItem); } }); }
/// <summary> /// Gets all folders with data from the world /// </summary> private List <WorldDataDateInfo> GetPreviousDatums() { return ((from dir in Directory.GetDirectories(World.Default.Structure.CurrentWorldDataDirectory) let info = WorldDataDateInfo.Create(dir) where info != null orderby dir descending select info).ToList()); }
public static WorldDataDateInfo Create(string directoryName) { var worldDataDirectory = new DirectoryInfo(directoryName); DateTime test; if (DateTime.TryParseExact(worldDataDirectory.Name, "yyyyMMddHH", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out test)) { var info = new WorldDataDateInfo(worldDataDirectory, test); return(info); } return(null); }
public static WorldDataDateInfo Create(string directoryName) { var worldDataDirectory = new DirectoryInfo(directoryName); DateTime test; if (DateTime.TryParseExact(worldDataDirectory.Name, "yyyyMMddHH", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out test)) { var info = new WorldDataDateInfo(worldDataDirectory, test); return info; } return null; }