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