static void Boot() { bool hasFile = File.Exists(FilePath), hasData = File.Exists(DataPath); if (!hasFile || !hasData) { string file = !hasFile?Path.GetFileName(FilePath) : Path.GetFileName(DataPath); throw new Exception($"File '{file}' missing. Sorry :("); } XDocument document, data; try { document = XDocument.Load(FilePath); data = XDocument.Load(DataPath); } catch (XmlException) { throw new Exception($"Invalid format loaded files. Sorry :("); } foreach (var item in document.Element(Tags["body"]).Elements()) { FuncHelp.Add(item.Name.LocalName, item); if (item.Element(Tags["param"]) != null && item.Element(Tags["alias"]).Value.Trim().Length != 0) { AliasFunc.Add(item.Name.LocalName, item.Element(Tags["alias"]).Value); } var attrs = new Dictionary <string, char> { }; if (item.Element(Tags["param"]) != null) { foreach (var attr in item.Element(Tags["param"]).Elements()) { attrs.Add(attr.Name.LocalName, attr.Value.Trim()[0]); } } else { continue; } Attributes.Add(item.Name.LocalName, attrs); } foreach (var item in data.Element(Tags["body"]).Elements()) { Accaunts.Add(item.Attribute(Tags["id"]).Value, item); } }