public void Register(bool isTestProfile, string username, string password, string firstName, string lastName, string email, string parentEmail, string languagePreference, string assertedCountry, DateTime?dateOfBirth, IEnumerable <KeyValuePair <IMarketingItem, bool> > marketingAgreements, IEnumerable <ILegalDocument> acceptedLegalDocuments, Action <IRegisterResult> callback) { try { database.ClearServerTimeOffsetMillis(); List <Disney.Mix.SDK.Internal.GuestControllerDomain.MarketingItem> marketing = (from p in marketingAgreements select new Disney.Mix.SDK.Internal.GuestControllerDomain.MarketingItem { code = p.Key.Id, subscribed = p.Value }).ToList(); object obj; if (!dateOfBirth.HasValue) { obj = new BaseRegisterProfile(); } else { RegisterProfile registerProfile = new RegisterProfile(); registerProfile.dateOfBirth = dateOfBirth.Value.ToString("yyyy-MM-dd"); obj = registerProfile; } BaseRegisterProfile baseRegisterProfile = (BaseRegisterProfile)obj; baseRegisterProfile.testProfileFlag = (isTestProfile ? "Y" : "N"); baseRegisterProfile.username = username; baseRegisterProfile.firstName = firstName; baseRegisterProfile.lastName = lastName; baseRegisterProfile.email = email; baseRegisterProfile.parentEmail = parentEmail; baseRegisterProfile.languagePreference = languagePreference; baseRegisterProfile.region = assertedCountry; BaseRegisterProfile profile = baseRegisterProfile; List <string> legalAssertions = (from doc in acceptedLegalDocuments select doc.Id).ToList(); RegisterRequest registerRequest = new RegisterRequest(); registerRequest.password = password; registerRequest.profile = profile; registerRequest.marketing = marketing; registerRequest.legalAssertions = legalAssertions; RegisterRequest request = registerRequest; IGuestControllerClient guestControllerClient = guestControllerClientFactory.Create("NoSwid"); guestControllerClient.Register(request, delegate(GuestControllerResult <LogInResponse> r) { HandleRegisterSuccess(r, marketing, callback); }); } catch (CorruptionException arg) { logger.Fatal("Corruption detected during registration: " + arg); callback(new RegisterCorruptionDetectedResult()); } catch (Exception arg2) { logger.Critical("Unhandled exception: " + arg2); callback(new RegisterResult(success: false, null, null)); } }
public void Reuse(string swid, string accessToken, string refreshToken, string displayName, string proposedDisplayName, string proposedDisplayNameStatus, string firstName, string etag, string ageBand, string accountStatus, string countryCode, Action <IReuseExistingGuestControllerLoginResult> callback) { try { database.ClearServerTimeOffsetMillis(); database.StoreSession(swid, accessToken, refreshToken, displayName, firstName, etag, ageBand, proposedDisplayName, proposedDisplayNameStatus, accountStatus, updateLastProfileRefreshTime: false, countryCode); mixSessionStarter.Start(swid, accessToken, delegate { HandleMixSessionStartSuccess(swid, callback); }, delegate { callback(new ReuseExistingGuestControllerLoginResult(success: false, null)); }); } catch (CorruptionException ex) { logger.Fatal("Corruption detected during session reuse: " + ex); callback(new ReuseExistingGuestControllerLoginCorruptionDetectedResult()); } catch (Exception ex2) { logger.Critical("Unhandled exception: " + ex2); callback(new ReuseExistingGuestControllerLoginResult(success: false, null)); } }
public void RestoreLastSession(Action <IRestoreLastSessionResult> callback) { try { database.ClearServerTimeOffsetMillis(); SessionDocument lastSessionDoc = database.GetLastLoggedInSessionDocument(); if (lastSessionDoc == null) { callback(new RestoreLastSessionNotFoundResult()); } else { IGuestControllerClient guestControllerClient = guestControllerClientFactory.Create(lastSessionDoc.Swid); guestControllerClient.Refresh(delegate(GuestControllerResult <RefreshResponse> r) { if (r.Response == null) { logger.Error("Error refreshing auth token"); callback(new RestoreLastSessionResult(success: false, null)); } else { HandleRefreshSuccess(callback, r, lastSessionDoc); } }); } } catch (CorruptionException arg) { logger.Fatal("Corruption detected during session restoration: " + arg); callback(new RestoreLastSessionCorruptionDetectedResult()); } catch (Exception arg2) { logger.Critical("Unhandled exception: " + arg2); callback(new RestoreLastSessionResult(success: false, null)); } }
public void HandleCorruption(CorruptionException ex) { logger.Fatal("Corruption detected: " + ex); bool recovered = true; foreach (KeyValuePair <object, Action> deleter in deleters) { deleter.Value(); } if (fileSystem.DirectoryExists(sdkStorageDirPath)) { try { fileSystem.DeleteDirectory(sdkStorageDirPath); } catch (Exception ex2) { logger.Fatal("Unable to delete storage directory: " + sdkStorageDirPath + ", " + ex2); recovered = false; } } this.OnCorruptionDetected(this, new CorruptionDetectedEventArgs(recovered)); }
public IInternalOfflineLastSessionResult Create() { try { SessionDocument lastLoggedInSessionDocument = database.GetLastLoggedInSessionDocument(); if (lastLoggedInSessionDocument == null) { return(new OfflineLastSessionNotFoundResult()); } IInternalSession session = sessionFactory.Create(lastLoggedInSessionDocument.Swid); return(new OfflineLastSessionResult(success: true, session)); } catch (CorruptionException arg) { logger.Fatal("Corruption detected during offline session creation: " + arg); return(new OfflineLastSessionCorruptionDetectedResult()); } catch (Exception arg2) { logger.Critical("Error creating session: " + arg2); return(new OfflineLastSessionResult(success: false, null)); } }
private void HandleLoginSuccess(GuestControllerResult <LogInResponse> result, Action <ILoginResult> callback) { try { LogInResponse response = result.Response; LogInData data = response.data; GuestApiErrorCollection gcErrorCollection = response.error; ILoginResult loginResult = GuestControllerErrorParser.GetLoginResult(gcErrorCollection); bool flag = false; string hallPassToken = string.Empty; string swid = string.Empty; if (data != null || loginResult == null) { goto IL_015d; } if (loginResult is ILoginFailedParentalConsentResult) { foreach (GuestApiError error in gcErrorCollection.errors) { TemporaryToken data2 = error.data; if (data2 != null) { flag = true; hallPassToken = data2.accessToken; swid = data2.swid; break; } } if (flag) { goto IL_015d; } callback(loginResult); } else { callback(loginResult); } goto end_IL_0018; IL_015d: if (data == null && !flag) { if (gcErrorCollection != null) { logger.Critical("Received unhandled error exception: " + JsonParser.ToJson(gcErrorCollection)); } callback(new LoginResult(success: false, null)); } else if (flag) { database.StoreSession(swid, hallPassToken, null, null, null, null, null, null, null, null, updateLastProfileRefreshTime: false, null); IGuestControllerClient guestControllerClient = guestControllerClientFactory.Create(swid); ProfileGetter.GetProfile(logger, guestControllerClient, delegate(ProfileData profileData) { if (profileData == null) { database.DeleteSession(swid); callback(new LoginFailedParentalConsentResult()); } else { StoreSession(swid, hallPassToken, null, profileData.etag, profileData.displayName, profileData.profile); HandleRefreshProfileSuccess(callback, loginResult, gcErrorCollection, profileData.profile, profileData.displayName, profileData.marketing, swid, hallPassToken); } }); } else if (!ValidateLogInData(data)) { logger.Critical("Error parsing the login data:" + JsonParser.ToJson(data)); callback(new LoginResult(success: false, null)); } else { Token token = data.token; StoreSession(token.swid, token.access_token, token.refresh_token, data.etag, data.displayName, data.profile); HandleRefreshProfileSuccess(callback, loginResult, gcErrorCollection, data.profile, data.displayName, data.marketing, token.swid, token.access_token); } end_IL_0018 :; } catch (CorruptionException arg) { logger.Fatal("Corruption detected during login: "******"Unhandled exception: " + arg2); callback(new LoginResult(success: false, null)); } }