using System; using TINK.Repository; namespace TINK.Model.Connector { /// <summary>Holds user infromation required for copri related commands/ query operations. </summary> public class BaseLoggedIn : Base { /// <summary>Session cookie used to sign in to copri.</summary> public string SessionCookie { get; } /// <summary> Mail address of the user. </summary> protected string Mail { get; } /// <summary> Object which provides date time info. </summary> protected readonly Func<DateTime> DateTimeProvider; /// <summary>Constructs a copri query object.</summary> /// <param name="p_oCopriServer">Server which implements communication.</param> public BaseLoggedIn(ICopriServerBase p_oCopriServer, string p_strSessionCookie, string p_strMail, Func<DateTime> p_oDateTimeProvider) : base(p_oCopriServer) { if (string.IsNullOrEmpty(p_strSessionCookie)) throw new ArgumentException("Can not instantiate query object- object. Session cookie must never be null or emtpy."); if (string.IsNullOrEmpty(p_strMail)) throw new ArgumentException("Can not instantiate query object- object. Mail address must never be null or emtpy."); DateTimeProvider = p_oDateTimeProvider ?? throw new ArgumentException("Can not instantiate connector- object. No date time provider object available."); SessionCookie = p_strSessionCookie; Mail = p_strMail; } } }