using System; using TINK.Model.Device; using TINK.Repository; namespace TINK.Model.Connector { public class ConnectorFactory { /// /// Gets a connector object depending on whether beein onlin or offline. /// /// /// True if online, false if offline. /// If offline cache connector is returned to avoid performance penalty which would happen when trying to communicate with backend in offline scenario. /// /// Provides app related info (app name and version, merchantid) to pass to COPRI. /// Two letter ISO language name. /// Holds info about smart device. public static IConnector Create( bool isConnected, Uri activeUri, AppContextInfo appContextInfo, string uiIsoLangugageName, string sessionCookie, string mail, ISmartDevice smartDevice = null, TimeSpan? expiresAfter = null) { return isConnected ? new Connector(activeUri, appContextInfo, uiIsoLangugageName, sessionCookie, mail, smartDevice, expiresAfter: expiresAfter) as IConnector : new ConnectorCache(appContextInfo, uiIsoLangugageName, sessionCookie, mail, smartDevice); } } }