Ejemplo n.º 1
0
 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));
     }
 }
Ejemplo n.º 2
0
 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));
     }
 }
Ejemplo n.º 6
0
    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));
        }
    }