sharee.bike-App/TINKLib/Model/User/Account/AccountMutable.cs
2021-05-13 20:03:07 +02:00

74 lines
2.2 KiB
C#

using System.Collections.Generic;
namespace TINK.Model.User.Account
{
/// <summary>
/// Holds email address and password.
/// </summary>
public class AccountMutable : IAccount
{
/// <summary>
/// Holds the account data.
/// </summary>
private Account m_oAccount;
/// <summary> Prevents an invalid instance to be created. </summary>
private AccountMutable()
{
}
public AccountMutable(IAccount p_oSource)
{
m_oAccount = new Account(p_oSource);
}
public void Copy(IAccount p_oSource)
{
m_oAccount = new Account(p_oSource);
}
/// <summary>
/// Mail address.
/// </summary>
public string Mail
{
get { return m_oAccount.Mail; }
set { m_oAccount = new Account(value, m_oAccount.Pwd, m_oAccount.SessionCookie, m_oAccount.Group, m_oAccount.DebugLevel); }
}
/// <summary>
/// Password of the account.
/// </summary>
public string Pwd
{
get { return m_oAccount.Pwd; }
set { m_oAccount = new Account(m_oAccount.Mail, value, m_oAccount.SessionCookie, m_oAccount.Group, m_oAccount.DebugLevel); }
}
/// <summary>
/// Session cookie used to sign in to copri.
/// </summary>
public string SessionCookie
{
get { return m_oAccount.SessionCookie; }
set { m_oAccount = new Account(m_oAccount.Mail, m_oAccount.Pwd, value, m_oAccount.Group, m_oAccount.DebugLevel); }
}
/// <summary>
/// Holds the group of the bike (TINK, Konrad, ...).
/// </summary>
public IEnumerable<string> Group
{
get { return m_oAccount.Group; }
}
/// <summary>
/// Debug level used to determine which features are available.
/// </summary>
public Permissions DebugLevel
{
get { return m_oAccount.DebugLevel; }
set { m_oAccount = new Account(m_oAccount.Mail, m_oAccount.Pwd, m_oAccount.SessionCookie, m_oAccount.Group, value); }
}
}
}