Example #1
0
        /// <summary>
        /// Saves settings to the specified file name.
        /// </summary>
        /// <param name="fileName">Name of the file.</param>
        /// <param name="settings">The settings.</param>
        private static void SaveSettings(string fileName, SerializableSettings settings)
        {
            Log.Debug(typeof(SerializableSettings), "Save", "Begin");

            try
            {
                string filePath = Path.GetDirectoryName(Path.GetFullPath(fileName));
                if (!Directory.Exists(filePath))
                {
                    Directory.CreateDirectory(filePath);
                }

                if (File.Exists(fileName))
                {
                    try
                    {
                        File.Copy(fileName, fileName + ".bak", true);
                    }
                    catch (Exception ex)
                    {
                        Log.Error(typeof(SerializableSettings), "Save", ex, "Copy to .bak failed");
                    }
                }

                Log.Info(typeof(SerializableSettings), "Save", fileName);

                using (FileStream file = File.Create(fileName))
                {
                    XmlSerializer ser = new XmlSerializer(typeof(SerializableSettings), XmlRoot);
                    ser.Serialize(file, settings);
                    file.Flush();
                    file.Close();
                }

                return;
            }
            catch (Exception ex)
            {
                Log.Error(typeof(SerializableSettings), "Save", ex);

                return;
            }
            finally
            {
                Log.Debug(typeof(SerializableSettings), "Save", "End");
            }
        }
Example #2
0
        /// <summary>
        /// Loads settings from the specified file name.
        /// </summary>
        /// <param name="fileName">Name of the file.</param>
        /// <returns>
        /// The settings.
        /// </returns>
        /// <exception cref="InvalidDataException">No data</exception>
        private static SerializableSettings LoadSettings(string fileName)
        {
            Log.Debug(typeof(SerializableSettings), "Load", "Begin");

            try
            {
                if (File.Exists(fileName))
                {
                    Log.Info(typeof(SerializableSettings), "Load", fileName);

                    using (FileStream file = File.OpenRead(fileName))
                    {
                        XmlSerializer serializer = new XmlSerializer(typeof(SerializableSettings), XmlRoot);

                        SerializableSettings settings = serializer.Deserialize(file) as SerializableSettings;

                        if (settings == null)
                        {
                            throw new InvalidDataException("No data");
                        }

                        Log.Debug(typeof(SerializableSettings), "Load", "Loaded");

                        return(settings);
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error(typeof(SerializableSettings), "Load", ex);
            }
            finally
            {
                Log.Debug(typeof(SerializableSettings), "Load", "End");
            }

            return(new SerializableSettings());
        }