示例#1
0
        private static int GetWebServerAuthorization(RestServiceConsumptionOptions options, HttpContext httpContext)
        {
            var authURI = new StringBuilder();

            authURI.Append(options.AuthorizationURL + "?");
            authURI.Append("response_type=code");
            authURI.Append("&client_id=" + options.ClientId);
            authURI.Append("&redirect_uri=" + options.CallBackUrl);

            if (!string.IsNullOrEmpty(options.Scope))
            {
                authURI.Append("&scope=" + options.Scope);
            }

            //Check it with Salesforce
            authURI.Append("&access_type=" + "offline");

            httpContext.Response.Redirect(authURI.ToString());


            //Object obj = null;
            //do
            //{
            //    Thread.Sleep(500);
            //    obj = httpContext.Session[GetSessionCodeTokenKeyName(serviceName)];
            //} while (obj == null);


            return(1);
        }
        public static DSS5_SupplyChainFinancialsOptimisation.ExternalStructs.GoogleGeocode.Root GeoLocation(string address)
        {
            System.Func <string> getUrl = () =>
            {
                System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
                return("json?address=" + address + "&key=AIzaSyCZs5R7fS9r6xCoilVedcK-Oq-hHk7mzdI");
            };
            var _operationRelativeUrl = getUrl.Invoke().Trim();

            if (_operationRelativeUrl?.StartsWith("/") == true && BaseUrl?.EndsWith("/") == true)
            {
                _operationRelativeUrl = _operationRelativeUrl.TrimStart('/');
            }
            var _targetUrl = BaseUrl + _operationRelativeUrl;
            var _options   = new RestServiceConsumptionOptions
            {
                Url             = _targetUrl,
                Verb            = RestHTTPVerb.GET,
                ExtraHeaderData = new System.Collections.Generic.Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)
                {
                },
                LogAccess        = false,
                IsCachingEnabled = false,
                ApiName          = "GoogleGeocode",
                Operation        = "GeoLocation"
            };
            Func <ServiceConsumptionContainer, DSS5_SupplyChainFinancialsOptimisation.ExternalStructs.GoogleGeocode.Root> _invocation = (_httpResponse) =>
            {
                var _returnedItem = RestServiceConsumer.Consume <DSS5_SupplyChainFinancialsOptimisation.ExternalStructs.GoogleGeocode.Root>(_options, _httpResponse);
                return(zAppDev.DotNet.Framework.Utilities.Common.SafeCast <DSS5_SupplyChainFinancialsOptimisation.ExternalStructs.GoogleGeocode.Root>(_returnedItem));
            };
            var _consumer = new ServiceConsumer <DSS5_SupplyChainFinancialsOptimisation.ExternalStructs.GoogleGeocode.Root>(_invocation);

            return(_consumer.Invoke(_options));
        }
        public static DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.GoogleDirections.DirectionsResponse Directions(float?originLat, float?originLong, float?destinationLat, float?destinationLong)
        {
            System.Func <string> getUrl = () =>
            {
                System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
                return("json?origin=" + originLat.GetValueOrDefault(0) + "," + originLong.GetValueOrDefault(0) + "&destination=" + destinationLat.GetValueOrDefault(0) + "," + destinationLong.GetValueOrDefault(0) + "&key=AIzaSyDn7jvEi9-m-NbaNj8vJjggUCAq7-43hMM");
            };
            var _operationRelativeUrl = getUrl.Invoke().Trim();

            if (_operationRelativeUrl?.StartsWith("/") == true && BaseUrl?.EndsWith("/") == true)
            {
                _operationRelativeUrl = _operationRelativeUrl.TrimStart('/');
            }
            var _targetUrl = BaseUrl + _operationRelativeUrl;
            var _options   = new RestServiceConsumptionOptions
            {
                Url             = _targetUrl,
                Verb            = RestHTTPVerb.GET,
                ExtraHeaderData = new System.Collections.Generic.Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)
                {
                },
                LogAccess        = false,
                IsCachingEnabled = false,
                ApiName          = "GoogleDirections",
                Operation        = "Directions"
            };
            Func <ServiceConsumptionContainer, DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.GoogleDirections.DirectionsResponse> _invocation = (_httpResponse) =>
            {
                var _returnedItem = RestServiceConsumer.Consume <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.GoogleDirections.DirectionsResponse>(_options, _httpResponse);
                return(zAppDev.DotNet.Framework.Utilities.Common.SafeCast <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.GoogleDirections.DirectionsResponse>(_returnedItem));
            };
            var _consumer = new ServiceConsumer <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.GoogleDirections.DirectionsResponse>(_invocation);

            return(_consumer.Invoke(_options));
        }
