public static IEnumerable <IValidateNewAccountError> GetValidationErrors(GuestApiErrorCollection collection) { List <IValidateNewAccountError> list = new List <IValidateNewAccountError>(); foreach (GuestApiError apiError in collection.errors) { if (apiError == null || apiError.code == null) { continue; } KeyValuePair <string, Type> keyValuePair = validationErrors.FirstOrDefault((KeyValuePair <string, Type> p) => p.Key == apiError.code); if (keyValuePair.Key == null) { continue; } if (keyValuePair.Key == "DISALLOWED_VALUE") { string key = registerProfileInputNameErrors.FirstOrDefault((KeyValuePair <string, Type> p) => p.Key == apiError.inputName).Key; if (key != null && key != "profile.username") { continue; } } IValidateNewAccountError item = (IValidateNewAccountError)Activator.CreateInstance(keyValuePair.Value); list.Add(item); } return((list.Count == 0) ? null : list); }
private static TResult GetWorstResult <TResult>(GuestApiErrorCollection errorCollection, List <KeyValuePair <string, Type> > errors) { if (errorCollection == null || errorCollection.errors == null) { return(default(TResult)); } KeyValuePair <string, Type> keyValuePair = errors.LastOrDefault((KeyValuePair <string, Type> p) => errorCollection.errors.Any((GuestApiError e) => e.code == p.Key)); return((keyValuePair.Key == null) ? default(TResult) : ((TResult)Activator.CreateInstance(keyValuePair.Value))); }
private void FindMatches(IAgeBand ageBand, GuestApiErrorCollection errors, Action <BuildLegalMarketingErrorsResult> successCallback, Action failureCallback) { IEnumerable <GuestApiError> source = errors.errors.Where((GuestApiError error) => error.code == "PPU_MARKETING"); IEnumerable <GuestApiError> source2 = errors.errors.Where((GuestApiError error) => error.code == "PPU_LEGAL"); IMarketingItem[] array = source.Select((GuestApiError error) => ageBand.Marketing.FirstOrDefault((IMarketingItem item) => item.Id == error.inputName)).ToArray(); ILegalDocument[] array2 = source2.Select((GuestApiError error) => ageBand.LegalDocuments.FirstOrDefault((ILegalDocument item) => item.Id == error.inputName)).ToArray(); if (array.Any((IMarketingItem item) => item == null) || array2.Any((ILegalDocument item) => item == null)) { failureCallback(); } else { successCallback(new BuildLegalMarketingErrorsResult(array2, array)); } }
public void BuildErrors(ISession session, GuestApiErrorCollection errors, Action <BuildLegalMarketingErrorsResult> successCallback, Action failureCallback) { if (session.LocalUser.RegistrationProfile.CountryCode != null) { registrationConfigurationGetter.Get(session.LocalUser.RegistrationProfile.CountryCode, delegate(IInternalGetRegistrationConfigurationResult r) { HandleGetRegistrationConfiguration(r, session, errors, successCallback, failureCallback); }); } else { registrationConfigurationGetter.Get(delegate(IInternalGetRegistrationConfigurationResult r) { HandleGetRegistrationConfiguration(r, session, errors, successCallback, failureCallback); }); } }
public static string GetAccountStatusCode(GuestApiErrorCollection error, string currentStatusCode) { IRefreshGuestControllerTokenError guestControllerTokenRefreshError = GetGuestControllerTokenRefreshError(error); if (guestControllerTokenRefreshError is IRefreshParentalConsentError) { if (currentStatusCode == "ACTIVE") { return("AWAIT_PARENT_CONSENT"); } } else if (currentStatusCode == "AWAIT_PARENT_CONSENT") { return("ACTIVE"); } return(currentStatusCode); }
public static IList <IInvalidProfileItemError> GetRegisterProfileItemErrors(GuestApiErrorCollection collection) { if (collection == null) { return(null); } List <IInvalidProfileItemError> list = new List <IInvalidProfileItemError>(); foreach (GuestApiError apiError in collection.errors) { if (apiError != null) { if (apiError.inputName != null) { KeyValuePair <string, Type> keyValuePair = registerProfileInputNameErrors.FirstOrDefault((KeyValuePair <string, Type> p) => p.Key == apiError.inputName); if (keyValuePair.Key != null) { object[] args = new object[1] { apiError.developerMessage }; list.Add((IInvalidProfileItemError)Activator.CreateInstance(keyValuePair.Value, args)); } } if (apiError.code != null) { KeyValuePair <string, Type> keyValuePair2 = registerProfileCodeErrors.FirstOrDefault((KeyValuePair <string, Type> p) => p.Key == apiError.code); if (keyValuePair2.Key != null) { object[] args = new object[1] { apiError.developerMessage }; list.Add((IInvalidProfileItemError)Activator.CreateInstance(keyValuePair2.Value, args)); } } } } if (list.Count == 0) { list = null; } return(list); }
private static bool HasErrorCode(GuestControllerWebCallResponse response, params string[] errorCodes) { GuestApiErrorCollection error = response.error; if (error == null) { return(false); } List <GuestApiError> errors = error.errors; if (errors == null || errors.Count == 0) { return(false); } if (errors.Any((GuestApiError e) => e.code != null && !errorCodes.Any((string c) => c == e.code))) { return(false); } return(true); }
public static IRefreshGuestControllerTokenError GetGuestControllerTokenRefreshError(GuestApiErrorCollection error) { return(GetWorstResult <IRefreshGuestControllerTokenError>(error, refreshErrors)); }
public static ISendMultipleAccountsResolutionResult GetResolveMaseResult(GuestApiErrorCollection error) { return(GetWorstResult <ISendMultipleAccountsResolutionResult>(error, resolveMaseErrors)); }
public static ISendNonRegisteredTransactorUpgradeResult GetUpgradeNrtResult(GuestApiErrorCollection error) { return(GetWorstResult <ISendNonRegisteredTransactorUpgradeResult>(error, upgradeNrtErrors)); }
public static ILoginResult GetLoginResult(GuestApiErrorCollection error) { return(GetWorstResult <ILoginResult>(error, loginErrors)); }
public static IRegisterResult GetRegisterResult(GuestApiErrorCollection error) { return(GetWorstResult <IRegisterResult>(error, registerErrors)); }
private void HandleOfflineSessionResumed(IResumeSessionResult result, ISession session, ILoginResult loginResult, GuestApiErrorCollection gcErrorCollection, Action <ILoginResult> callback) { if (!result.Success) { callback(new LoginResult(success: false, null)); } else if (loginResult is ILoginMissingInfoResult) { callback(new LoginMissingInfoResult(success: true, session)); } else if (loginResult is ILoginSecurityUpdateResult) { callback(new LoginSecurityUpdateResult(success: true, session)); } else if (loginResult is ILoginRequiresLegalMarketingUpdateResult) { legalMarketingErrorsBuilder.BuildErrors(session, gcErrorCollection, delegate(BuildLegalMarketingErrorsResult response) { callback(new LoginRequiresLegalMarketingUpdateResult(success: true, session, response.LegalDocuments, response.Marketing)); }, delegate { callback(new LoginResult(success: false, null)); }); } else { callback(new LoginResult(success: true, session)); } }
private void HandleRefreshProfileSuccess(Action <ILoginResult> callback, ILoginResult loginResult, GuestApiErrorCollection gcErrorCollection, Profile profile, Disney.Mix.SDK.Internal.GuestControllerDomain.DisplayName displayName, IEnumerable <Disney.Mix.SDK.Internal.GuestControllerDomain.MarketingItem> marketing, string swid, string accessToken) { mixSessionStarter.Start(swid, accessToken, delegate { HandleMixSessionStartSuccess(callback, loginResult, swid, gcErrorCollection, profile, displayName, marketing); }, delegate { callback(new LoginResult(success: false, null)); }); }
public static IValidateNewAccountResult GetValidateResult(GuestApiErrorCollection error) { return(GetWorstResult <IValidateNewAccountResult>(error, validateErrors)); }
public static IRestoreLastSessionResult GetRestoreLastSessionResult(GuestApiErrorCollection error) { return(GetWorstResult <IRestoreLastSessionResult>(error, restoreErrors)); }
public static IInternalGetRegistrationConfigurationResult GetRegConfigResult(GuestApiErrorCollection error) { return(GetWorstResult <IInternalGetRegistrationConfigurationResult>(error, regConfigErrors)); }
private QueueItem CreateRefreshQueueItem(Action <GuestControllerResult <RefreshResponse> > callback) { Action <GuestControllerResult <RefreshResponse> > failureCallback = delegate(GuestControllerResult <RefreshResponse> r) { callback(new GuestControllerResult <RefreshResponse>(success: false, r.Response, r.ResponseHeaders)); }; QueueItem queueItem = CreateQueueItem("/client/{client-id}/guest/refresh-auth/{refresh-token}", HttpMethod.POST, new EmptyRequest(), GuestControllerAuthenticationType.None, delegate(GuestControllerResult <RefreshResponse> r) { if (!r.Success) { AuthenticationUnavailableEventArgs e = new AuthenticationUnavailableEventArgs(); this.OnAuthenticationLost(this, e); failureCallback(r); } else { GuestApiErrorCollection guestApiErrorCollection = r.Response.error; RefreshData data = r.Response.data; IRefreshGuestControllerTokenError refreshGuestControllerTokenError = GuestControllerErrorParser.GetGuestControllerTokenRefreshError(guestApiErrorCollection); if (refreshGuestControllerTokenError is IRefreshRequiresLegalMarketingUpdateError) { refreshGuestControllerTokenError = null; guestApiErrorCollection = null; this.OnLegalMarketingUpdateRequired(this, new LegalMarketingUpdateRequiredEventArgs()); } if (refreshGuestControllerTokenError is IRefreshTokenGatedLocationError) { logger.Critical("Location gated during Guest Controller token refresh"); AuthenticationLostGatedCountryEventArgs e2 = new AuthenticationLostGatedCountryEventArgs(); this.OnAuthenticationLost(this, e2); failureCallback(r); } else if (refreshGuestControllerTokenError is IRefreshProfileDisabledError || refreshGuestControllerTokenError is IRefreshTemporaryBanError) { logger.Critical("Banned during Guest Controller token refresh"); AccountBannedEventArgs e3 = new AccountBannedEventArgs(logger, null); this.OnAuthenticationLost(this, e3); failureCallback(r); } else if (refreshGuestControllerTokenError != null) { logger.Critical("Guest Controller token refresh error: " + refreshGuestControllerTokenError); AuthenticationRevokedEventArgs e4 = new AuthenticationRevokedEventArgs(); this.OnAuthenticationLost(this, e4); failureCallback(r); } else if (guestApiErrorCollection != null) { logger.Critical("Unhandled error during Guest Controller token refresh: " + JsonParser.ToJson(guestApiErrorCollection)); AuthenticationUnavailableEventArgs e = new AuthenticationUnavailableEventArgs(); this.OnAuthenticationLost(this, e); failureCallback(r); } else if (data == null || data.token == null || data.token.access_token == null || data.token.refresh_token == null) { logger.Critical("Refreshing Guest Controller token returned invalid refresh data: " + JsonParser.ToJson(data)); AuthenticationUnavailableEventArgs e = new AuthenticationUnavailableEventArgs(); this.OnAuthenticationLost(this, e); failureCallback(r); } else { Token token = data.token; database.UpdateGuestControllerToken(token, data.etag); this.OnAccessTokenChanged(this, new GuestControllerAccessTokenChangedEventArgs(token.access_token)); callback(r); } } }); queueItem.RefreshedAccessToken = true; return(queueItem); }
public static IVerifyAdultResult GetVerifyAdultResult(GuestApiErrorCollection error) { return(GetWorstResult <IVerifyAdultResult>(error, verifyAdultErrors)); }
private void HandleMixSessionStartSuccess(Action <ILoginResult> callback, ILoginResult loginResult, string swid, GuestApiErrorCollection gcErrorCollection, Profile profile, Disney.Mix.SDK.Internal.GuestControllerDomain.DisplayName displayName, IEnumerable <Disney.Mix.SDK.Internal.GuestControllerDomain.MarketingItem> marketing) { try { IInternalSession session = sessionFactory.Create(swid); IInternalLocalUser internalLocalUser = session.InternalLocalUser; internalLocalUser.InternalRegistrationProfile.Update(profile, displayName, marketing); session.Resume(delegate(IResumeSessionResult r) { HandleOfflineSessionResumed(r, session, loginResult, gcErrorCollection, callback); }); } catch (Exception arg) { logger.Critical("Error creating session: " + arg); callback(new LoginResult(success: false, null)); } }
public static ILinkChildResult GetLinkChildResult(GuestApiErrorCollection error) { return(GetWorstResult <ILinkChildResult>(error, linkChildErrors)); }
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)); } }
public static IPermissionResult GetPermissionResult(GuestApiErrorCollection error) { return(GetWorstResult <IPermissionResult>(error, permissionErrors)); }
private void HandleGetRegistrationConfiguration(IInternalGetRegistrationConfigurationResult result, ISession session, GuestApiErrorCollection errors, Action <BuildLegalMarketingErrorsResult> successCallback, Action failureCallback) { IInternalRegistrationConfiguration internalConfiguration = result.InternalConfiguration; if (!result.Success || internalConfiguration == null) { session.Dispose(); failureCallback(); return; } int age = CalculateAge(session.LocalUser.RegistrationProfile.DateOfBirth); internalConfiguration.GetUpdateAgeBand(session.LocalUser.RegistrationProfile.AgeBandKey, age, languagePreference, delegate(IGetAgeBandResult bandResult) { if (!bandResult.Success) { session.Dispose(); failureCallback(); } else { FindMatches(bandResult.AgeBand, errors, successCallback, failureCallback); } }); }
public static ISendUsernameRecoveryResult GetRecoverUsernameResult(GuestApiErrorCollection error) { return(GetWorstResult <ISendUsernameRecoveryResult>(error, recoverUsernameErrors)); }
private void HandleRefreshSuccess(Action <IRestoreLastSessionResult> callback, GuestControllerResult <RefreshResponse> result, SessionDocument lastSessionDoc) { try { GuestApiErrorCollection error2 = result.Response.error; RefreshData data = result.Response.data; IRestoreLastSessionResult error = GuestControllerErrorParser.GetRestoreLastSessionResult(error2); if (data == null && error != null) { if (error is IRestoreLastSessionFailedInvalidOrExpiredTokenResult && lastSessionDoc.AccountStatus == "AWAIT_PARENT_CONSENT") { callback(new RestoreLastSessionFailedParentalConsentResult()); } else { callback(error); } return; } if (data == null) { if (error2 != null) { logger.Critical("Received unhandled error exception:\n" + JsonParser.ToJson(error2) + "\nResponse headers:\n" + string.Join("\n", result.ResponseHeaders.Select((KeyValuePair <string, string> h) => h.Key + ": " + h.Value).ToArray())); } callback(new RestoreLastSessionResult(success: false, null)); return; } if (!ValidateRefreshData(data)) { logger.Critical("Error parsing the refresh data: " + JsonParser.ToJson(data)); callback(new RestoreLastSessionResult(success: false, null)); return; } Token token = data.token; lastSessionDoc.GuestControllerAccessToken = token.access_token; lastSessionDoc.GuestControllerEtag = data.etag; database.UpdateGuestControllerToken(token, data.etag); try { IInternalSession session = sessionFactory.Create(lastSessionDoc.Swid); session.Resume(delegate(IResumeSessionResult r) { HandleOfflineSessionResumed(r, session, error, callback); }); } catch (Exception ex) { logger.Critical("Error creating session: " + ex); callback(new RestoreLastSessionResult(success: false, null)); } } catch (CorruptionException ex2) { logger.Fatal("Corruption detected during session restoration: " + ex2); callback(new RestoreLastSessionCorruptionDetectedResult()); } catch (Exception ex) { logger.Critical("Unhandled exception: " + ex); callback(new RestoreLastSessionResult(success: false, null)); } }
public static ISendPasswordRecoveryResult GetRecoverPasswordResult(GuestApiErrorCollection error) { return(GetWorstResult <ISendPasswordRecoveryResult>(error, recoverPasswordErrors)); }