protected virtual PageReference GetDatePageRef(IHasDateContainer hasDateContainerPage, PageData dateContainerRoot, DateTime published, IContentRepository contentRepository) { foreach (var yearContainer in contentRepository.GetChildren<PageData>(dateContainerRoot.ContentLink)) { if (yearContainer.Name == published.Year.ToString()) { PageReference result; foreach (PageData monthContainer in contentRepository.GetChildren<PageData>(yearContainer.ContentLink)) { if (monthContainer.Name == published.Month.ToString()) { result = monthContainer.PageLink; return result; } } result = CreateDateContainer(hasDateContainerPage, yearContainer.PageLink, published.Month.ToString(), new DateTime(published.Year, published.Month, 1)); return result; } } PageReference parent = CreateDateContainer(hasDateContainerPage, dateContainerRoot.ContentLink, published.Year.ToString(), new DateTime(published.Year, 1, 1)); return CreateDateContainer(hasDateContainerPage, parent, published.Month.ToString(), new DateTime(published.Year, published.Month, 1)); }
protected virtual PageReference CreateDateContainer(IHasDateContainer hasDateContainerPage, ContentReference parent, string name, DateTime startPublish) { var dateContainer = hasDateContainerPage.ConstructDateContainer(parent, name, startPublish); return _contentRepository.Save(dateContainer, SaveAction.Publish, AccessLevel.Publish).ToPageReference(); }