public ScreenSettings Read(String file, ScreenSettingsEntryType entry) { ScreenSettings result = null; if (ReadingQueries.ContainsKey(entry)) { try { XDocument configFile = XDocument.Load(file); XElement rootElement = configFile.XPathSelectElement("WargameModInstallerConfig/Settings/UI/Screens"); if (rootElement != null) { result = ReadingQueries[entry](rootElement); } } catch (XmlException ex) { WargameModInstaller.Common.Logging.LoggerFactory.Create(this.GetType()).Error(ex); throw; } } return(result); }
private ScreenSettings ReadScreenSettings(XElement source, ScreenSettingsEntryType entryType) { ScreenSettings result = null; var screenElemet = source.Element(entryType.Name); if (screenElemet != null) { result = new ScreenSettings(entryType); XElement headerElement = screenElemet.Element("Header"); if (headerElement != null) { result.Header = headerElement.Attribute("Text").ValueNullSafe() ?? headerElement.ValueNullSafe(); } XElement descriptionElement = screenElemet.Element("Description"); if (descriptionElement != null) { result.Description = descriptionElement.Attribute("Text").ValueNullSafe() ?? descriptionElement.ValueNullSafe(); } XElement imagePathElement = screenElemet.Element("BackgroundImage"); if (imagePathElement != null) { String imagePath = imagePathElement.Attribute("Path").ValueNullSafe() ?? imagePathElement.ValueNullSafe(); result.Background = PathUtilities.IsValidRelativePath(imagePath) ? new ResourcePath(imagePath) : null; } } return(result); }
/// <summary> /// /// </summary> /// <param name="entryType"></param> /// <returns></returns> public ScreenSettings GetScreenSettings(ScreenSettingsEntryType entryType) { ScreenSettings settingsValue = screenSettingsReader.Read(configFilePath, entryType); if (settingsValue == null) { //get a default state settings if the reader is unable to read one from the config file settingsValue = settingsFactory.CreateSettings <ScreenSettings>(entryType); } else { //If any of the properties doesn't have value, assign a default one if (settingsValue.Header == null) { settingsValue.Header = settingsFactory.CreateSettings <ScreenSettings>(entryType).Header; } if (settingsValue.Description == null) { settingsValue.Description = settingsFactory.CreateSettings <ScreenSettings>(entryType).Description; } if (settingsValue.Background == null || settingsValue.Background.PathType == ResourcePathType.Unknown || !ResourceExist(settingsValue.Background)) { settingsValue.Background = settingsFactory.CreateSettings <ScreenSettings>(entryType).Background; } } if (ReplacePlaceholdersInDefaultScreenText) { ReplaceScreenSettingsTextPlaceholders(settingsValue); } return(settingsValue); }
private ScreenSettings ReadSuccessfulInstallScreenSettings(XElement source, ScreenSettingsEntryType entryType) { SuccessfulInstallScreenSettings result = null; return(result); }