Winify

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 5  →  ?path2? @ 6
/trunk/Servers/Server.cs
@@ -0,0 +1,143 @@
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Xml.Serialization;
using Servers.Annotations;
 
namespace Servers
{
[XmlRoot(ElementName = "Server")]
public class Server : INotifyPropertyChanged
{
#region Public Enums, Properties and Fields
 
[XmlElement(ElementName = "Name")]
public string Name
{
get => _name;
set
{
if (value == _name)
{
return;
}
 
_name = value;
OnPropertyChanged();
}
}
 
[XmlElement(ElementName = "Host")]
public string Host
{
get => _host;
set
{
if (value == _host)
{
return;
}
 
_host = value;
OnPropertyChanged();
}
}
 
[XmlElement(ElementName = "Port")]
public string Port
{
get => _port;
set
{
if (value == _port)
{
return;
}
 
_port = value;
OnPropertyChanged();
}
}
 
[XmlElement(ElementName = "Username")]
public string Username
{
get => _username;
set
{
if (value == _username)
{
return;
}
 
_username = value;
OnPropertyChanged();
}
}
 
[XmlElement(ElementName = "Password")]
public string Password
{
get => _password;
set
{
if (value == _password)
{
return;
}
 
_password = value;
OnPropertyChanged();
}
}
 
#endregion
 
#region Private Delegates, Events, Enums, Properties, Indexers and Fields
 
private string _host;
 
private string _name;
 
private string _password;
 
private string _port;
 
private string _username;
 
#endregion
 
#region Constructors, Destructors and Finalizers
 
[UsedImplicitly]
public Server()
{
}
 
public Server(string name, string host, string port, string username, string password)
{
Name = name;
Host = host;
Port = port;
Username = username;
Password = password;
}
 
#endregion
 
#region Interface
 
public event PropertyChangedEventHandler PropertyChanged;
 
#endregion
 
#region Private Methods
 
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
 
#endregion
}
}