示例#1
0
        private void HandleRegisterSuccess(GuestControllerResult <LogInResponse> result, IEnumerable <Disney.Mix.SDK.Internal.GuestControllerDomain.MarketingItem> marketing, Action <IRegisterResult> callback)
        {
            IList <IInvalidProfileItemError> profileItemErrors = null;

            try
            {
                if (!result.Success)
                {
                    callback(new RegisterResult(success: false, null, null));
                    return;
                }
                IRegisterResult registerResult = GuestControllerErrorParser.GetRegisterResult(result.Response.error);
                if (registerResult != null)
                {
                    callback(registerResult);
                    return;
                }
                profileItemErrors = GuestControllerErrorParser.GetRegisterProfileItemErrors(result.Response.error);
                if (result.Response.data == null)
                {
                    if (result.Response.error != null && profileItemErrors == null)
                    {
                        logger.Critical("Received unhandled error exception" + JsonParser.ToJson(result.Response.error));
                    }
                    callback(new RegisterResult(success: false, null, profileItemErrors));
                    return;
                }
                LogInData loginData = result.Response.data;
                if (loginData.displayName == null || loginData.etag == null || loginData.profile == null || loginData.token == null || loginData.token.access_token == null)
                {
                    logger.Critical("Invalid login data:" + JsonParser.ToJson(loginData));
                    callback(new RegisterResult(success: false, null, profileItemErrors));
                    return;
                }
                loginData.profile.status = GuestControllerErrorParser.GetAccountStatusCode(result.Response.error, loginData.profile.status);
                string countryCode = GuestControllerUtils.GetCountryCode(loginData.profile);
                database.StoreSession(loginData.token.swid, loginData.token.access_token, loginData.token.refresh_token, loginData.displayName.displayName, loginData.profile.firstName, loginData.etag, loginData.profile.ageBand, loginData.displayName.proposedDisplayName, loginData.displayName.proposedStatus, loginData.profile.status, updateLastProfileRefreshTime: true, countryCode);
                mixSessionStarter.Start(loginData.token.swid, loginData.token.access_token, delegate
                {
                    HandleMixSessionStartSuccess(profileItemErrors, loginData.token.swid, loginData.profile, loginData.displayName, marketing, callback);
                }, delegate
                {
                    callback(new RegisterResult(success: false, null, profileItemErrors));
                });
            }
            catch (CorruptionException ex)
            {
                logger.Fatal("Corruption detected during registration: " + ex);
                callback(new RegisterCorruptionDetectedResult());
            }
            catch (Exception ex2)
            {
                logger.Critical("Unhandled exception: " + ex2);
                callback(new RegisterResult(success: false, null, profileItemErrors));
            }
        }
 private void UpdateProfile(Profile profile)
 {
     if (profile != null)
     {
         DateOfBirth         = GuestControllerUtils.ParseDateTime(logger, profile.dateOfBirth);
         AgeBandKey          = profile.ageBand;
         AgeBandAssumed      = profile.ageBandAssumed;
         Email               = profile.email;
         EmailVerified       = profile.emailVerified;
         FirstName           = profile.firstName;
         LastName            = profile.lastName;
         MiddleName          = profile.middleName;
         ParentEmail         = profile.parentEmail;
         ParentEmailVerified = profile.parentEmailVerified;
         Username            = profile.username;
         LanguagePreference  = profile.languagePreference;
         CountryCode         = GuestControllerUtils.GetCountryCode(profile);
         AccountStatus       = AccountStatusFactory.Create(profile.status);
         IsAdultVerified     = profile.isAdultVerified;
     }
 }
 private static void HandleGetUsersByIdSuccess(AbstractLogger logger, GetUsersResponse response, IList <Profile> profiles, Action <LinkedUser[]> callback)
 {
     try
     {
         if (response.Users == null)
         {
             logger.Critical("Returned users array is null");
             callback(null);
             return;
         }
         Dictionary <Profile, User> profileToUser = new Dictionary <Profile, User>();
         foreach (Profile profile2 in profiles)
         {
             List <User>       users     = response.Users;
             Func <User, bool> predicate = (User u) => profile2.swid == u.UserId;
             User user = users.FirstOrDefault(predicate);
             if (user == null)
             {
                 logger.Critical("Returned users doesn't have " + profile2.swid + ": " + response.Users);
                 callback(null);
                 return;
             }
             profileToUser[profile2] = user;
         }
         LinkedUser[] obj = profiles.Select(delegate(Profile profile)
         {
             DateTime?dateOfBirth    = GuestControllerUtils.ParseDateTime(logger, profile.dateOfBirth);
             AgeBandType ageBand     = AgeBandTypeConverter.Convert(profile.ageBand);
             User user2              = profileToUser[profile];
             DisplayName displayName = new DisplayName(user2.DisplayName);
             return(new LinkedUser(profile.username, profile.firstName, profile.lastName, displayName, profile.email, profile.parentEmail, ageBand, dateOfBirth, profile.swid));
         }).ToArray();
         callback(obj);
     }
     catch (Exception ex)
     {
         logger.Critical("Unhandled exception: " + ex);
         callback(null);
     }
 }
示例#4
0
        private void StoreSession(string swid, string accessToken, string refreshToken, string etag, Disney.Mix.SDK.Internal.GuestControllerDomain.DisplayName displayName, Profile profile)
        {
            string countryCode = GuestControllerUtils.GetCountryCode(profile);

            database.StoreSession(swid, accessToken, refreshToken, displayName.displayName, profile.firstName, etag, profile.ageBand, displayName.proposedDisplayName, displayName.proposedStatus, profile.status, updateLastProfileRefreshTime: true, countryCode);
        }