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