public MP_EBayOrderItemDetail SaveEBayOrderItemInfo(EbayDatabaseOrderItemInfo data, ElapsedTimeInfo elapsedTimeInfo, int mpId) { MP_EbayAmazonCategory mpEbayAmazonCategory = null; if (data.PrimaryCategory != null) { mpEbayAmazonCategory = ElapsedTimeHelper.CalculateAndStoreElapsedTimeForCallInSeconds(elapsedTimeInfo, mpId, ElapsedDataMemberType.RetrieveDataFromDatabase, () => _EbayAmazonCategoryRepository.Get(data.PrimaryCategory.Id)); } var item = new MP_EBayOrderItemDetail { ItemID = data.ItemID, PrimaryCategory = mpEbayAmazonCategory, //SecondaryCategory = data.SecondaryCategory == null ? null : _EbayAmazonCategoryRepository.Get( data.SecondaryCategory.Id ), //FreeAddedCategory = data.FreeAddedCategory == null ? null : _EbayAmazonCategoryRepository.Get( data.FreeAddedCategory.Id ), Title = data.Title, }; ElapsedTimeHelper.CalculateAndStoreElapsedTimeForCallInSeconds(elapsedTimeInfo, mpId, ElapsedDataMemberType.StoreDataToDatabase, () => _EBayOrderItemInfoRepository.Save(item)); _CacheEBayOrderItemInfo.TryAdd(item.ItemID, item); return(item); }
} // ConvertToBaseCurrency private MP_EBayOrderItemDetail FindEBayOrderItemInfo( IDatabaseCustomerMarketPlace databaseCustomerMarketPlace, DataProviderCreationInfo info, string itemID, RequestsCounterData requestCounter, ElapsedTimeInfo elapsedTimeInfo ) { if (!this.settings.DownloadCategories) { return(null); } int mpID = databaseCustomerMarketPlace.Id; IMarketplaceType marketplace = databaseCustomerMarketPlace.Marketplace; var eBayItemInfoData = new eBayFindOrderItemInfoData(itemID); var eBayOrderItemInfo = Helper.FindEBayOrderItemInfo(eBayItemInfoData, elapsedTimeInfo, mpID); if (eBayOrderItemInfo == null) { var providerGetItemInfo = new DataProviderGetItemInfo(info); var req = new eBayRequestItemInfoData(eBayItemInfoData); ResultInfoEbayItemInfo ebayItemInfo = ElapsedTimeHelper.CalculateAndStoreElapsedTimeForCallInSeconds( elapsedTimeInfo, mpID, ElapsedDataMemberType.RetrieveDataFromExternalService, () => providerGetItemInfo.GetItem(req) ); requestCounter.Add(ebayItemInfo.RequestsCounter); var newEBayOrderItemInfo = new EbayDatabaseOrderItemInfo { ItemID = ebayItemInfo.ItemID, PrimaryCategory = FindCategory(marketplace, ebayItemInfo.PrimaryCategory, elapsedTimeInfo, mpID), // SecondaryCategory = FindCategory(marketplace, ebayItemInfo.SecondaryCategory, elapsedTimeInfo, mpID), // FreeAddedCategory = FindCategory(marketplace, ebayItemInfo.FreeAddedCategory, elapsedTimeInfo, mpID), Title = ebayItemInfo.Title, }; eBayOrderItemInfo = Helper.SaveEBayOrderItemInfo(newEBayOrderItemInfo, elapsedTimeInfo, mpID); } // if return(eBayOrderItemInfo); } // FindEBayOrderItemInfo