Data.HotkeysData.Save C# (CSharp) Method

Save() public method

public Save ( ) : void
return void
        public void Save()
        {
            var xml = new XDocument(new XDeclaration("1.0", "utf-8", "yes"), new XElement("hotkeys"));
            SaveKey(xml, "topmost", Topmost);
            SaveKey(xml, "paste",Paste,false);
            SaveKey(xml, "reset", Reset);
            SaveKey(xml, "reset_current", ResetCurrent);
            SaveKey(xml, "excel_save", ExcelSave);
            SaveKey(xml, "click_throu", ClickThrou);

            xml.Root.Add(new XElement("copys"));

            foreach (var copy in Copy)
            {
                var copyElement = new XElement("copy");

                var copyCtrl = (copy.Modifier & ModifierKeys.Control) != ModifierKeys.None;
                var copyShift = (copy.Modifier & ModifierKeys.Shift) != ModifierKeys.None;
                var copyWindow = (copy.Modifier & ModifierKeys.Win) != ModifierKeys.None;
                var copyKey = copy.Key;

                copyElement.Add(new XElement("ctrl", copyCtrl.ToString()));
                copyElement.Add(new XElement("shift", copyShift.ToString()));
                copyElement.Add(new XElement("window", copyWindow.ToString()));
                copyElement.Add(new XElement("key", copyKey.ToString()));
                var stringElement = new XElement("string");

                stringElement.Add(new XElement("header", copy.Header));
                stringElement.Add(new XElement("content", copy.Content));
                stringElement.Add(new XElement("low_dps_content", copy.LowDpsContent));
                stringElement.Add(new XElement("low_dps_threshold", copy.LowDpsThreshold));
                stringElement.Add(new XElement("footer", copy.Footer));
                stringElement.Add(new XElement("order_by", copy.OrderBy));
                stringElement.Add(new XElement("order", copy.Order));
                copyElement.Add(stringElement);

                xml.Root.Element("copys").Add(copyElement);
            }

            _filestream.SetLength(0);
            using (var sr = new StreamWriter(_filestream, new UTF8Encoding(true)))
            {
                // File writing as usual
                sr.Write(xml.Declaration + Environment.NewLine + xml);
            }
            _filestream.Close();
        }