예제 #1
0
 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);
 }
예제 #2
0
        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();
            }
        }
예제 #3
0
        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();
            }
        }