Ejemplo n.º 1
0
        internal FederatedTokenProvider(Func <ILog> log, ITokenProvider tokenProvider, string rootUrl, string serverUrl, ISerializer serializer = null, string referer = null)
        {
            Guard.AgainstNullArgument("tokenProvider", tokenProvider);
            if (string.IsNullOrWhiteSpace(rootUrl))
            {
                throw new ArgumentNullException("rootUrl", "rootUrl is null.");
            }
            if (string.IsNullOrWhiteSpace(serverUrl))
            {
                throw new ArgumentNullException("serverUrl", "serverUrl is null.");
            }

            Serializer = serializer ?? SerializerFactory.Get();
            Guard.AgainstNullArgument("Serializer", Serializer);

            RootUrl      = rootUrl.AsRootUrl();
            _httpClient  = HttpClientFactory.Get();
            TokenRequest = new GenerateFederatedToken(serverUrl, tokenProvider)
            {
                Referer = referer
            };

            _logger = log() ?? LogProvider.For <FederatedTokenProvider>();
            _logger.DebugFormat("Created new token provider for {0}", RootUrl);
        }
        internal FederatedTokenProvider(Func <ILog> log, ITokenProvider tokenProvider, string rootUrl, string serverUrl, ISerializer serializer = null, string referer = null, Func <HttpClient> httpClientFunc = null)
        {
            if (tokenProvider == null)
            {
                throw new ArgumentNullException(nameof(tokenProvider));
            }

            if (string.IsNullOrWhiteSpace(rootUrl))
            {
                throw new ArgumentNullException(nameof(rootUrl), "rootUrl is null.");
            }

            if (string.IsNullOrWhiteSpace(serverUrl))
            {
                throw new ArgumentNullException(nameof(serverUrl), "serverUrl is null.");
            }

            Serializer = serializer ?? SerializerFactory.Get();

            RootUrl = rootUrl.AsRootUrl();
            var httpFunc = httpClientFunc ?? HttpClientFactory.Get;

            _httpClient  = httpFunc();
            TokenRequest = new GenerateFederatedToken(serverUrl, tokenProvider)
            {
                Referer = referer
            };

            _logger = log() ?? LogProvider.For <FederatedTokenProvider>();
            _logger.DebugFormat("Created new token provider for {0}", RootUrl);
        }