public override BaseSettings Load(BaseSettings settings, string directoryPath, string filename)
        {
            var path = Path.Combine(directoryPath, filename + ".xml");
            var file = new FileInfo(path);

            if (file.Exists)
            {
                var xmlDocument = new XmlDocument();
                var reader      = file.OpenText();
                xmlDocument.Load(reader);
                reader.Dispose();

                var root = xmlDocument[settings.GetType().Name];
                if (root is null)
                {
                    Save(settings, directoryPath, filename);
                    return(settings);
                }

                var content = JsonConvert.SerializeXmlNode(root, Newtonsoft.Json.Formatting.None, true);

                return(LoadFromJson(settings, content));
            }
            else
            {
                Save(settings, directoryPath, filename);
                return(settings);
            }
        }
        public override bool Save(BaseSettings settings, string path)
        {
            var content = settings is IWrapper wrapper
                ? JsonConvert.SerializeObject(wrapper.Object, JsonSerializerSettings)
                : JsonConvert.SerializeObject(settings, JsonSerializerSettings);

            var xmlDocument = JsonConvert.DeserializeXmlNode(content, settings is IWrapper wrapper1 ? wrapper1.Object.GetType().Name : settings.GetType().Name);

            var file = new FileInfo(path);

            file.Directory?.Create();
            using var writer = file.CreateText();
            xmlDocument.Save(writer);

            return(true);
        }
        public override bool Save(BaseSettings settings, string directoryPath, string filename)
        {
            var path = Path.Combine(directoryPath, filename + ".xml");

            var content     = SaveJson(settings);
            var xmlDocument = JsonConvert.DeserializeXmlNode(content, settings is IWrapper wrapper1 ? wrapper1.Object.GetType().Name : settings.GetType().Name);

            var file = new FileInfo(path);

            file.Directory?.Create();
            var writer = file.CreateText();

            xmlDocument.Save(writer);
            writer.Dispose();

            return(true);
        }