/// <summary> /// Sets the user token. /// </summary> /// <param name="userToken">The user token.</param> internal void SetUserToken(UserToken userToken) { this.OnlineContext.SetUserToken(userToken); if (userToken == null) { this.OfflineContext.SetUserToken(userToken); } else { CommerceUserToken commerceUserToken = userToken as CommerceUserToken; if (commerceUserToken != null) { this.OfflineContext.SetUserToken(commerceUserToken.CommerceRuntimeToken); } } }
/// <summary> /// Gets the user token. /// </summary> /// <returns>The user token.</returns> internal UserToken GetUserToken() { UserToken onlineUserToken = this.OnlineContext.GetUserToken(); CommerceRuntimeUserToken offlineToken = this.OfflineContext.GetUserToken() as CommerceRuntimeUserToken; if (onlineUserToken == null) { return(offlineToken); } else if (onlineUserToken is UserIdToken) { CommerceUserToken commerceUserToken = new CommerceUserToken(onlineUserToken as UserIdToken); commerceUserToken.CommerceRuntimeToken = offlineToken; return(commerceUserToken); } else { return(onlineUserToken); } }
/// <summary> /// Sets the user identity. /// </summary> /// <param name="userToken">The user token.</param> internal static void SetUserIdentity(UserToken userToken) { ThrowIf.Null(userToken, "userToken"); CommerceUserToken commerceUserToken = userToken as CommerceUserToken; CommerceRuntimeUserToken runtimeToken = userToken as CommerceRuntimeUserToken; // A user token has to be either a commerce runtime token or a commerce user token which can contain a commerce runtime token, or retail server token or both. if (commerceUserToken == null && runtimeToken == null) { throw new RetailProxy.UserAuthenticationException(SecurityErrors.Microsoft_Dynamics_Commerce_Runtime_InvalidUserToken.ToString(), string.Format("Invalid token type provided {0}.", userToken.GetType())); } runtimeToken = commerceUserToken == null ? runtimeToken : commerceUserToken.CommerceRuntimeToken; if (runtimeToken == null) { throw new RetailProxy.UserAuthenticationException(SecurityErrors.Microsoft_Dynamics_Commerce_Runtime_InvalidUserToken.ToString(), string.Format("The provided commerce runtime token cannot be null.")); } Identity = Newtonsoft.Json.JsonConvert.DeserializeObject <CommerceIdentity>(runtimeToken.Token); }