private static void CreateDependencies(string guestControllerHostUrl, string guestControllerSpoofedIpAddress, string mixApiHostUrl, string oneIdClientId, string mixClientToken, string clientVersion, ICoroutineManager coroutineManager, IKeychain keychain, AbstractLogger logger, string localStorageDirPath, string languageCode, out ISessionLogin sessionLogin, out ISessionRegister sessionRegister, out ISessionRestorer sessionRestorer, out ISessionReuser sessionReuser, out IOfflineSessionCreator offlineSessionCreator) { SystemStopwatchFactory systemStopwatchFactory = new SystemStopwatchFactory(); SystemWwwFactory wwwFactory = new SystemWwwFactory(); WwwCallFactory wwwCallFactory = new WwwCallFactory(logger, coroutineManager, systemStopwatchFactory, wwwFactory); FileSystem fileSystem = new FileSystem(); DatabaseDirectoryCreator databaseDirectoryCreator = new DatabaseDirectoryCreator(fileSystem, localStorageDirPath); DocumentCollectionFactory documentCollectionFactory = new DocumentCollectionFactory(); string sdkDatabasesDirectory = databaseDirectoryCreator.GetSdkDatabasesDirectory(); DatabaseCorruptionHandler databaseCorruptionHandler = new DatabaseCorruptionHandler(logger, fileSystem, sdkDatabasesDirectory); SystemRandom random = new SystemRandom(); SystemEpochTime epochTime = new SystemEpochTime(); Database database = new Database(keychain.LocalStorageKey, random, epochTime, databaseDirectoryCreator, documentCollectionFactory, databaseCorruptionHandler); MixWebCallQueue webCallQueue = new MixWebCallQueue(); MixSessionStartWebCallEncryptor sessionStartEncryptor = new MixSessionStartWebCallEncryptor(); MixWebCallFactoryFactory mixWebCallFactoryFactory = new MixWebCallFactoryFactory(logger, mixApiHostUrl, mixClientToken, wwwCallFactory, webCallQueue, epochTime, database); NotificationDispatcher notificationDispatcher = new NotificationDispatcher(); NotificationQueue notificationQueue = new NotificationQueue(notificationDispatcher); SessionStatus sessionStatus = new SessionStatus(isPaused: true); NoOpSessionRefresher sessionRefresher = new NoOpSessionRefresher(); JsonWebCallEncryptor webCallEncryptor = new JsonWebCallEncryptor(); IMixWebCallFactory webCallFactory = mixWebCallFactoryFactory.Create(webCallEncryptor, string.Empty, string.Empty, sessionRefresher); RsaEncryptor rsaEncryptor = new RsaEncryptor(); MixEncryptor encryptor = new MixEncryptor(); MixWebCallEncryptorFactory webCallEncryptorFactory = new MixWebCallEncryptorFactory(encryptor); SessionRefresherFactory sessionRefresherFactory = new SessionRefresherFactory(webCallQueue); MixSessionStarter mixSessionStarter = new MixSessionStarter(logger, rsaEncryptor, database, webCallEncryptorFactory, sessionStartEncryptor, mixWebCallFactoryFactory, keychain, coroutineManager, sessionRefresherFactory); IStopwatch pollCountdownStopwatch = systemStopwatchFactory.Create(); GuestControllerClientFactory guestControllerClientFactory = new GuestControllerClientFactory(wwwCallFactory, guestControllerSpoofedIpAddress, database, guestControllerHostUrl, oneIdClientId, logger); SessionFactory sessionFactory = new SessionFactory(logger, coroutineManager, pollCountdownStopwatch, epochTime, databaseCorruptionHandler, notificationQueue, notificationDispatcher, sessionStatus, mixWebCallFactoryFactory, webCallEncryptorFactory, mixSessionStarter, keychain, sessionRefresherFactory, guestControllerClientFactory, random, encryptor, fileSystem, wwwCallFactory, localStorageDirPath, clientVersion, databaseDirectoryCreator, documentCollectionFactory, database); AgeBandBuilder ageBandBuilder = new AgeBandBuilder(logger, webCallFactory); Disney.Mix.SDK.Internal.RegistrationConfigurationGetter registrationConfigurationGetter = new Disney.Mix.SDK.Internal.RegistrationConfigurationGetter(logger, guestControllerClientFactory, ageBandBuilder); LegalMarketingErrorsBuilder legalMarketingErrorsBuilder = new LegalMarketingErrorsBuilder(registrationConfigurationGetter, languageCode, epochTime); sessionLogin = new SessionLogin(logger, guestControllerClientFactory, mixSessionStarter, database, legalMarketingErrorsBuilder, sessionFactory); sessionRegister = new SessionRegister(logger, guestControllerClientFactory, database, mixSessionStarter, sessionFactory); sessionRestorer = new SessionRestorer(logger, guestControllerClientFactory, database, sessionFactory); sessionReuser = new SessionReuser(logger, database, mixSessionStarter, sessionFactory); offlineSessionCreator = new OfflineSessionCreator(logger, sessionFactory, database); }
public RegistrationConfigurationGetter(IKeychain keychain, AbstractLogger logger, string localStorageDirPath, string guestControllerHostUrl, string guestControllerSpoofedIpAddress, string oneIdClientId, ICoroutineManager coroutineManager, string mixApiHostUrl, string mixClientToken) { SystemStopwatchFactory stopwatchFactory = new SystemStopwatchFactory(); SystemWwwFactory wwwFactory = new SystemWwwFactory(); WwwCallFactory wwwCallFactory = new WwwCallFactory(logger, coroutineManager, stopwatchFactory, wwwFactory); JsonWebCallEncryptor webCallEncryptor = new JsonWebCallEncryptor(); FileSystem fileSystem = new FileSystem(); DatabaseDirectoryCreator directoryCreator = new DatabaseDirectoryCreator(fileSystem, localStorageDirPath); DocumentCollectionFactory documentCollectionFactory = new DocumentCollectionFactory(); SystemRandom random = new SystemRandom(); DatabaseCorruptionHandler databaseCorruptionHandler = new DatabaseCorruptionHandler(logger, fileSystem, localStorageDirPath); SystemEpochTime epochTime = new SystemEpochTime(); Database database = new Database(keychain.LocalStorageKey, random, epochTime, directoryCreator, documentCollectionFactory, databaseCorruptionHandler); MixWebCallQueue webCallQueue = new MixWebCallQueue(); NoOpSessionRefresher sessionRefresher = new NoOpSessionRefresher(); MixWebCallFactory webCallFactory = new MixWebCallFactory(logger, mixApiHostUrl, wwwCallFactory, webCallEncryptor, string.Empty, string.Empty, mixClientToken, webCallQueue, sessionRefresher, epochTime, database); AgeBandBuilder ageBandBuilder = new AgeBandBuilder(logger, webCallFactory); GuestControllerClientFactory guestControllerClientFactory = new GuestControllerClientFactory(wwwCallFactory, guestControllerSpoofedIpAddress, database, guestControllerHostUrl, oneIdClientId, logger); registrationConfigurationGetter = new Disney.Mix.SDK.Internal.RegistrationConfigurationGetter(logger, guestControllerClientFactory, ageBandBuilder); }