Statistics
| Branch: | Revision:

root / trunk / Pithos.ShellExtensions / ShellSettings.cs @ 437abfca

History | View | Annotate | Download (4 kB)

1 5bcf6d70 Panagiotis Kanavos
// -----------------------------------------------------------------------
2 5bcf6d70 Panagiotis Kanavos
// <copyright file="ShellSettings.cs" company="Microsoft">
3 5bcf6d70 Panagiotis Kanavos
// TODO: Update copyright text.
4 5bcf6d70 Panagiotis Kanavos
// </copyright>
5 5bcf6d70 Panagiotis Kanavos
// -----------------------------------------------------------------------
6 5bcf6d70 Panagiotis Kanavos
7 5bcf6d70 Panagiotis Kanavos
using System.ComponentModel.Composition;
8 5bcf6d70 Panagiotis Kanavos
using System.Diagnostics;
9 5bcf6d70 Panagiotis Kanavos
using System.ServiceModel;
10 b5061ac8 Panagiotis Kanavos
using Microsoft.Win32;
11 5bcf6d70 Panagiotis Kanavos
using Pithos.Interfaces;
12 5bcf6d70 Panagiotis Kanavos
13 5bcf6d70 Panagiotis Kanavos
namespace Pithos.ShellExtensions
14 5bcf6d70 Panagiotis Kanavos
{
15 5bcf6d70 Panagiotis Kanavos
    using System;
16 5bcf6d70 Panagiotis Kanavos
    using System.Collections.Generic;
17 5bcf6d70 Panagiotis Kanavos
    using System.Linq;
18 5bcf6d70 Panagiotis Kanavos
    using System.Text;
19 5bcf6d70 Panagiotis Kanavos
20 5bcf6d70 Panagiotis Kanavos
    /// <summary>
21 5bcf6d70 Panagiotis Kanavos
    /// TODO: Update summary.
22 5bcf6d70 Panagiotis Kanavos
    /// </summary>
23 5bcf6d70 Panagiotis Kanavos
    [Export(typeof(IPithosSettings))]
24 5bcf6d70 Panagiotis Kanavos
    public class ShellSettings:IPithosSettings
25 5bcf6d70 Panagiotis Kanavos
    {
26 7e26c075 Panagiotis Kanavos
        private static readonly log4net.ILog Log = log4net.LogManager.GetLogger("Pithos.ShellSettings");
27 7e26c075 Panagiotis Kanavos
28 5bcf6d70 Panagiotis Kanavos
        private Lazy<IPithosSettings> _settings;
29 5bcf6d70 Panagiotis Kanavos
        public ShellSettings()
30 5bcf6d70 Panagiotis Kanavos
        {
31 5bcf6d70 Panagiotis Kanavos
            _settings = new Lazy<IPithosSettings>(LoadSettings);
32 5bcf6d70 Panagiotis Kanavos
        }
33 5bcf6d70 Panagiotis Kanavos
34 5bcf6d70 Panagiotis Kanavos
        public bool UseDefaultProxy
35 5bcf6d70 Panagiotis Kanavos
        {
36 5bcf6d70 Panagiotis Kanavos
            get { return _settings.Value.UseDefaultProxy; }
37 5bcf6d70 Panagiotis Kanavos
            set { _settings.Value.UseDefaultProxy = value; }
38 5bcf6d70 Panagiotis Kanavos
        }
39 5bcf6d70 Panagiotis Kanavos
40 5bcf6d70 Panagiotis Kanavos
        public bool UseManualProxy
41 5bcf6d70 Panagiotis Kanavos
        {
42 5bcf6d70 Panagiotis Kanavos
            get { return _settings.Value.UseManualProxy; }
43 5bcf6d70 Panagiotis Kanavos
            set { _settings.Value.UseManualProxy = value; }
44 5bcf6d70 Panagiotis Kanavos
        }
45 5bcf6d70 Panagiotis Kanavos
46 5bcf6d70 Panagiotis Kanavos
        public bool UseNoProxy
47 5bcf6d70 Panagiotis Kanavos
        {
48 5bcf6d70 Panagiotis Kanavos
            get { return _settings.Value.UseNoProxy; }
49 5bcf6d70 Panagiotis Kanavos
            set { _settings.Value.UseNoProxy = value; }
50 5bcf6d70 Panagiotis Kanavos
        }
51 5bcf6d70 Panagiotis Kanavos
52 5bcf6d70 Panagiotis Kanavos
        public string PithosPath
53 5bcf6d70 Panagiotis Kanavos
        {
54 5bcf6d70 Panagiotis Kanavos
            get { return _settings.Value.PithosPath; }
55 5bcf6d70 Panagiotis Kanavos
            set { _settings.Value.PithosPath = value; }
56 5bcf6d70 Panagiotis Kanavos
        }
57 5bcf6d70 Panagiotis Kanavos
58 5bcf6d70 Panagiotis Kanavos
        public string PithosSite
59 5bcf6d70 Panagiotis Kanavos
        {
60 5bcf6d70 Panagiotis Kanavos
            get { return _settings.Value.PithosSite; }
61 5bcf6d70 Panagiotis Kanavos
        }
62 5bcf6d70 Panagiotis Kanavos
63 5bcf6d70 Panagiotis Kanavos
        public string IconsPath
64 5bcf6d70 Panagiotis Kanavos
        {
65 5bcf6d70 Panagiotis Kanavos
            get { return _settings.Value.IconsPath; }
66 5bcf6d70 Panagiotis Kanavos
            set { _settings.Value.IconsPath = value; }
67 5bcf6d70 Panagiotis Kanavos
        }
68 5bcf6d70 Panagiotis Kanavos
69 5bcf6d70 Panagiotis Kanavos
        public string UserName
70 5bcf6d70 Panagiotis Kanavos
        {
71 5bcf6d70 Panagiotis Kanavos
            get { return _settings.Value.UserName; }
72 5bcf6d70 Panagiotis Kanavos
            set { _settings.Value.UserName = value; }
73 5bcf6d70 Panagiotis Kanavos
        }
74 5bcf6d70 Panagiotis Kanavos
75 5bcf6d70 Panagiotis Kanavos
        public string ApiKey
76 5bcf6d70 Panagiotis Kanavos
        {
77 5bcf6d70 Panagiotis Kanavos
            get { return _settings.Value.ApiKey; }
78 5bcf6d70 Panagiotis Kanavos
            set { _settings.Value.ApiKey = value; }
79 5bcf6d70 Panagiotis Kanavos
        }
80 5bcf6d70 Panagiotis Kanavos
81 5bcf6d70 Panagiotis Kanavos
        public AccountsCollection Accounts
82 5bcf6d70 Panagiotis Kanavos
        {
83 5bcf6d70 Panagiotis Kanavos
            get { return _settings.Value.Accounts; }
84 5bcf6d70 Panagiotis Kanavos
            set { _settings.Value.Accounts = value; }
85 5bcf6d70 Panagiotis Kanavos
        }
86 5bcf6d70 Panagiotis Kanavos
87 5bcf6d70 Panagiotis Kanavos
        public string ProxyServer
88 5bcf6d70 Panagiotis Kanavos
        {
89 5bcf6d70 Panagiotis Kanavos
            get { return _settings.Value.ProxyServer; }
90 5bcf6d70 Panagiotis Kanavos
            set { _settings.Value.ProxyServer = value; }
91 5bcf6d70 Panagiotis Kanavos
        }
92 5bcf6d70 Panagiotis Kanavos
93 5bcf6d70 Panagiotis Kanavos
        public int ProxyPort
94 5bcf6d70 Panagiotis Kanavos
        {
95 5bcf6d70 Panagiotis Kanavos
            get { return _settings.Value.ProxyPort; }
96 5bcf6d70 Panagiotis Kanavos
            set { _settings.Value.ProxyPort = value; }
97 5bcf6d70 Panagiotis Kanavos
        }
98 5bcf6d70 Panagiotis Kanavos
99 5bcf6d70 Panagiotis Kanavos
        public string ProxyUsername
100 5bcf6d70 Panagiotis Kanavos
        {
101 5bcf6d70 Panagiotis Kanavos
            get { return _settings.Value.ProxyUsername; }
102 5bcf6d70 Panagiotis Kanavos
            set { _settings.Value.ProxyUsername = value; }
103 5bcf6d70 Panagiotis Kanavos
        }
104 5bcf6d70 Panagiotis Kanavos
105 5bcf6d70 Panagiotis Kanavos
106 5bcf6d70 Panagiotis Kanavos
        public string ProxyPassword
107 5bcf6d70 Panagiotis Kanavos
        {
108 5bcf6d70 Panagiotis Kanavos
            get { return _settings.Value.ProxyPassword; }
109 5bcf6d70 Panagiotis Kanavos
            set { _settings.Value.ProxyPassword = value; }
110 5bcf6d70 Panagiotis Kanavos
        }
111 5bcf6d70 Panagiotis Kanavos
112 5bcf6d70 Panagiotis Kanavos
        public bool ProxyAuthentication
113 5bcf6d70 Panagiotis Kanavos
        {
114 5bcf6d70 Panagiotis Kanavos
115 5bcf6d70 Panagiotis Kanavos
            get { return _settings.Value.ProxyAuthentication; }
116 5bcf6d70 Panagiotis Kanavos
            set { _settings.Value.ProxyAuthentication = value; }
117 5bcf6d70 Panagiotis Kanavos
        }
118 5bcf6d70 Panagiotis Kanavos
119 5bcf6d70 Panagiotis Kanavos
        public bool ExtensionsActivated
120 5bcf6d70 Panagiotis Kanavos
        {
121 5bcf6d70 Panagiotis Kanavos
122 5bcf6d70 Panagiotis Kanavos
            get { return _settings.Value.ExtensionsActivated; }
123 5bcf6d70 Panagiotis Kanavos
            set { _settings.Value.ExtensionsActivated = value; }
124 5bcf6d70 Panagiotis Kanavos
        }
125 5bcf6d70 Panagiotis Kanavos
        public void Save()
126 5bcf6d70 Panagiotis Kanavos
        {
127 5bcf6d70 Panagiotis Kanavos
           
128 5bcf6d70 Panagiotis Kanavos
        }
129 5bcf6d70 Panagiotis Kanavos
130 5bcf6d70 Panagiotis Kanavos
        public void Reload()
131 5bcf6d70 Panagiotis Kanavos
        {
132 5bcf6d70 Panagiotis Kanavos
            _settings=new Lazy<IPithosSettings>(LoadSettings);
133 5bcf6d70 Panagiotis Kanavos
        }
134 5bcf6d70 Panagiotis Kanavos
135 5bcf6d70 Panagiotis Kanavos
        private  IPithosSettings LoadSettings()
136 5bcf6d70 Panagiotis Kanavos
        {
137 b5061ac8 Panagiotis Kanavos
138 5bcf6d70 Panagiotis Kanavos
            try
139 5bcf6d70 Panagiotis Kanavos
            {
140 b5061ac8 Panagiotis Kanavos
                using (var client = PithosHost.GetSettingsClient())
141 5bcf6d70 Panagiotis Kanavos
                {
142 5bcf6d70 Panagiotis Kanavos
                    return client.GetSettings();
143 5bcf6d70 Panagiotis Kanavos
                }
144 5bcf6d70 Panagiotis Kanavos
            }
145 5bcf6d70 Panagiotis Kanavos
            catch (Exception exc)
146 5bcf6d70 Panagiotis Kanavos
            {
147 5120f3cb Panagiotis Kanavos
                Log.ErrorFormat("[ERROR] while loading settings:\r{0}",exc);
148 5bcf6d70 Panagiotis Kanavos
                _settings = new Lazy<IPithosSettings>(LoadSettings);
149 5bcf6d70 Panagiotis Kanavos
            }
150 5bcf6d70 Panagiotis Kanavos
            return null;
151 5bcf6d70 Panagiotis Kanavos
        }
152 5bcf6d70 Panagiotis Kanavos
    }
153 5bcf6d70 Panagiotis Kanavos
}