Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        }         // 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