Ejemplo n.º 1
0
        /// <summary>
        /// 解析
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        protected virtual DataSettings ParseSettings(string text)
        {
            var shellSettings = new DataSettings();

            if (string.IsNullOrEmpty(text))
            {
                return(shellSettings);
            }

            var settings = new List <string>();

            using (var reader = new StringReader(text))
            {
                string str;
                while ((str = reader.ReadLine()) != null)
                {
                    settings.Add(str);
                }
            }
            foreach (var setting in settings)
            {
                var separatorIndex = setting.IndexOf(separator);
                if (separatorIndex == -1)
                {
                    continue;
                }

                string key   = setting.Substring(0, separatorIndex);
                string value = setting.Substring(separatorIndex + 1);

                switch (key)
                {
                case "DataProvider":
                    shellSettings.DataProvider = value.Trim();
                    break;

                case "DataConnectionString":
                    shellSettings.DataConnectionString = value.Trim();
                    break;

                default:
                    shellSettings.RawDataSettings.Add(key, value.Trim());
                    break;
                }
            }
            return(shellSettings);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Save settings to a file
        /// </summary>
        /// <param name="settings">Data settings</param>
        public virtual void SaveSettings(DataSettings settings)
        {
            Singleton <DataSettings> .Instance = settings ?? throw new ArgumentNullException(nameof(settings));

            var filePath = CommonHelper.MapPath(DataSettingsFilePath);

            //create file if not exists
            if (!File.Exists(filePath))
            {
                //we use 'using' to close the file after it's created
                using (File.Create(filePath)) { }
            }

            //save data settings to the file
            var text = JsonConvert.SerializeObject(Singleton <DataSettings> .Instance, Formatting.Indented);

            File.WriteAllText(filePath, text);
        }
Ejemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="settings"></param>
        public virtual void SaveSettings(DataSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentException("settings");
            }

            string filePath = Path.Combine(MapPath("~/App_Data/"), fileName);

            if (!File.Exists(filePath))
            {
                using (File.Create(filePath))
                {
                }
            }
            var text = ComposeSettings(settings);

            File.WriteAllText(filePath, text);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Save settings to a file
        /// </summary>
        /// <param name="settings"></param>
        public virtual void SaveSettings(DataSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException("settings");
            }

            string filePath = Path.Combine(CommonHelper.MapPath("~/App_Data/"), filename);

            if (!File.Exists(filePath))
            {
                using (File.Create(filePath))
                {
                    //we use 'using' to close the file after it's created
                }
            }

            var text = ComposeSettings(settings);

            File.WriteAllText(filePath, text);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Load settings
        /// </summary>
        /// <param name="filePath">File path; pass null to use default settings file path</param>
        /// <param name="reloadSettings">Indicates whether to reload data, if they already loaded</param>
        /// <returns>Data settings</returns>
        public virtual DataSettings LoadSettings(string filePath = null, bool reloadSettings = false)
        {
            if (!reloadSettings && Singleton <DataSettings> .Instance != null)
            {
                return(Singleton <DataSettings> .Instance);
            }

            filePath = filePath ?? CommonHelper.MapPath(DataSettingsFilePath);

            //check whether file exists
            if (!File.Exists(filePath))
            {
                //if not, try to parse the file that was used in previous nopCommerce versions
                filePath = CommonHelper.MapPath(ObsoleteDataSettingsFilePath);
                if (!File.Exists(filePath))
                {
                    return(new DataSettings());
                }

                //get data settings from the old txt file
                var dataSettings = new DataSettings();
                using (var reader = new StringReader(File.ReadAllText(filePath)))
                {
                    var settingsLine = string.Empty;
                    while ((settingsLine = reader.ReadLine()) != null)
                    {
                        var separatorIndex = settingsLine.IndexOf(':');
                        if (separatorIndex == -1)
                        {
                            continue;
                        }

                        var key   = settingsLine.Substring(0, separatorIndex).Trim();
                        var value = settingsLine.Substring(separatorIndex + 1).Trim();

                        switch (key)
                        {
                        case "DataProvider":
                            dataSettings.DataProvider = value;
                            continue;

                        case "DataConnectionString":
                            dataSettings.DataConnectionString = value;
                            continue;

                        default:
                            dataSettings.RawDataSettings.Add(key, value);
                            continue;
                        }
                    }
                }

                //save data settings to the new file
                SaveSettings(dataSettings);

                //and delete the old one
                File.Delete(filePath);

                Singleton <DataSettings> .Instance = dataSettings;
                return(Singleton <DataSettings> .Instance);
            }

            var text = File.ReadAllText(filePath);

            if (string.IsNullOrEmpty(text))
            {
                return(new DataSettings());
            }

            //get data settings from the JSON file
            Singleton <DataSettings> .Instance = JsonConvert.DeserializeObject <DataSettings>(text);
            return(Singleton <DataSettings> .Instance);
        }