private void LoadItems([NotNull] XDocument document) { Debug.ArgumentNotNull(document, nameof(document)); var root = document.Root; if (root == null) { return; } var items = new List <ArchiveEntry>(); foreach (var element in root.Elements()) { var entry = new ArchiveEntry { Id = new Guid(element.GetAttributeValue("id")), Name = element.GetAttributeValue("name"), Archived = DateTimeExtensions.FromIso(element.GetAttributeValue("datetime")), ArchivedBy = element.GetAttributeValue("archivedby"), Path = element.GetAttributeValue("path") }; items.Add(entry); } LoadFilters(items); _entries.AddRange(items); LoadItems(); }
private bool GetVisible([NotNull] ArchiveEntry item, [NotNull] List <string> archivedBy, [NotNull] string path, int year, int month, int day) { Debug.ArgumentNotNull(item, nameof(item)); Debug.ArgumentNotNull(archivedBy, nameof(archivedBy)); Debug.ArgumentNotNull(path, nameof(path)); if (archivedBy.Count > 0) { if (!Contains(archivedBy, item.ArchivedBy)) { return(false); } } if (!string.IsNullOrEmpty(path)) { if (!item.Path.StartsWith(path, StringComparison.InvariantCultureIgnoreCase)) { return(false); } } if (year != 0) { if (item.Archived.Year != year) { return(false); } } if (month != 0) { if (item.Archived.Month != month) { return(false); } } if (day != 0) { if (item.Archived.Day != day) { return(false); } } return(true); }
private void LoadFilters([NotNull] ArchiveEntry item) { Debug.ArgumentNotNull(item, nameof(item)); LoadFiltersAll(); LoadFilterValue(ArchivedBy.Items, new Tuple <string, string>(item.ArchivedBy, item.ArchivedBy)); var path = string.Empty; var parts = new List <Tuple <string, string> >(); foreach (var s in item.Path.Split('/', StringSplitOptions.RemoveEmptyEntries)) { if (string.IsNullOrEmpty(s)) { continue; } path += @"/" + s; parts.Add(new Tuple <string, string>(path, s)); } LoadFilterTree(Paths.Items, parts, 0); if (item.Archived == DateTime.MinValue) { return; } var year = item.Archived.Year.ToString(); var month = item.Archived.Month.ToString(); var day = item.Archived.Day.ToString(); var tuples = new List <Tuple <string, string> > { new Tuple <string, string>(year, year), new Tuple <string, string>(year + @"/" + month, item.Archived.ToString(@"MMMM")), new Tuple <string, string>(year + @"/" + month + @"/" + day, day) }; LoadFilterTree(Archived.Items, tuples, 0); }