示例#4
0
        public static OAuth2TokenData GetAuthToken(
            RestServiceConsumptionOptions options,
            string serviceName,
            HttpContext httpContext)
        {
            OAuth2TokenData sessionOAuth2TokenData = null;

            switch (options.oAuth2GrantType)
            {
            case OAuth2GrantType.Password:
                return(GetSessionToken(serviceName, options, httpContext));

            case OAuth2GrantType.WebServer:
                sessionOAuth2TokenData = GetSessionToken(serviceName, options, httpContext);
                if (sessionOAuth2TokenData == null)
                {
                    throw new ApplicationException("sessionAuth2TokenData == null, " + options.oAuth2GrantType);
                }

                return(sessionOAuth2TokenData);

            default:
                throw new ApplicationException("Unknown OAuth2GrantType: " + options.oAuth2GrantType);
            }
        }
示例#5
0
        public static DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.GoogleDistanceMatrixAPI.GoogleDistanceMatrixAPIRoot ETA(string units, string origins, string destinations)
        {
            System.Func <string> getUrl = () =>
            {
                System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
                return("" + "?units=" + units + "&origins=" + origins + "&destinations=" + destinations);
            };
            var _operationRelativeUrl = getUrl.Invoke().Trim();

            if (_operationRelativeUrl?.StartsWith("/") == true && BaseUrl?.EndsWith("/") == true)
            {
                _operationRelativeUrl = _operationRelativeUrl.TrimStart('/');
            }
            var _targetUrl = BaseUrl + _operationRelativeUrl;
            var _options   = new RestServiceConsumptionOptions
            {
                Url             = _targetUrl,
                Verb            = RestHTTPVerb.GET,
                ExtraHeaderData = new System.Collections.Generic.Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)
                {
                },
                LogAccess        = false,
                IsCachingEnabled = false,
                ApiName          = "GoogleDistanceMatrixAPI",
                Operation        = "ETA"
            };
            Func <ServiceConsumptionContainer, DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.GoogleDistanceMatrixAPI.GoogleDistanceMatrixAPIRoot> _invocation = (_httpResponse) =>
            {
                var _returnedItem = RestServiceConsumer.Consume <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.GoogleDistanceMatrixAPI.GoogleDistanceMatrixAPIRoot>(_options, _httpResponse);
                return(zAppDev.DotNet.Framework.Utilities.Common.SafeCast <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.GoogleDistanceMatrixAPI.GoogleDistanceMatrixAPIRoot>(_returnedItem));
            };
            var _consumer = new ServiceConsumer <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.GoogleDistanceMatrixAPI.GoogleDistanceMatrixAPIRoot>(_invocation);

            return(_consumer.Invoke(_options));
        }
