UUID Changes
[pithos-ms-client] / trunk / Pithos.Client.WPF / Preferences / ProxyAccountViewModel.cs
1 #region\r
2 /* -----------------------------------------------------------------------\r
3  * <copyright file="ProxyAccountViewModel.cs" company="GRNet">\r
4  * \r
5  * Copyright 2011-2012 GRNET S.A. All rights reserved.\r
6  *\r
7  * Redistribution and use in source and binary forms, with or\r
8  * without modification, are permitted provided that the following\r
9  * conditions are met:\r
10  *\r
11  *   1. Redistributions of source code must retain the above\r
12  *      copyright notice, this list of conditions and the following\r
13  *      disclaimer.\r
14  *\r
15  *   2. Redistributions in binary form must reproduce the above\r
16  *      copyright notice, this list of conditions and the following\r
17  *      disclaimer in the documentation and/or other materials\r
18  *      provided with the distribution.\r
19  *\r
20  *\r
21  * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS\r
22  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
23  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
24  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR\r
25  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r
26  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
27  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF\r
28  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED\r
29  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
30  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\r
31  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
32  * POSSIBILITY OF SUCH DAMAGE.\r
33  *\r
34  * The views and conclusions contained in the software and\r
35  * documentation are those of the authors and should not be\r
36  * interpreted as representing official policies, either expressed\r
37  * or implied, of GRNET S.A.\r
38  * </copyright>\r
39  * -----------------------------------------------------------------------\r
40  */\r
41 #endregion\r
42 using System.ComponentModel.Composition;\r
43 using System.Diagnostics.Contracts;\r
44 using System.Net;\r
45 using Caliburn.Micro;\r
46 using Pithos.Client.WPF.Configuration;\r
47 \r
48 namespace Pithos.Client.WPF.Preferences\r
49 {\r
50     using System;\r
51     using System.Collections.Generic;\r
52     using System.Linq;\r
53     using System.Text;\r
54 \r
55     [Export(typeof(ProxyAccountViewModel))]\r
56     public class ProxyAccountViewModel:Screen\r
57     {\r
58         public override string DisplayName\r
59         {\r
60             get { return "Proxy Settings"; }\r
61             set\r
62             {\r
63                 base.DisplayName = value;\r
64             }\r
65         }\r
66         private string _userName;\r
67         public string UserName\r
68         {\r
69             get { return _userName; }\r
70             set\r
71             {\r
72                 if (String.IsNullOrWhiteSpace(value))\r
73                     throw new ArgumentNullException();\r
74                 _userName = value;\r
75                 NotifyOfPropertyChange(()=>UserName);\r
76             }\r
77         }\r
78 \r
79         private string _password;        \r
80         public string Password\r
81         {\r
82             get { return _password; }\r
83             set\r
84             {\r
85                 if (String.IsNullOrWhiteSpace(value))\r
86                     throw new ArgumentNullException();\r
87                 _password = value;\r
88                 NotifyOfPropertyChange(()=>Password);\r
89             }\r
90         }\r
91 \r
92         private string _domain;\r
93         public string Domain\r
94         {\r
95             get { return _domain; }\r
96             set\r
97             {\r
98                 _domain = value;\r
99                 NotifyOfPropertyChange(()=>Domain);\r
100             }\r
101         }\r
102 \r
103         public PithosSettings Settings\r
104         {\r
105             get { return _settings; }\r
106             set\r
107             {\r
108                 _settings = value;\r
109                 UserName = _settings.ProxyUsername;\r
110                 Password = _settings.ProxyPassword;\r
111                 Domain = _settings.ProxyDomain;\r
112                 NotifyOfPropertyChange(() => Settings);\r
113             }\r
114         }\r
115 \r
116         private PithosSettings _settings;\r
117 \r
118 \r
119         public ProxyAccountViewModel()\r
120         {\r
121             \r
122         }\r
123 \r
124         public void SaveChanges()\r
125         {\r
126 /*\r
127             Settings.ProxyUsername = UserName;\r
128             Settings.ProxyPassword = Password;\r
129             Settings.ProxyDomain = Domain;\r
130             Settings.UseManualProxy = true;\r
131             Settings.UseDefaultProxy = false;\r
132             Settings.UseNoProxy = false;\r
133             Settings.ProxyAuthentication = true;\r
134 */\r
135             Proxy.SetCredentials(Settings.ProxyUsername, Settings.ProxyPassword, Settings.ProxyDomain);\r
136             this.TryClose(true);            \r
137         }\r
138 \r
139         public void RejectChanges()\r
140         {\r
141             this.TryClose();\r
142         }\r
143     }\r
144 }\r