public void WriteTo(Properties.Settings settings, ConfigReader reader) { settings.MessagePanelHeight = MessagePanelHeight; settings.FirstRun = FirstRun.ToString(); settings.DownloadsFolder = DownloadsFolder; settings.HideToTray = HideToSystemTray; settings.ShowPopups = ShowPopups; settings.AudioAlerts = AudioAlerts; settings.DownloadsFolder = DownloadsFolder; reader.SetSetting(SettingKey.EnableStatusLogging, EnableStatusLogging); reader.SetSetting(SettingKey.CheckForUpdates, CheckForUpdates); }
public void SaveConfig(Stream outputStream) { if (null == outputStream) { throw new ArgumentNullException(nameof(outputStream)); } XmlWriterSettings settings = new XmlWriterSettings { Indent = true }; using (XmlWriter writer = XmlWriter.Create(outputStream, settings)) { writer.WriteStartElement("Mzinga.Viewer"); writer.WriteAttributeString("version", AppVM.FullVersion); writer.WriteAttributeString("date", DateTime.UtcNow.ToString()); writer.WriteElementString("EngineType", EngineType.ToString()); writer.WriteElementString("EngineCommandLine", EngineCommandLine); writer.WriteElementString("HexOrientation", HexOrientation.ToString()); writer.WriteElementString("NotationType", NotationType.ToString()); writer.WriteElementString("PieceStyle", PieceStyle.ToString()); writer.WriteElementString("PieceColors", PieceColors.ToString()); writer.WriteElementString("DisablePiecesInHandWithNoMoves", DisablePiecesInHandWithNoMoves.ToString()); writer.WriteElementString("DisablePiecesInPlayWithNoMoves", DisablePiecesInPlayWithNoMoves.ToString()); writer.WriteElementString("HighlightTargetMove", HighlightTargetMove.ToString()); writer.WriteElementString("HighlightValidMoves", HighlightValidMoves.ToString()); writer.WriteElementString("HighlightLastMovePlayed", HighlightLastMovePlayed.ToString()); writer.WriteElementString("BlockInvalidMoves", BlockInvalidMoves.ToString()); writer.WriteElementString("RequireMoveConfirmation", RequireMoveConfirmation.ToString()); writer.WriteElementString("AddPieceNumbers", AddPieceNumbers.ToString()); writer.WriteElementString("StackPiecesInHand", StackPiecesInHand.ToString()); writer.WriteElementString("PlaySoundEffects", PlaySoundEffects.ToString()); writer.WriteElementString("ShowBoardHistory", ShowBoardHistory.ToString()); writer.WriteElementString("ShowMoveCommentary", ShowMoveCommentary.ToString()); writer.WriteElementString("FirstRun", FirstRun.ToString()); writer.WriteElementString("CheckUpdateOnStart", CheckUpdateOnStart.ToString()); InternalGameEngineConfig?.SaveGameAIConfig(writer, "InternalGameAI", ConfigSaveType.BasicOptions); writer.WriteEndElement(); } }
public static void Save() { XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; settings.NewLineChars = Environment.NewLine; settings.NewLineOnAttributes = true; using (XmlWriter writer = XmlWriter.Create("Data.dat", settings)) { writer.WriteStartDocument(); writer.WriteStartElement("Data"); writer.WriteAttributeString("FirstRun", FirstRun.ToString()); writer.WriteAttributeString("MacAddress", GetMacAddress()); writer.WriteAttributeString("CommitteeName", CommitteeName); writer.WriteAttributeString("GSLAgenda", GSLAgenda); writer.WriteAttributeString("SSLAgenda", SSLAgenda); writer.WriteAttributeString("RollCallDone", RollCallDone.ToString()); writer.WriteAttributeString("ExtraData", ExtraData); foreach (Country country in Countries) { writer.WriteStartElement("Country"); writer.WriteAttributeString("Name", country.Name); writer.WriteAttributeString("Flag", country.Flag); writer.WriteAttributeString("Attendance", country.Attendance.ToString()); writer.WriteAttributeString("GSL", country.GSL.ToString()); writer.WriteAttributeString("SSL", country.SSL.ToString()); writer.WriteEndElement(); } writer.WriteStartElement("Topics"); foreach (Country country in Countries) { foreach (Topic topic in country.MC) { writer.WriteStartElement("Topic"); writer.WriteAttributeString("Heading", topic.Heading); writer.WriteAttributeString("Passed", topic.Passed.ToString()); //TODO report / log this incident if (topic.ProposedBy != country) { throw new InvalidDataException("The proposed country is not the same as the parent country. This incident must be reported."); } writer.WriteAttributeString("ProposedBy", topic.ProposedBy.Name); writer.WriteStartElement("SpeakingCountries"); foreach (Country speaker in topic.SpeakingCountries) { writer.WriteElementString("Country", speaker.Name); } writer.WriteEndElement(); writer.WriteEndElement(); } } writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndDocument(); writer.Close(); } }