示例#6
0
        public static void InitializeTokens(RestServiceConsumptionOptions options, string serviceName)
        {
            var sessionOAuth2TokenData = OAuth2SessionData <OAuth2TokenData> .Get(serviceName);

            switch (options.oAuth2GrantType)
            {
            case OAuth2GrantType.Password:
                if (sessionOAuth2TokenData.Refresh_token == null)
                {
                    OAuth2SessionData <OAuth2TokenData> .Initialize(serviceName);
                }
                else
                {
                    sessionOAuth2TokenData.ForceRefreshToken = true;
                    OAuth2SessionData <OAuth2TokenData> .Set(serviceName, sessionOAuth2TokenData);
                }

                break;

            case OAuth2GrantType.WebServer:
                if (sessionOAuth2TokenData.Refresh_token == null)
                {
                    OAuth2SessionData <OAuth2TokenData> .Initialize(serviceName);

                    OAuth2SessionData <OAuth2Code> .Initialize(serviceName);
                }
                else
                {
                    sessionOAuth2TokenData.ForceRefreshToken = true;
                    OAuth2SessionData <OAuth2TokenData> .Set(serviceName, sessionOAuth2TokenData);
                }

                break;
            }
        }
        public static DSS1_RetailerDriverStockOptimisation.ExternalStructs.Elasticsearch.SearchResponse Search(DSS1_RetailerDriverStockOptimisation.ExternalStructs.Elasticsearch.SearchRequest query, int?hits)
        {
            System.Func <string> getUrl = () =>
            {
                System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
                return("/selis-*/_search?filter_path=hits.total,hits.max_score,hits.hits._id,hits.hits._source&size=" + hits.GetValueOrDefault(0));
            };
            var _operationRelativeUrl = getUrl.Invoke().Trim();

            if (_operationRelativeUrl?.StartsWith("/") == true && BaseUrl?.EndsWith("/") == true)
            {
                _operationRelativeUrl = _operationRelativeUrl.TrimStart('/');
            }
            var _targetUrl = BaseUrl + _operationRelativeUrl;
            var _options   = new RestServiceConsumptionOptions
            {
                Url             = _targetUrl,
                Verb            = RestHTTPVerb.POST,
                SecurityType    = RestSecurityType.BasicAuth,
                UserName        = "******",
                Password        = "******",
                ExtraHeaderData = new System.Collections.Generic.Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)
                {
                },
                LogAccess        = false,
                IsCachingEnabled = false,
                ApiName          = "Elasticsearch",
                Operation        = "Search",
                PostType         = PostType.JSON,
                Data             = query, FormData = new Dictionary <string, object> {
                    { "query", query }
                }
            };
            Func <ServiceConsumptionContainer, DSS1_RetailerDriverStockOptimisation.ExternalStructs.Elasticsearch.SearchResponse> _invocation = (_httpResponse) =>
            {
                var _returnedItem = RestServiceConsumer.Consume <DSS1_RetailerDriverStockOptimisation.ExternalStructs.Elasticsearch.SearchResponse>(_options, _httpResponse);
                return(zAppDev.DotNet.Framework.Utilities.Common.SafeCast <DSS1_RetailerDriverStockOptimisation.ExternalStructs.Elasticsearch.SearchResponse>(_returnedItem));
            };
            var _consumer = new ServiceConsumer <DSS1_RetailerDriverStockOptimisation.ExternalStructs.Elasticsearch.SearchResponse>(_invocation);

            return(_consumer.Invoke(_options));
        }
        public static DSS1_RetailerDriverStockOptimisation.ExternalStructs.XPackML.Results GetAnomaliesOnHits(int?hits, DSS1_RetailerDriverStockOptimisation.ExternalStructs.XPackML.RecordRequest q)
        {
            System.Func <string> getUrl = () =>
            {
                System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
                return("/.ml-anomalies-custom-obapi_hm_resp_hits_per_service/_search?size=" + hits.GetValueOrDefault(0));
            };
            var _operationRelativeUrl = getUrl.Invoke().Trim();

            if (_operationRelativeUrl?.StartsWith("/") == true && BaseUrl?.EndsWith("/") == true)
            {
                _operationRelativeUrl = _operationRelativeUrl.TrimStart('/');
            }
            var _targetUrl = BaseUrl + _operationRelativeUrl;
            var _options   = new RestServiceConsumptionOptions
            {
                Url             = _targetUrl,
                Verb            = RestHTTPVerb.POST,
                SecurityType    = RestSecurityType.BasicAuth,
                UserName        = "******",
                Password        = "******",
                ExtraHeaderData = new System.Collections.Generic.Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)
                {
                },
                LogAccess        = false,
                IsCachingEnabled = false,
                ApiName          = "XPackML",
                Operation        = "GetAnomaliesOnHits",
                PostType         = PostType.JSON,
                Data             = q, FormData = new Dictionary <string, object> {
                    { "q", q }
                }
            };
            Func <ServiceConsumptionContainer, DSS1_RetailerDriverStockOptimisation.ExternalStructs.XPackML.Results> _invocation = (_httpResponse) =>
            {
                var _returnedItem = RestServiceConsumer.Consume <DSS1_RetailerDriverStockOptimisation.ExternalStructs.XPackML.Results>(_options, _httpResponse);
                return(zAppDev.DotNet.Framework.Utilities.Common.SafeCast <DSS1_RetailerDriverStockOptimisation.ExternalStructs.XPackML.Results>(_returnedItem));
            };
            var _consumer = new ServiceConsumer <DSS1_RetailerDriverStockOptimisation.ExternalStructs.XPackML.Results>(_invocation);

            return(_consumer.Invoke(_options));
        }
        public static DSS1_RetailerDriverStockOptimisation.ExternalStructs.Elasticsearch.Status Info()
        {
            System.Func <string> getUrl = () =>
            {
                System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
                return("/");
            };
            var _operationRelativeUrl = getUrl.Invoke().Trim();

            if (_operationRelativeUrl?.StartsWith("/") == true && BaseUrl?.EndsWith("/") == true)
            {
                _operationRelativeUrl = _operationRelativeUrl.TrimStart('/');
            }
            var _targetUrl = BaseUrl + _operationRelativeUrl;
            var _options   = new RestServiceConsumptionOptions
            {
                Url             = _targetUrl,
                Verb            = RestHTTPVerb.GET,
                SecurityType    = RestSecurityType.BasicAuth,
                UserName        = "******",
                Password        = "******",
                ExtraHeaderData = new System.Collections.Generic.Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)
                {
                },
                LogAccess        = false,
                IsCachingEnabled = true,
                ApiName          = "Elasticsearch",
                Operation        = "Info",
                CachePerUser     = false,
                ExpirationMode   = CacheManager.Core.ExpirationMode.None,
                ServerTimeSpan   = 0
            };
            Func <ServiceConsumptionContainer, DSS1_RetailerDriverStockOptimisation.ExternalStructs.Elasticsearch.Status> _invocation = (_httpResponse) =>
            {
                var _returnedItem = RestServiceConsumer.Consume <DSS1_RetailerDriverStockOptimisation.ExternalStructs.Elasticsearch.Status>(_options, _httpResponse);
                return(zAppDev.DotNet.Framework.Utilities.Common.SafeCast <DSS1_RetailerDriverStockOptimisation.ExternalStructs.Elasticsearch.Status>(_returnedItem));
            };
            var _consumer = new ServiceConsumer <DSS1_RetailerDriverStockOptimisation.ExternalStructs.Elasticsearch.Status>(_invocation);

            return(_consumer.Invoke(_options));
        }
        public static DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.Optimizer_Mapotempo.Optimizer_MapotempoRoot submit(DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.Optimizer_Mapotempo.VrpProblem a01VrpSubmit, string api_key)
        {
            System.Func <string> getUrl = () =>
            {
                System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
                return("vrp/submit" + "?api_key=" + api_key);
            };
            var _operationRelativeUrl = getUrl.Invoke().Trim();

            if (_operationRelativeUrl?.StartsWith("/") == true && BaseUrl?.EndsWith("/") == true)
            {
                _operationRelativeUrl = _operationRelativeUrl.TrimStart('/');
            }
            var _targetUrl = BaseUrl + _operationRelativeUrl;
            var _options   = new RestServiceConsumptionOptions
            {
                Url             = _targetUrl,
                Verb            = RestHTTPVerb.POST,
                ExtraHeaderData = new System.Collections.Generic.Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)
                {
                    { "Accept", "application/json" }
                },
                LogAccess        = false,
                IsCachingEnabled = false,
                ApiName          = "Optimizer_Mapotempo",
                Operation        = "submit",
                PostType         = PostType.JSON,
                Data             = a01VrpSubmit, FormData = new Dictionary <string, object> {
                    { "a01VrpSubmit", a01VrpSubmit }
                }
            };
            Func <ServiceConsumptionContainer, DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.Optimizer_Mapotempo.Optimizer_MapotempoRoot> _invocation = (_httpResponse) =>
            {
                var _returnedItem = RestServiceConsumer.Consume <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.Optimizer_Mapotempo.Optimizer_MapotempoRoot>(_options, _httpResponse);
                return(zAppDev.DotNet.Framework.Utilities.Common.SafeCast <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.Optimizer_Mapotempo.Optimizer_MapotempoRoot>(_returnedItem));
            };
            var _consumer = new ServiceConsumer <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.Optimizer_Mapotempo.Optimizer_MapotempoRoot>(_invocation);

            return(_consumer.Invoke(_options));
        }
        public static DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.LocalPubSub.SubscribeResult Subscribe(DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.LocalPubSub.SubRoot subRules)
        {
            System.Func <string> getUrl = () =>
            {
                System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
                return("subscribe");
            };
            var _operationRelativeUrl = getUrl.Invoke().Trim();

            if (_operationRelativeUrl?.StartsWith("/") == true && BaseUrl?.EndsWith("/") == true)
            {
                _operationRelativeUrl = _operationRelativeUrl.TrimStart('/');
            }
            var _targetUrl = BaseUrl + _operationRelativeUrl;
            var _options   = new RestServiceConsumptionOptions
            {
                Url             = _targetUrl,
                Verb            = RestHTTPVerb.POST,
                ExtraHeaderData = new System.Collections.Generic.Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)
                {
                },
                LogAccess        = false,
                IsCachingEnabled = false,
                ApiName          = "LocalPubSub",
                Operation        = "Subscribe",
                PostType         = PostType.JSON,
                Data             = subRules, FormData = new Dictionary <string, object> {
                    { "subRules", subRules }
                }
            };
            Func <ServiceConsumptionContainer, DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.LocalPubSub.SubscribeResult> _invocation = (_httpResponse) =>
            {
                var _returnedItem = RestServiceConsumer.Consume <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.LocalPubSub.SubscribeResult>(_options, _httpResponse);
                return(zAppDev.DotNet.Framework.Utilities.Common.SafeCast <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.LocalPubSub.SubscribeResult>(_returnedItem));
            };
            var _consumer = new ServiceConsumer <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.LocalPubSub.SubscribeResult>(_invocation);

            return(_consumer.Invoke(_options));
        }
        public static DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.Mapotempo.MapotempoRoot geocode(string country, string street, string postcode, string city, string housenumber, string api_key)
        {
            System.Func <string> getUrl = () =>
            {
                System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
                return("geocode" + "?country=" + country + "&street=" + street + "&postcode=" + postcode + "&city=" + city + "&housenumber=" + housenumber + "&api_key=" + api_key);
            };
            var _operationRelativeUrl = getUrl.Invoke().Trim();

            if (_operationRelativeUrl?.StartsWith("/") == true && BaseUrl?.EndsWith("/") == true)
            {
                _operationRelativeUrl = _operationRelativeUrl.TrimStart('/');
            }
            var _targetUrl = BaseUrl + _operationRelativeUrl;
            var _options   = new RestServiceConsumptionOptions
            {
                Url             = _targetUrl,
                Verb            = RestHTTPVerb.GET,
                ExtraHeaderData = new System.Collections.Generic.Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)
                {
                    { "Accept", "application/json" }
                },
                LogAccess        = false,
                IsCachingEnabled = false,
                ApiName          = "Mapotempo",
                Operation        = "geocode"
            };
            Func <ServiceConsumptionContainer, DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.Mapotempo.MapotempoRoot> _invocation = (_httpResponse) =>
            {
                var _returnedItem = RestServiceConsumer.Consume <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.Mapotempo.MapotempoRoot>(_options, _httpResponse);
                return(zAppDev.DotNet.Framework.Utilities.Common.SafeCast <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.Mapotempo.MapotempoRoot>(_returnedItem));
            };
            var _consumer = new ServiceConsumer <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.Mapotempo.MapotempoRoot>(_invocation);

            return(_consumer.Invoke(_options));
        }
