void UpdateCursorFromItems <TList, TItem>(ICursor cursor, ParsedFile <TList> parsedFile)
     where TItem : BaseCatalogItem
     where TList : BaseCatalogList <TItem>
 {
     if (parsedFile.Value.Items.Any())
     {
         cursor.Write(parsedFile.Value.Items.Max(x => x.CommitTimestamp));
     }
 }
 static void FilterItems <TList, TItem>(ParsedFile <TList> parsedFile, ICursor cursor, DateTimeOffset max)
     where TItem : BaseCatalogItem
     where TList : BaseCatalogList <TItem>
 {
     parsedFile.Value.Items = parsedFile
                              .Value
                              .Items
                              .Where(x => x.CommitTimestamp > cursor.Value)
                              .Where(x => x.CommitTimestamp <= max)
                              .OrderBy(x => x.CommitTimestamp)
                              .ThenBy(x => x.Url)
                              .ToList();
 }