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)); } } } }
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); }