示例#13
0
        public static void Continue(string order_id)
        {
            System.Func <string> getUrl = () =>
            {
                System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
                return(null);
            };
            var _operationRelativeUrl = getUrl.Invoke().Trim();

            if (_operationRelativeUrl?.StartsWith("/") == true && BaseUrl?.EndsWith("/") == true)
            {
                _operationRelativeUrl = _operationRelativeUrl.TrimStart('/');
            }
            var _targetUrl = BaseUrl + _operationRelativeUrl;
            var _options   = new RestServiceConsumptionOptions
            {
                Url             = _targetUrl,
                Verb            = RestHTTPVerb.POST,
                ExtraHeaderData = new System.Collections.Generic.Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)
                {
                },
                LogAccess        = false,
                IsCachingEnabled = false,
                ApiName          = "DisruptionAPI",
                Operation        = "Continue",
                PostType         = PostType.JSON
            };
            Func <ServiceConsumptionContainer, object> _invocation = (_httpResponse) =>
            {
                RestServiceConsumer.Consume <object>(_options, _httpResponse);
                return(null);
            };
            var _consumer = new ServiceConsumer <object>(_invocation);

            _consumer.Invoke(_options);
        }
示例#14
0
        public static DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.Router_Mapotempo.Router_MapotempoRoot route(string dimension, string geometry, string motorway, string toll, string max_walk_distance, string currency, string lang, string loc, string api_key)
        {
            System.Func <string> getUrl = () =>
            {
                System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
                return("route" + "?dimension=" + dimension + "&geometry=" + geometry + "&motorway=" + motorway + "&toll=" + toll + "&max_walk_distance=" + max_walk_distance + "&currency=" + currency + "&lang=" + lang + "&loc=" + loc + "&api_key=" + api_key);
            };
            var _operationRelativeUrl = getUrl.Invoke().Trim();

            if (_operationRelativeUrl?.StartsWith("/") == true && BaseUrl?.EndsWith("/") == true)
            {
                _operationRelativeUrl = _operationRelativeUrl.TrimStart('/');
            }
            var _targetUrl = BaseUrl + _operationRelativeUrl;
            var _options   = new RestServiceConsumptionOptions
            {
                Url             = _targetUrl,
                Verb            = RestHTTPVerb.GET,
                ExtraHeaderData = new System.Collections.Generic.Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)
                {
                    { "Accept", "application/json" }
                },
                LogAccess        = false,
                IsCachingEnabled = false,
                ApiName          = "Router_Mapotempo",
                Operation        = "route"
            };
            Func <ServiceConsumptionContainer, DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.Router_Mapotempo.Router_MapotempoRoot> _invocation = (_httpResponse) =>
            {
                var _returnedItem = RestServiceConsumer.Consume <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.Router_Mapotempo.Router_MapotempoRoot>(_options, _httpResponse);
                return(zAppDev.DotNet.Framework.Utilities.Common.SafeCast <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.Router_Mapotempo.Router_MapotempoRoot>(_returnedItem));
            };
            var _consumer = new ServiceConsumer <DSS3_LogisticsPoolingForUrbanDistribution.ExternalStructs.Router_Mapotempo.Router_MapotempoRoot>(_invocation);

            return(_consumer.Invoke(_options));
        }
