diff options
Diffstat (limited to 'ThirdParty/CsvHelper-master/src/CsvHelper.Website/TocItem.cs')
-rw-r--r-- | ThirdParty/CsvHelper-master/src/CsvHelper.Website/TocItem.cs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper.Website/TocItem.cs b/ThirdParty/CsvHelper-master/src/CsvHelper.Website/TocItem.cs new file mode 100644 index 0000000..14df9e6 --- /dev/null +++ b/ThirdParty/CsvHelper-master/src/CsvHelper.Website/TocItem.cs @@ -0,0 +1,40 @@ +// Copyright 2009-2022 Josh Close +// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0. +// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0. +// https://github.com/JoshClose/CsvHelper +using Statiq.Common; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CsvHelper.Website +{ + public class TocItem + { + public string Title { get; set; } + + public string Link { get; set; } + + public List<TocItem> Children { get; set; } = new List<TocItem>(); + + public static TocItem Create(IMetadataDictionary data) + { + var tocItem = new TocItem() + { + Title = data.Get<string>("title"), + Link = data.Get<string>("link"), + }; + + if (data.ContainsKey("children")) + { + tocItem.Children = Create(data.GetList<IMetadataDictionary>("children")); + } + + return tocItem; + } + + public static List<TocItem> Create(IEnumerable<IMetadataDictionary> objects, TocItem parent = null) => objects?.Select(Create).ToList() ?? new List<TocItem>(); + } +} |