public async Task <IResponse <OrderResponse> > LookUpOrderAsync(OrderCreateOption orderCreateOption, IAccessToken accessToken) { Urls.BaseUrl = _settings.GetConfigSetting <string>(SettingKeys.Integration.DTCM.BaseUrl); IRequestCreateOptions <OrderCreateOption> requestCreateOptions = new RequestCreateOptions <OrderCreateOption>(); requestCreateOptions.Header = new Dictionary <string, string>() { { "Token", $"{accessToken.Token}" } }; requestCreateOptions.UserAgent = "zoonga.com (http://www.zoonga.com/)"; IHttpResponse httpResponse = await HttpWebRequestProviders <OrderCreateOption> .GetBearerWebRequestProvider(string.Format(Urls.LookUpOrder, orderCreateOption.OrderId, orderCreateOption.Seller), requestCreateOptions).ConfigureAwait(false); if (!string.IsNullOrWhiteSpace(httpResponse.Response)) { OrderResponse orderResponse = Mapper <OrderResponse> .MapJsonStringToObject(httpResponse.Response); return(GetResponse(true, orderResponse)); } else { _logger.Log(LogCategory.Error, new Exception("Failed to lookup order", httpResponse.WebException)); } return(GetResponse(false, null)); }
public async Task <IResponse <CustomerResponse> > CreateCustomerAsync(CustomerCreateOption customerCreateOption, AccessToken accessToken) { Urls.BaseUrl = _settings.GetConfigSetting <string>(SettingKeys.Integration.DTCM.BaseUrl); IRequestCreateOptions <CustomerCreateOption> requestCreateOptions = new RequestCreateOptions <CustomerCreateOption>(); requestCreateOptions.Content = customerCreateOption; requestCreateOptions.Header = new Dictionary <string, string>() { { "Token", $"{accessToken.Token}" } }; requestCreateOptions.UserAgent = "zoonga.com (http://www.zoonga.com/)"; IHttpResponse httpResponse = await HttpWebRequestProviders <CustomerCreateOption> .PostBearerWebRequestProvider(Urls.CreateCustomer, requestCreateOptions).ConfigureAwait(false); if (!string.IsNullOrWhiteSpace(httpResponse.Response)) { CustomerResponse customerResponse = Mapper <CustomerResponse> .MapJsonStringToObject(httpResponse.Response); return(GetResponse(true, customerResponse)); } else { _logger.Log(LogCategory.Error, new Exception("Failed to create customer", httpResponse.WebException)); } return(GetResponse(false, null)); }
public async Task <IResponse <TokenResponse> > CreateTokenAsync() { Urls.BaseUrl = _settings.GetConfigSetting <string>(SettingKeys.Integration.DTCM.BaseUrl); TokenCreateOption tokenCreateOptions = new TokenCreateOption(); tokenCreateOptions.grant_type = "client_credentials"; IRequestCreateOptions <TokenCreateOption> requestCreateOptions = new RequestCreateOptions <TokenCreateOption>(); requestCreateOptions.Content = tokenCreateOptions; requestCreateOptions.Accept = "application/vnd.softix.api-v1.0+json"; requestCreateOptions.Header = new Dictionary <string, string>() { { "Auth", $"{_settings.GetConfigSetting<string>(SettingKeys.Integration.DTCM.ClientKey)}:{_settings.GetConfigSetting<string>(SettingKeys.Integration.DTCM.ServerKey)}" } }; requestCreateOptions.UserAgent = "zoonga.com (http://www.zoonga.com/)"; IHttpResponse httpResponse = await HttpWebRequestProviders <TokenCreateOption> .PostWebRequestProviderAsync(Urls.Token, requestCreateOptions).ConfigureAwait(false); if (!string.IsNullOrWhiteSpace(httpResponse.Response)) { TokenResponse token = Mapper <TokenResponse> .MapJsonStringToObject(httpResponse.Response); return(GetResponse(true, token)); } else { _logger.Log(LogCategory.Error, new Exception("Failed to create token", httpResponse.WebException)); } return(GetResponse(false, null)); }
public async Task <IResponse <BasketResponse> > AddOfferBasketAsync(BasketCreateOption basketCreateOption, TokenResponse token) { Urls.BaseUrl = _settings.GetConfigSetting <string>(SettingKeys.Integration.DTCM.BaseUrl); IRequestCreateOptions <BasketCreateOption> requestCreateOptions = new RequestCreateOptions <BasketCreateOption>(); requestCreateOptions.Content = basketCreateOption; requestCreateOptions.Header = new Dictionary <string, string>() { { "Token", $"{token.AccessToken}" } }; requestCreateOptions.UserAgent = "zoonga.com (http://www.zoonga.com/)"; IHttpResponse httpResponse = await HttpWebRequestProviders <BasketCreateOption> .PostBearerWebRequestProvider(string.Format(Urls.AddOffer, basketCreateOption.BasketId), requestCreateOptions).ConfigureAwait(false); if (!string.IsNullOrWhiteSpace(httpResponse.Response)) { BasketResponse basket = Mapper <BasketResponse> .MapJsonStringToObject(httpResponse.Response); return(GetResponse(true, basket)); } else { _logger.Log(LogCategory.Error, new Exception("Failed to add offet to basket", httpResponse.WebException)); } return(GetResponse(false, null)); }
public async Task <IResponse <PerformanceAvailabilityResponse> > PerformanceAvailabilityAsync(PerformanceCreateOption performanceCreateOption) { Urls.BaseUrl = _settings.GetConfigSetting <string>(SettingKeys.Integration.DTCM.BaseUrl); IRequestCreateOptions <PerformanceCreateOption> requestCreateOptions = new RequestCreateOptions <PerformanceCreateOption>(); requestCreateOptions.Header = new Dictionary <string, string>() { { "Token", $"{performanceCreateOption.AccessToken}" } }; requestCreateOptions.UserAgent = "zoonga.com (http://www.zoonga.com/)"; IHttpResponse httpResponse = await HttpWebRequestProviders <PerformanceCreateOption> .GetBearerWebRequestProvider(string.Format(Urls.Availability, performanceCreateOption.PerformanceCode, performanceCreateOption.Channel, performanceCreateOption.SellerCode), requestCreateOptions).ConfigureAwait(false); if (!string.IsNullOrWhiteSpace(httpResponse.Response)) { PerformanceAvailabilityResponse performanceAvailability = Mapper <PerformanceAvailabilityResponse> .MapJsonStringToObject(httpResponse.Response); return(GetResponse(true, performanceAvailability)); } else { _logger.Log(LogCategory.Error, new Exception("Failed to get performance availabilities", httpResponse.WebException)); } return(GetResponse(false, null)); }
public async Task <IResponse <IpApiResponse> > GetUserLocationByIp(string ip) { string baseUrl = "http://ip-api.com/json/" + ip; IRequestCreateOptions <GetRequestCreateOption> requestCreateOptions = new RequestCreateOptions <GetRequestCreateOption>(); IHttpResponse httpResponse = await HttpWebRequestProviders <GetRequestCreateOption> .GetWebRequestProviderAsync(baseUrl, requestCreateOptions).ConfigureAwait(false); if (!string.IsNullOrWhiteSpace(httpResponse.Response)) { IpApiResponse ipApiResponse = Mapper <IpApiResponse> .MapJsonStringToObject(httpResponse.Response); return(GetResponse(true, ipApiResponse)); } else { _logger.Log(LogCategory.Error, new Exception("Failed to get session", httpResponse.WebException)); return(GetResponse(false, null)); } }
public async Task <IResponse <SessionResponse> > GetSession() { Urls.BaseUrl = "https://feelaplace.infiniteanalytics.com/SocialGenomix";//_settings.GetConfigSetting<string>(SettingKeys.Integration.InfiniteAnalytics.BaseUrl); IRequestCreateOptions <GetRequestCreateOption> requestCreateOptions = new RequestCreateOptions <GetRequestCreateOption>(); IHttpResponse httpResponse = await HttpWebRequestProviders <GetRequestCreateOption> .GetWebRequestProviderAsync(Urls.InfiniteAnalytics.Session, requestCreateOptions).ConfigureAwait(false); if (!string.IsNullOrWhiteSpace(httpResponse.Response)) { SessionResponse token = Mapper <SessionResponse> .MapJsonStringToObject(httpResponse.Response); return(GetResponse(true, token)); } else { _logger.Log(LogCategory.Error, new Exception("Failed to get session", httpResponse.WebException)); return(GetResponse(false, null)); } }
public async Task <IResponse <RecommendationResponse> > GetRecommendations(RecommendationModel query) { Urls.BaseUrl = "https://feelaplace.infiniteanalytics.com/SocialGenomix"; IRequestCreateOptions <GetRequestCreateOption> requestCreateOptions = new RequestCreateOptions <GetRequestCreateOption>(); IHttpResponse httpResponse = await HttpWebRequestProviders <GetRequestCreateOption> .GetWebRequestProviderAsync(string.Format(Urls.InfiniteAnalytics.Recommendation, query.SessionId, query.ClientType, query.SitePageType, query.siteProductId, query.Count), requestCreateOptions).ConfigureAwait(false); if (!string.IsNullOrWhiteSpace(httpResponse.Response)) { RecommendationResponse recommendations = Mapper <RecommendationResponse> .MapJsonStringToObject(httpResponse.Response); return(GetResponse(true, recommendations)); } else { _logger.Log(LogCategory.Error, new Exception("Failed to fetch recommendations", httpResponse.WebException)); return(GetResponse(false, null)); } }