Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.ComponentModel.DataAnnotations;
- using System.ComponentModel;
- namespace ProductivityWatcher.Properties {
- using Core;
- using Core.Xml;
- using System.Diagnostics;
- using System.IO;
- [Serializable]
- public class Settings {
- #region Load & Save
- const string SETTINGS_FILENAME = "Settings.xml";
- static readonly Settings _default;
- public static Settings Default {
- get {
- return _default;
- }
- }
- static Settings() {
- _default = new Settings();
- _default.Load();
- }
- static string GetSettingsFilePath() {
- FileInfo procInfo = new FileInfo(Process.GetCurrentProcess().MainModule.FileName);
- string procDirectory = procInfo.Directory.FullName;
- string settingsPath = Path.Combine(procDirectory,SETTINGS_FILENAME);
- return settingsPath;
- }
- string GetDefaultImageDirectory() {
- FileInfo finfo = new FileInfo(Process.GetCurrentProcess().MainModule.FileName);
- return Path.Combine(finfo.Directory.FullName,"DesktopImages");
- }
- public void Reload() {
- Load();
- }
- public void Load() {
- string settingsPath = GetSettingsFilePath();
- string contents = null;
- if(File.Exists(settingsPath))
- contents = File.ReadAllText(settingsPath);
- if(!contents.IsNullOrEmptyTrim()) {
- Settings loaded = XmlSerialization.Deserialize<Settings>(contents);
- if(loaded == null) {
- Trace.TraceWarning("Settings->Load() Failed XmlSerialization->Deserialize() returned null");
- }
- else
- TypeUtilities.CopyProperties(loaded,this);
- }
- else {
- CaptureIntravalInSeconds = Services.PWService.DEFAULT_CAPTURE_INTRAVAL_SEC;
- IsCaptureServiceEnabled = true;
- ImagesSaveDirectory = GetDefaultImageDirectory();
- DirectoryCreationFrequency = DirectoryCreationFrequencyType.Daily;
- }
- }
- public void Save() {
- string settingsPath = GetSettingsFilePath();
- if(File.Exists(settingsPath)) {
- FileAttributes att = File.GetAttributes(settingsPath);
- if(att == FileAttributes.ReadOnly) {
- File.SetAttributes(settingsPath,att | FileAttributes.Normal);
- }
- File.Delete(settingsPath);
- }
- string xmldata = XmlSerialization.Serialize<Settings>(this);
- File.WriteAllText(settingsPath,xmldata);
- }
- #endregion
- [DisplayName("Is Capture Service Enabled")]
- [Category("Productivity Watcher")]
- [Description("Gets or Sets to enable or disable the Windows Service")]
- public bool IsCaptureServiceEnabled { get; set; }
- [DisplayName("Capture Intraval in Seconds")]
- [Category("Productivity Watcher")]
- [Description("Gets or Sets the interval in seconds to capture the windows desktop")]
- public int CaptureIntravalInSeconds { get; set; }
- [DisplayName("Images Save Directory")]
- [Category("Productivity Watcher")]
- [Description("Gets or Sets the directory to save captured images")]
- public string ImagesSaveDirectory { get; set; }
- [DisplayName("Directory Creation Frequency")]
- [Category("Productivity Watcher")]
- [Description("Gets or Sets the frequency of how to create directories based on time")]
- public DirectoryCreationFrequencyType DirectoryCreationFrequency { get; set; }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment