/// <summary> /// Reads data from the backing XML file and creates a PageData object from the data. /// </summary> /// <remarks> /// The language selector is used to see if a specific language is preferred, if language does not /// exist or a specific language was not given master language branch is returned. /// </remarks> /// <param name="pageLink">The page link.</param> /// <param name="selector">The selector which states the preffered language</param> /// <returns>A fully initialized PageData object</returns> protected override PageData GetLocalPage(PageReference pageLink, ILanguageSelector languageSelector) { List <string> pageLanguages = new List <string>(); PageData pageData = new PageData(); Dictionary <string, string> properties = new ExcelParser(_excelFilePath, _idColumn, _pageNameColumn, _sheetName).GetPageProperties(pageLink.ID); base.InitializePageData(pageData, properties[_pageNameColumn], _pageTypeName, GetGuidFromID(pageLink.ID), pageLink.CreateWritableClone(), EntryPoint, pageLanguages); foreach (KeyValuePair <string, string> keyValuePair in properties) { if (keyValuePair.Key != _idColumn && keyValuePair.Key != _pageNameColumn) { pageData.SetValue(keyValuePair.Key, keyValuePair.Value); } } SetPageStatus(pageData, VersionStatus.Published); SetDynamicProperties(pageData); return(pageData); }