Ejemplo n.º 1
0
        public async Task EnrichMerchantInformationAsync(IList <Merchant> lstMerchants, RewardNetworkFeedInformation rnFeedInformation)
        {
            string accessToken = GetAccessToken(rnFeedInformation.AuthTokenUrl, rnFeedInformation.ApiKey);

            if (!string.IsNullOrWhiteSpace(accessToken))
            {
                foreach (var newMerchant in lstMerchants)
                {
                    Uri rewardNetworkUri             = new Uri(string.Format(rnFeedInformation.MerchantInfoUrl, newMerchant.PartnerMerchantId));
                    RewardNetworkMerchant rnMerchant = await GetRestaurantInfoAsync(rewardNetworkUri, accessToken).ConfigureAwait(false);

                    if (rnMerchant?.merchantContent?.photos.Count() > 0)
                    {
                        foreach (string imageFileName in rnMerchant.merchantContent.photos)
                        {
                            if (newMerchant.Images == null)
                            {
                                newMerchant.Images = new List <Image>();
                            }
                            newMerchant.Images.Add(new Image
                            {
                                Url    = string.Format(rnFeedInformation.ImageUrl, imageFileName),
                                Status = ImageStatusType.GoodImage
                            });
                        }
                    }
                    if (rnMerchant?.merchantDetails?.cuisines.Count() > 0 && !newMerchant.ExtendedAttributes.ContainsKey(MerchantConstants.RewardNetworkCuisine))
                    {
                        newMerchant.ExtendedAttributes.Add(MerchantConstants.RewardNetworkCuisine,
                                                           string.Join("|", rnMerchant.merchantDetails.cuisines));
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private async Task <RewardNetworkMerchant> GetRestaurantInfoAsync(Uri rewardNetworkUri, string accessToken)
        {
            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
            HttpResponseMessage response = await httpClient.GetAsync(rewardNetworkUri).ConfigureAwait(false);

            string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

            JsonSerializerSettings settings = new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore
            };
            RewardNetworkMerchant rewardNetworkMerchant = JsonConvert.DeserializeObject <RewardNetworkMerchant>(responseContent, settings);

            return(rewardNetworkMerchant);
        }