Statistics
| Branch: | Revision:

root / trunk / Pithos.Client.WPF / Preferences / AccountViewModel.cs @ eb81e47d

History | View | Annotate | Download (4.2 kB)

1
#region
2
/* -----------------------------------------------------------------------
3
 * <copyright file="AccountViewModel.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

    
43
using System;
44
using Caliburn.Micro;
45
using Pithos.Interfaces;
46

    
47
namespace Pithos.Client.WPF.Preferences
48
{
49
    /// <summary>
50
    /// ViewModel wrapper for a settings Account object with change notifications
51
    /// </summary>
52
    public class AccountViewModel:PropertyChangedBase
53
    {
54

    
55
        private readonly AccountSettings _account;
56
        
57
        public AccountSettings Account
58
        {
59
            get { return _account; }
60
        }
61

    
62
        public AccountViewModel(AccountSettings account)
63
        {
64
            _account = account;            
65
        }
66

    
67
        public Uri AccountKey
68
        {
69
            get { return new Uri(new Uri(_account.ServerUrl) , _account.AccountName); }
70
        }
71

    
72
        public bool SelectiveSyncEnabled
73
        {
74
            get { return _account.SelectiveSyncEnabled; }
75
            set
76
            {
77
                _account.SelectiveSyncEnabled = value;
78
                NotifyOfPropertyChange(() => SelectiveSyncEnabled);
79
            }
80
        }
81

    
82
        public string AccountName
83
        {
84
            get {
85
                return _account.AccountName;
86
            }
87
            set {
88
                _account.AccountName = value;
89
                NotifyOfPropertyChange(()=>AccountName);
90
            }
91
        }
92

    
93
        public string RootPath
94
        {
95
            get { return _account.RootPath; }
96
            set 
97
            { 
98
                _account.RootPath = value;
99
                NotifyOfPropertyChange(()=>RootPath);
100
            }
101
        }
102

    
103
        public bool IsActive
104
        {
105
            get { return _account.IsActive; }
106
            set
107
            { 
108
                _account.IsActive = value;
109
                NotifyOfPropertyChange(()=>IsActive);
110
            }
111
        }
112

    
113
        public bool IsExpired
114
        {
115
            get { return _account.IsExpired; }
116
            set 
117
            { 
118
                _account.IsExpired = value;
119
                NotifyOfPropertyChange(()=>IsExpired);
120
            }
121
        }
122

    
123
        public string ServerUrl
124
        {
125
            get { return _account.ServerUrl; }
126
            set 
127
            { 
128
                _account.ServerUrl = value;
129
                NotifyOfPropertyChange(()=>ServerUrl);
130
            }
131
        }
132

    
133
        public string ApiKey
134
        {
135
            get { return _account.ApiKey; }
136
            set 
137
            {
138
                _account.ApiKey = value;
139
                IsExpired = false;
140
                NotifyOfPropertyChange(() => ApiKey);
141
            }
142
        }
143

    
144

    
145
    }
146
}