/// <summary> /// Creates NdRestApiFacade instance. /// </summary> /// <param name="userInfo"><see cref="UserInfo"/> instance.</param> /// <returns>NdRestApiFacade instance.</returns> public NdRestApiFacade CreateApiClient(UserInfo userInfo) { var containerWrapper = new FormattersContainerWrapper(); var contentFormattersFactory = new ContentFormattersFactory(containerWrapper); var authenticationStorageAdapter = new InMemoryAuthenticationStorageAdapter(); var clientData = new ClientData(ndHostSettings, authenticationStorageAdapter); var requestBuilderFactory = new RequestBuilderFactory(contentFormattersFactory, clientData); var oauthLocker = new OAuthLocker(); var ndThreadUrlFormatHelper = new NdThreadUrlFormatHelper(); var oauthClientProvider = new OAuthClientProvider(clientData); var oAuth = new OAuth(requestBuilderFactory, oauthClientProvider, contentFormattersFactory); var oAuthFacade = new OAuthFacade(oAuth, clientData, userInfo); oAuthFacade.RefreshTokens(); var clientProvider = new ClientProvider(oAuth, clientData, ndThreadUrlFormatHelper, oauthLocker); // Note: it seems that we are running our tests on a single host. return(restClients.GetOrAdd(userInfo.UserName, new Lazy <NdRestApiFacade>( () => new NdRestApiFacade(RestClientV1Initializer(requestBuilderFactory, clientProvider, contentFormattersFactory), RestClientV2Initializer(requestBuilderFactory, clientProvider, contentFormattersFactory), new CustomRestClient(requestBuilderFactory, clientProvider), oAuthFacade))) .Value); }
/// <summary> /// Creates NdRestApiFacade instance. /// </summary> /// <param name="userInfo"><see cref="UserInfo"/> instance.</param> /// <returns>NdRestApiFacade instance.</returns> public NdRestApiFacade CreateApiClient(UserInfo userInfo) { var oAuthFacade = new OAuthFacade(context.Resolve <IOAuth>(), context.Resolve <IClientData>(), userInfo); oAuthFacade.RefreshTokens(); // Note: it seems that we are running our tests on a single host. return(restClients.GetOrAdd(userInfo.UserName, new Lazy <NdRestApiFacade>( () => new NdRestApiFacade(context.Resolve <IV1Facade>(), context.Resolve <IV2Facade>(), context.Resolve <CustomRestClient>(), oAuthFacade))) .Value); }