public ActionResult Save(SiteMetaData siteMetadata) { _siteMetadata.FrontPageImage = siteMetadata.FrontPageImage; _metadataRepository.Save(_siteMetadata); return(RedirectToAction("Index", "Home")); }
public SiteMetaData EnrichSite(SiteConfiguration siteConfiguration, Guid siteGuid, List <PageMetaData> pages) { var siteInfo = new SiteMetaData(pages.ToArray()) { Id = siteGuid.ToString(), Title = _siteInfo.Title, Description = _siteInfo.Description, Language = _siteInfo.Lang, Url = _siteInfo.Url, Author = null, Data = new Dictionary <string, object>(), Tags = new SortedDictionary <string, PageMetaData[]>(), Collections = new SortedDictionary <string, PageMetaData[]>(), Types = new SortedDictionary <string, PageMetaData[]>(), Series = new SortedDictionary <string, PageMetaData[]>(), Years = new SortedDictionary <int, PageMetaData[]>() }; EnrichSiteWithData(siteInfo, siteConfiguration.DataDirectory); EnrichSiteWithCollections(siteInfo, siteGuid, pages); EnrichSiteWithTags(siteInfo, pages); EnrichSiteWithYears(siteInfo, pages); EnrichSiteWithTypes(siteInfo, pages); EnrichSiteWithSeries(siteInfo, pages); return(siteInfo); }
public void Save(SiteMetaData metaData) { string filePath = Path.Combine(_dataDirectory, Constants.MetaDataFileName); var serializer = new ObjectSerializer(filePath); serializer.Serialize <SiteMetaData>(metaData); }
public HomeController(IMetaDataRepository metadataRepostory, IArtRepository artRepository) { _metadataRepostory = metadataRepostory; _siteMetaData = _metadataRepostory.Read(); _artRepository = artRepository; _artCollection = _artRepository.Read(); }
public SiteMetaData GetSiteMetaData() { var siteMetaData = new SiteMetaData { AnalyticsIdentifier = this.configurationService.Analytics.Idenfitier, SiteVerification = this.configurationService.Analytics.Verification, }; return siteMetaData; }
public SiteMetaData GetSiteMetaData() { var siteMetaData = new SiteMetaData { AnalyticsIdentifier = this.configurationService.Analytics.Idenfitier, SiteVerification = this.configurationService.Analytics.Verification, }; return(siteMetaData); }
static void SaveSiteMetadata(XElement[] children) { var siteMetaData = new SiteMetaData { Title = children.First(e => e.Name == "title").Value, Description = children.First(e => e.Name == "description").Value }; using (TextWriter writer = File.CreateText(Path.Combine(UserSettings.PathToJekyllSite, "siteMetaData.yaml"))) { var a = new YamlDotNet.Serialization.Serializer(); a.Serialize(writer, siteMetaData); } }
private void EnrichSiteWithSeries(SiteMetaData site, List <PageMetaData> pages) { var series = pages .Where(x => x.Series != null) .Select(x => x.Series) .Distinct(); foreach (var serie in series) { var seriesFiles = pages.Where(x => x.Series != null && serie.Equals(x.Series)).OrderBy(x => x.Url).ToArray(); site.Series.Add(serie, seriesFiles); } }
private void EnrichSiteWithTypes(SiteMetaData site, List <PageMetaData> pages) { var blockedTypes = new ContentType[] { ContentType.Unknown, ContentType.Page }; var types = pages .Where(x => !blockedTypes.Contains(x.Type)) .Select(x => x.Type) .Distinct(); foreach (var type in types) { var typeFiles = pages.Where(x => /*x.Type != null && */ x.Type.Equals(type)).ToArray(); site.Types.Add(type.ToString(), typeFiles); } }
private void EnrichSiteWithYears(SiteMetaData site, List <PageMetaData> pages) { var years = pages .Where(x => x.ContainsKey("date")) .Where(x => ContentType.Article.Equals(x.Type)) // filter out anything that is not an article .Select(x => ((DateTimeOffset)x["date"]).Year) .Distinct(); foreach (var year in years) { var yearFiles = pages.Where(x => x.ContainsKey("date") && ((DateTimeOffset)x["date"]).Year.Equals(year)).ToArray(); site.Years.Add(year, yearFiles); } }
private void EnrichSiteWithTags(SiteMetaData site, List <PageMetaData> pages) { var tags = pages .Where(x => x.Tags != null) .Where(x => ContentType.Article.Equals(x.Type)) // filter out anything that is not an article .SelectMany(x => x.Tags) .Distinct(); foreach (var tag in tags) { var tagFiles = pages.Where(x => x.Tags != null && x.Tags.Contains(tag)).ToArray(); site.Tags.Add(tag, tagFiles); } }
public void Test_RenderData_AuthorEqualsNullIfPageAndSiteAreNull() { var file = new Kaylumah.Ssg.Manager.Site.Service.Files.Processor.File() { MetaData = new FileMetaData { } }; var PageMetaData = file.ToPage(); var SiteMetaData = new SiteMetaData(new PageMetaData[] { PageMetaData }); var sut = new RenderData { Site = SiteMetaData, Page = PageMetaData }; sut.Should().NotBeNull(); sut.Author.Should().BeNull(); }
public void Test_RenderData_TitleEqualsPageTitleIfExists() { var siteInfo = new SiteInfo(); var file = new Kaylumah.Ssg.Manager.Site.Service.Files.Processor.File() { MetaData = new FileMetaData { { "title", "1" } } }; var PageMetaData = file.ToPage(); var SiteMetaData = new SiteMetaData(new PageMetaData[] { PageMetaData }); var sut = new RenderData { Site = SiteMetaData, Page = PageMetaData }; sut.Should().NotBeNull(); sut.Title.Should().Be("1"); }
private void EnrichSiteWithData(SiteMetaData site, string dataDirectory) { var extensions = _siteInfo.SupportedDataFileExtensions.ToArray(); var dataFiles = _fileSystem.GetFiles(dataDirectory) .Where(file => extensions.Contains(Path.GetExtension(file.Name))) .ToList(); var data = new Dictionary <string, object>(); foreach (var file in dataFiles) { var stream = file.CreateReadStream(); using var reader = new StreamReader(stream); var raw = reader.ReadToEnd(); var result = _yamlParser.Parse <object>(raw); data[Path.GetFileNameWithoutExtension(file.Name)] = result; } site.Data = data; }
public void Test_RenderData_ContentEqualsEmptyStringWhenPageContentIsNull() { var siteInfo = new SiteInfo(); var file = new Kaylumah.Ssg.Manager.Site.Service.Files.Processor.File() { MetaData = new FileMetaData { }, Content = null }; var PageMetaData = file.ToPage(); var SiteMetaData = new SiteMetaData(new PageMetaData[] { PageMetaData }); var sut = new RenderData { Site = SiteMetaData, Page = PageMetaData }; sut.Should().NotBeNull(); sut.Content.Should().Be(string.Empty); }
public void Test_RenderData_LanguageEqualsSiteTitleIfExists() { var file = new Kaylumah.Ssg.Manager.Site.Service.Files.Processor.File() { MetaData = new FileMetaData { } }; var PageMetaData = file.ToPage(); var SiteMetaData = new SiteMetaData(new PageMetaData[] { PageMetaData }) { Language = "2" }; var sut = new RenderData { Site = SiteMetaData, Page = PageMetaData }; sut.Should().NotBeNull(); sut.Language.Should().Be("2"); }
private void EnrichSiteWithCollections(SiteMetaData site, Guid siteGuid, List <PageMetaData> files) { var collections = files .Where(x => x.Collection != null) .Select(x => x.Collection) .Distinct() .ToList(); for (var i = collections.Count - 1; i > 0; i--) { var collection = collections[i]; if (_siteInfo.Collections.Contains(collection)) { var collectionSettings = _siteInfo.Collections[collection]; if (!string.IsNullOrEmpty(collectionSettings.TreatAs)) { if (_siteInfo.Collections.Contains(collectionSettings.TreatAs)) { // todo log var collectionFiles = files .Where(x => x.Collection != null && x.Collection.Equals(collection)); foreach (var file in collectionFiles) { file.Collection = collectionSettings.TreatAs; } collections.RemoveAt(i); } } } } foreach (var collection in collections) { site.Collections.Add(collection, files .Where(x => x.Collection != null && x.Collection.Equals(collection)) .ToArray() ); } }
public IndexController(IMetaDataRepository metadataRepository) { _metadataRepository = metadataRepository; _siteMetadata = _metadataRepository.Read(); }