Statistics
| Branch: | Revision:

root / trunk / Pithos.Client.WPF / Configuration / PithosSettings.cs @ 48686774

History | View | Annotate | Download (6.6 kB)

1 255f5f86 Panagiotis Kanavos
#region
2 255f5f86 Panagiotis Kanavos
/* -----------------------------------------------------------------------
3 255f5f86 Panagiotis Kanavos
 * <copyright file="PithosSettings.cs" company="GRNet">
4 255f5f86 Panagiotis Kanavos
 * 
5 255f5f86 Panagiotis Kanavos
 * Copyright 2011-2012 GRNET S.A. All rights reserved.
6 255f5f86 Panagiotis Kanavos
 *
7 255f5f86 Panagiotis Kanavos
 * Redistribution and use in source and binary forms, with or
8 255f5f86 Panagiotis Kanavos
 * without modification, are permitted provided that the following
9 255f5f86 Panagiotis Kanavos
 * conditions are met:
10 255f5f86 Panagiotis Kanavos
 *
11 255f5f86 Panagiotis Kanavos
 *   1. Redistributions of source code must retain the above
12 255f5f86 Panagiotis Kanavos
 *      copyright notice, this list of conditions and the following
13 255f5f86 Panagiotis Kanavos
 *      disclaimer.
14 255f5f86 Panagiotis Kanavos
 *
15 255f5f86 Panagiotis Kanavos
 *   2. Redistributions in binary form must reproduce the above
16 255f5f86 Panagiotis Kanavos
 *      copyright notice, this list of conditions and the following
17 255f5f86 Panagiotis Kanavos
 *      disclaimer in the documentation and/or other materials
18 255f5f86 Panagiotis Kanavos
 *      provided with the distribution.
19 255f5f86 Panagiotis Kanavos
 *
20 255f5f86 Panagiotis Kanavos
 *
21 255f5f86 Panagiotis Kanavos
 * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
22 255f5f86 Panagiotis Kanavos
 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23 255f5f86 Panagiotis Kanavos
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24 255f5f86 Panagiotis Kanavos
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
25 255f5f86 Panagiotis Kanavos
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 255f5f86 Panagiotis Kanavos
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 255f5f86 Panagiotis Kanavos
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
28 255f5f86 Panagiotis Kanavos
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
29 255f5f86 Panagiotis Kanavos
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 255f5f86 Panagiotis Kanavos
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31 255f5f86 Panagiotis Kanavos
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32 255f5f86 Panagiotis Kanavos
 * POSSIBILITY OF SUCH DAMAGE.
33 255f5f86 Panagiotis Kanavos
 *
34 255f5f86 Panagiotis Kanavos
 * The views and conclusions contained in the software and
35 255f5f86 Panagiotis Kanavos
 * documentation are those of the authors and should not be
36 255f5f86 Panagiotis Kanavos
 * interpreted as representing official policies, either expressed
37 255f5f86 Panagiotis Kanavos
 * or implied, of GRNET S.A.
38 255f5f86 Panagiotis Kanavos
 * </copyright>
39 255f5f86 Panagiotis Kanavos
 * -----------------------------------------------------------------------
40 255f5f86 Panagiotis Kanavos
 */
