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 | } |