示例#15
0
        public static OAuth2TokenData GetSessionToken(string serviceName, RestServiceConsumptionOptions options,
                                                      HttpContext httpContext)
        {
            try
            {
                //if (serviceName == null)
                //{
                //    return null;
                //}

                var sessionOAuth2TokenData = OAuth2SessionData <OAuth2TokenData> .Get(serviceName);

                if (sessionOAuth2TokenData != null)
                {
                    if (!sessionOAuth2TokenData.ForceRefreshToken)
                    {
                        return(sessionOAuth2TokenData);
                    }
                }

                var res = 0;
                Dictionary <string, string> dictParams = null;
                var refreshTokenWasUsed = false;
                if (sessionOAuth2TokenData == null)
                {
                    sessionOAuth2TokenData = new OAuth2TokenData();
                    if (options.oAuth2GrantType == OAuth2GrantType.WebServer)
                    {
                        var sessionAuth2Code = OAuth2SessionData <OAuth2Code> .Get(serviceName)?.Code;

                        if (sessionAuth2Code == null)
                        {
                            OAuth2SessionData <OAuth2ReturnUrl> .Set(serviceName,
                                                                     new OAuth2ReturnUrl(zAppDev.DotNet.Framework.Utilities.Web.GetRequestUri().ToString()));

                            var simpleTask = Task.Run(() => { res = GetWebServerAuthorization(options, httpContext); });
                            simpleTask.Wait();

                            return(null);
                        }

                        dictParams = new Dictionary <string, string>
                        {
                            { "grant_type", "authorization_code" },
                            { "code", sessionAuth2Code },
                            { "client_id", options.ClientId },
                            { "client_secret", options.ClientSecret },
                            //{"scope", ""},
                            { "redirect_uri", options.CallBackUrl }
                        };
                    }
                    else if (options.oAuth2GrantType == OAuth2GrantType.Password)
                    {
                        dictParams = new Dictionary <string, string>
                        {
                            { "grant_type", "password" },
                            { "client_id", options.ClientId },
                            { "client_secret", options.ClientSecret },
                            { "username", options.UserName },
                            { "password", options.Password }
                        };
                    }
                }
                else
                {
                    sessionOAuth2TokenData.ForceRefreshToken = false;
                    OAuth2SessionData <OAuth2TokenData> .Set(serviceName, sessionOAuth2TokenData);

                    refreshTokenWasUsed = true;

                    dictParams = new Dictionary <string, string>
                    {
                        { "grant_type", "refresh_token" },
                        { "refresh_token", sessionOAuth2TokenData.Refresh_token },
                        { "client_id", options.ClientId },
                        { "client_secret", options.ClientSecret }
                    };
                }

                var task = Task.Run(async() =>
                {
                    res = await GetOAuth2Token.GetAuthToken(
                        options.AccessTokenUrl,
                        dictParams,
                        sessionOAuth2TokenData);
                });
                task.Wait();


                if (res != 0)
                {
                    if (refreshTokenWasUsed)
                    {
                        OAuth2SessionData <OAuth2TokenData> .Initialize(serviceName);

                        OAuth2SessionData <OAuth2Code> .Initialize(serviceName);
                    }

                    return(null);
                }

                OAuth2SessionData <OAuth2TokenData> .Set(serviceName, sessionOAuth2TokenData);

                return(sessionOAuth2TokenData);
            }
            catch (Exception)
            {
                return(null);
            }
        }