41 255f5f86 Panagiotis Kanavos
#endregion
42 9bae55d1 Panagiotis Kanavos
using System.ComponentModel.Composition;
43 9bae55d1 Panagiotis Kanavos
using System.Configuration;
44 cd1bbba9 Panagiotis Kanavos
using System.Diagnostics;
45 9bae55d1 Panagiotis Kanavos
using System.Dynamic;
46 9bae55d1 Panagiotis Kanavos
using Pithos.Client.WPF.Properties;
47 9bae55d1 Panagiotis Kanavos
using Pithos.Interfaces;
48 9bae55d1 Panagiotis Kanavos
49 9bae55d1 Panagiotis Kanavos
namespace Pithos.Client.WPF.Configuration
50 9bae55d1 Panagiotis Kanavos
{
51 9bae55d1 Panagiotis Kanavos
    using System;
52 9bae55d1 Panagiotis Kanavos
    using System.Collections.Generic;
53 9bae55d1 Panagiotis Kanavos
    using System.Linq;
54 9bae55d1 Panagiotis Kanavos
    using System.Text;
55 9bae55d1 Panagiotis Kanavos
56 9bae55d1 Panagiotis Kanavos
    [Export(typeof(IPithosSettings))]
57 0c02aa65 Panagiotis Kanavos
    [Export]
58 5bcf6d70 Panagiotis Kanavos
    public class PithosSettings :  IPithosSettings
59 9bae55d1 Panagiotis Kanavos
    {
60 f734ab5b Panagiotis Kanavos
        private readonly Settings _settings = Settings.Default;
61 f734ab5b Panagiotis Kanavos
62 74d78c90 Panagiotis Kanavos
        public PithosSettings()
63 74d78c90 Panagiotis Kanavos
        {
64 cd1bbba9 Panagiotis Kanavos
            //Settings should already be upgraded by the time we reach this point
65 cd1bbba9 Panagiotis Kanavos
            Debug.Assert(!_settings.MustUpgrade);
66 cd1bbba9 Panagiotis Kanavos
            //_settings.Upgrade();
67 74d78c90 Panagiotis Kanavos
        }
68 74d78c90 Panagiotis Kanavos
69 5bcf6d70 Panagiotis Kanavos
        public bool UseDefaultProxy
70 5bcf6d70 Panagiotis Kanavos
        {
71 f734ab5b Panagiotis Kanavos
            get { return _settings.UseDefaultProxy; }
72 f734ab5b Panagiotis Kanavos
            set { _settings.UseDefaultProxy = value; }
73 5bcf6d70 Panagiotis Kanavos
        }
74 5bcf6d70 Panagiotis Kanavos
75 5bcf6d70 Panagiotis Kanavos
        public bool UseManualProxy
76 5bcf6d70 Panagiotis Kanavos
        {
77 f734ab5b Panagiotis Kanavos
            get { return _settings.UseManualProxy; }
78 f734ab5b Panagiotis Kanavos
            set { _settings.UseManualProxy = value; }
79 5bcf6d70 Panagiotis Kanavos
        }
80 5bcf6d70 Panagiotis Kanavos
81 5bcf6d70 Panagiotis Kanavos
        public bool UseNoProxy
82 5bcf6d70 Panagiotis Kanavos
        {
83 f734ab5b Panagiotis Kanavos
            get { return _settings.UseNoProxy; }
84 f734ab5b Panagiotis Kanavos
            set { _settings.UseNoProxy = value; }
85 5bcf6d70 Panagiotis Kanavos
        }
86 5bcf6d70 Panagiotis Kanavos
87 9bae55d1 Panagiotis Kanavos
        public string PithosPath
88 9bae55d1 Panagiotis Kanavos
        {
89 f734ab5b Panagiotis Kanavos
            get { return _settings.PithosPath; }
90 f734ab5b Panagiotis Kanavos
            set { _settings.PithosPath = value; }
91 9bae55d1 Panagiotis Kanavos
        }
92 9bae55d1 Panagiotis Kanavos
93 f734ab5b Panagiotis Kanavos
      /*  public string PithosSite
94 5bcf6d70 Panagiotis Kanavos
        {
95 f734ab5b Panagiotis Kanavos
            get { return _settings.PithosSite; }
96 f734ab5b Panagiotis Kanavos
        }*/
97 5bcf6d70 Panagiotis Kanavos
98 20e9a378 Panagiotis Kanavos
        public string PithosLoginUrl
99 20e9a378 Panagiotis Kanavos
        {
100 f734ab5b Panagiotis Kanavos
            get { return _settings.PithosLoginUrl; }
101 20e9a378 Panagiotis Kanavos
        }
102 20e9a378 Panagiotis Kanavos
103 9bae55d1 Panagiotis Kanavos
        public string IconsPath
104 9bae55d1 Panagiotis Kanavos
        {
105 f734ab5b Panagiotis Kanavos
            get { return _settings.IconPath; }
106 f734ab5b Panagiotis Kanavos
            set { _settings.IconPath = value; }
107 9bae55d1 Panagiotis Kanavos
        }
108 9bae55d1 Panagiotis Kanavos
109 9bae55d1 Panagiotis Kanavos
        public string UserName
110 9bae55d1 Panagiotis Kanavos
        {
111 f734ab5b Panagiotis Kanavos
            get { return _settings.UserName; }
112 f734ab5b Panagiotis Kanavos
            set { _settings.UserName = value; }
113 9bae55d1 Panagiotis Kanavos
        }
114 9bae55d1 Panagiotis Kanavos
115 9bae55d1 Panagiotis Kanavos
        public string ApiKey
116 9bae55d1 Panagiotis Kanavos
        {
117 f734ab5b Panagiotis Kanavos
            get { return _settings.ApiKey; }
118 f734ab5b Panagiotis Kanavos
            set { _settings.ApiKey = value; }
119 9bae55d1 Panagiotis Kanavos
        }
120 9bae55d1 Panagiotis Kanavos
121 9bae55d1 Panagiotis Kanavos
        public AccountsCollection Accounts
122 9bae55d1 Panagiotis Kanavos
        {
123 f734ab5b Panagiotis Kanavos
            get
124 f734ab5b Panagiotis Kanavos
            {
125 f734ab5b Panagiotis Kanavos
                if (_settings.Accounts==null)
126 f734ab5b Panagiotis Kanavos
                    _settings.Accounts=new AccountsCollection();
127 f734ab5b Panagiotis Kanavos
                return _settings.Accounts;
128 f734ab5b Panagiotis Kanavos
            }
129 f734ab5b Panagiotis Kanavos
            set { _settings.Accounts = value; }
130 9bae55d1 Panagiotis Kanavos
        }
131 9bae55d1 Panagiotis Kanavos
132 9bae55d1 Panagiotis Kanavos
        public string ProxyServer
133 9bae55d1 Panagiotis Kanavos
        {
134 f734ab5b Panagiotis Kanavos
            get { return _settings.ProxyServer; }
135 f734ab5b Panagiotis Kanavos
            set { _settings.ProxyServer = value; }
136 9bae55d1 Panagiotis Kanavos
        }
137 9bae55d1 Panagiotis Kanavos
138 5bcf6d70 Panagiotis Kanavos
        public int ProxyPort
139 9bae55d1 Panagiotis Kanavos
        {
140 f734ab5b Panagiotis Kanavos
            get { return _settings.ProxyPort; }
141 f734ab5b Panagiotis Kanavos
            set { _settings.ProxyPort = value; }
142 9bae55d1 Panagiotis Kanavos
        }
143 9bae55d1 Panagiotis Kanavos
144 9bae55d1 Panagiotis Kanavos
        public string ProxyUsername
145 9bae55d1 Panagiotis Kanavos
        {
146 f734ab5b Panagiotis Kanavos
            get { return _settings.ProxyUsername; }
147 f734ab5b Panagiotis Kanavos
            set { _settings.ProxyUsername = value; }
148 9bae55d1 Panagiotis Kanavos
        }
149 9bae55d1 Panagiotis Kanavos
150 9bae55d1 Panagiotis Kanavos
151 9bae55d1 Panagiotis Kanavos
        public string ProxyPassword
152 9bae55d1 Panagiotis Kanavos
        {
153 f734ab5b Panagiotis Kanavos
            get { return _settings.ProxyPassword; }
154 f734ab5b Panagiotis Kanavos
            set { _settings.ProxyPassword = value; }
155 9bae55d1 Panagiotis Kanavos
        }
156 9bae55d1 Panagiotis Kanavos
157 65282d58 Panagiotis Kanavos
        public string ProxyDomain
158 65282d58 Panagiotis Kanavos
        {
159 65282d58 Panagiotis Kanavos
            get { return _settings.ProxyDomain; }
160 65282d58 Panagiotis Kanavos
            set { _settings.ProxyDomain = value; }
161 65282d58 Panagiotis Kanavos
        }
162 65282d58 Panagiotis Kanavos
163 9bae55d1 Panagiotis Kanavos
        public bool ProxyAuthentication
164 9bae55d1 Panagiotis Kanavos
        {
165 9bae55d1 Panagiotis Kanavos
166 f734ab5b Panagiotis Kanavos
            get { return _settings.ProxyAuthentication; }
167 f734ab5b Panagiotis Kanavos
            set { _settings.ProxyAuthentication = value; }
168 9bae55d1 Panagiotis Kanavos
        }
169 20e9a378 Panagiotis Kanavos
170 20e9a378 Panagiotis Kanavos
        
171 9bae55d1 Panagiotis Kanavos
        
172 9bae55d1 Panagiotis Kanavos
        public bool ExtensionsActivated
173 9bae55d1 Panagiotis Kanavos
        {
174 9bae55d1 Panagiotis Kanavos
175 f734ab5b Panagiotis Kanavos
            get { return _settings.ExtensionsActivated; }
176 f734ab5b Panagiotis Kanavos
            set { _settings.ExtensionsActivated = value; }
177 9bae55d1 Panagiotis Kanavos
        }
178 9bae55d1 Panagiotis Kanavos
179 0c02aa65 Panagiotis Kanavos
        public bool ShowDesktopNotifications
180 0c02aa65 Panagiotis Kanavos
        {
181 f734ab5b Panagiotis Kanavos
            get { return _settings.ShowDesktopNotifications; }
182 f734ab5b Panagiotis Kanavos
            set { _settings.ShowDesktopNotifications = value; }
183 0c02aa65 Panagiotis Kanavos
        }
184 133f83c2 Panagiotis Kanavos
185 133f83c2 Panagiotis Kanavos
186 133f83c2 Panagiotis Kanavos
        public int PollingInterval
187 133f83c2 Panagiotis Kanavos
        {
188 133f83c2 Panagiotis Kanavos
            get { return _settings.PollingInterval; }
189 133f83c2 Panagiotis Kanavos
            set
190 133f83c2 Panagiotis Kanavos
            {
191 133f83c2 Panagiotis Kanavos
                if (value <= 0)
192 133f83c2 Panagiotis Kanavos
                    throw new ArgumentOutOfRangeException();
193 133f83c2 Panagiotis Kanavos
                _settings.PollingInterval = value;
194 133f83c2 Panagiotis Kanavos
            }
195 133f83c2 Panagiotis Kanavos
        }
196 29a6b387 Panagiotis Kanavos
197 759bd3c4 Panagiotis Kanavos
        public TimeSpan StartupDelay
198 759bd3c4 Panagiotis Kanavos
        {
199 759bd3c4 Panagiotis Kanavos
            get { return _settings.StartupDelay; }
200 759bd3c4 Panagiotis Kanavos
            set
201 759bd3c4 Panagiotis Kanavos
            {
202 759bd3c4 Panagiotis Kanavos
                if (value < TimeSpan.Zero)
203 759bd3c4 Panagiotis Kanavos
                    throw new ArgumentOutOfRangeException();
204 759bd3c4 Panagiotis Kanavos
                _settings.StartupDelay = value;
205 759bd3c4 Panagiotis Kanavos
            }
206 759bd3c4 Panagiotis Kanavos
        }
207 759bd3c4 Panagiotis Kanavos
208 759bd3c4 Panagiotis Kanavos
209 29a6b387 Panagiotis Kanavos
        public bool StartOnSystemStartup
210 29a6b387 Panagiotis Kanavos
        {
211 29a6b387 Panagiotis Kanavos
            get { return _settings.StartOnSystemStartup; }
212 29a6b387 Panagiotis Kanavos
            set
213 29a6b387 Panagiotis Kanavos
            {
214 29a6b387 Panagiotis Kanavos
                _settings.StartOnSystemStartup = value;
215 29a6b387 Panagiotis Kanavos
            }
216 29a6b387 Panagiotis Kanavos
        }
217 422c9598 Panagiotis Kanavos
218 422c9598 Panagiotis Kanavos
        public byte HashingParallelism
219 422c9598 Panagiotis Kanavos
        {
220 422c9598 Panagiotis Kanavos
            get { return _settings.HashingParallelism; }
221 422c9598 Panagiotis Kanavos
            set { _settings.HashingParallelism = value; }
222 422c9598 Panagiotis Kanavos
        }
223 9bae55d1 Panagiotis Kanavos
224 9bae55d1 Panagiotis Kanavos
        public void Save()
225 9bae55d1 Panagiotis Kanavos
        {
226 f734ab5b Panagiotis Kanavos
            _settings.Save();
227 34bdb91d Panagiotis Kanavos
            Proxy.SetFromSettings(this);
228 9bae55d1 Panagiotis Kanavos
        }
229 9bae55d1 Panagiotis Kanavos
230 9bae55d1 Panagiotis Kanavos
        public void Reload()
231 9bae55d1 Panagiotis Kanavos
        {
232 f734ab5b Panagiotis Kanavos
            _settings.Reload();
233 9bae55d1 Panagiotis Kanavos
        }
234 9bae55d1 Panagiotis Kanavos
    }
235 9bae55d1 Panagiotis Kanavos
}