コード例 #1
0
 public AddAccountState()
 {
     VendorInfo          = null;
     AccountData         = null;
     Marketplace         = null;
     Error               = null;
     Model               = null;
     CustomerMarketPlace = null;
 }     // constructor
コード例 #2
0
        private MP_MarketplaceType AddMarketPlaceType(IMarketplaceType databaseMarketPlace)
        {
            var marketPlace = new MP_MarketplaceType {
                InternalId  = databaseMarketPlace.InternalId,
                Description = databaseMarketPlace.Description,
                Name        = databaseMarketPlace.DisplayName
            };

            _marketPlaceRepository.Save(marketPlace);

            return(marketPlace);
        }
コード例 #3
0
        public MP_EbayAmazonCategory[] AddAmazonCategories(IMarketplaceType marketplace, AmazonProductItemBase productItem, ElapsedTimeInfo elapsedTimeInfo, int mpId)
        {
            var categories = new List <MP_EbayAmazonCategory>();

            foreach (AmazonProductCategory amazonProductCategory in productItem.Categories)
            {
                var cat = FindEBayAmazonCategory(marketplace, amazonProductCategory.CategoryId, elapsedTimeInfo, mpId) ?? AddAmazonCategory(marketplace, amazonProductCategory, elapsedTimeInfo, mpId);

                categories.Add(cat);
            }
            _CacheAmazonCategoryByProductKey.TryAdd(productItem.Key, categories.ToArray());

            return(categories.ToArray());
        }
コード例 #4
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
コード例 #5
0
        }         // FindEBayOrderItemInfo

        private MP_EbayAmazonCategory FindCategory(
            IMarketplaceType marketplace,
            eBayCategoryInfo data,
            ElapsedTimeInfo elapsedTimeInfo,
            int mpID
            )
        {
            if (data == null)
            {
                return(null);
            }

            return(Helper.FindEBayAmazonCategory(marketplace, data.CategoryId, elapsedTimeInfo, mpID) ??
                   Helper.AddEbayCategory(marketplace, data, elapsedTimeInfo, mpID));
        }         // FindCategory
コード例 #6
0
        }         // SaveOrUpdateCustomerMarketplace

        public IDatabaseCustomerMarketPlace SaveOrUpdateCustomerMarketplace(
            string displayName,
            IMarketplaceType marketplaceType,
            string password,
            Customer customer
            )
        {
            return(SaveOrUpdateCustomerMarketplace(
                       displayName,
                       marketplaceType,
                       new Encrypted(password),
                       customer,
                       null
                       ));
        }         // SaveOrUpdateCustomerMarketplace
コード例 #7
0
 public IDatabaseCustomerMarketPlace SaveOrUpdateEncryptedCustomerMarketplace(
     string displayName,
     IMarketplaceType marketplaceType,
     IMarketPlaceSecurityInfo securityData,
     Customer customer
     )
 {
     return(SaveOrUpdateCustomerMarketplace(
                displayName,
                marketplaceType,
                new Encrypted(new Serialized(securityData)),
                customer,
                null
                ));
 }         // SaveOrUpdateCEncryptedustomerMarketplace
コード例 #8
0
        private ConcurrentDictionary <string, MP_EbayAmazonCategory> GetCache(IMarketplaceType marketplace)
        {
            ConcurrentDictionary <string, MP_EbayAmazonCategory> cache;

            if (!_CacheEBayamazonCategory.TryGetValue(marketplace, out cache))
            {
                cache = new ConcurrentDictionary <string, MP_EbayAmazonCategory>();

                if (!_CacheEBayamazonCategory.TryAdd(marketplace, cache))
                {
                    _CacheEBayamazonCategory.TryGetValue(marketplace, out cache);
                }
            }

            return(cache);
        }
コード例 #9
0
        }         // SaveOrUpdateCEncryptedustomerMarketplace

        public IDatabaseCustomerMarketPlace SaveOrUpdateCustomerMarketplace(
            string displayName,
            IMarketplaceType marketplaceType,
            IMarketPlaceSecurityInfo securityData,
            Customer customer,
            string amazonMarketPlaceId = null
            )
        {
            return(SaveOrUpdateCustomerMarketplace(
                       displayName,
                       marketplaceType,
                       new Serialized(securityData),
                       customer,
                       amazonMarketPlaceId
                       ));
        }         // SaveOrUpdateCustomerMarketplace
コード例 #10
0
        public MP_EbayAmazonCategory AddEbayCategory(IMarketplaceType marketplace, eBayCategoryInfo data, ElapsedTimeInfo elapsedTimeInfo, int mpId)
        {
            var item = new MP_EbayAmazonCategory
            {
                CategoryId  = data.CategoryId,
                IsVirtual   = data.IsVirtual,
                Name        = data.Name,
                Marketplace = _MarketPlaceRepository.Get(marketplace.InternalId)
            };

            ElapsedTimeHelper.CalculateAndStoreElapsedTimeForCallInSeconds(elapsedTimeInfo, mpId,
                                                                           ElapsedDataMemberType.StoreDataToDatabase,
                                                                           () => _EbayAmazonCategoryRepository.Save(item));

            AddCategoryToCache(marketplace, item);

            return(item);
        }
コード例 #11
0
        private MP_EbayAmazonCategory AddAmazonCategory(IMarketplaceType marketplace, AmazonProductCategory amazonProductCategory, ElapsedTimeInfo elapsedTimeInfo, int mpId)
        {
            var cat = new MP_EbayAmazonCategory {
                CategoryId  = amazonProductCategory.CategoryId,
                Name        = amazonProductCategory.CategoryName,
                Marketplace = _MarketPlaceRepository.Get(marketplace.InternalId),
                Parent      = amazonProductCategory.Parent == null ? null : FindEBayAmazonCategory(marketplace, amazonProductCategory.Parent.CategoryId, elapsedTimeInfo, mpId) ?? AddAmazonCategory(marketplace, amazonProductCategory.Parent, elapsedTimeInfo, mpId)
            };

            AddCategoryToCache(marketplace, cat);

            ElapsedTimeHelper.CalculateAndStoreElapsedTimeForCallInSeconds(elapsedTimeInfo,
                                                                           mpId,
                                                                           ElapsedDataMemberType.StoreDataToDatabase,
                                                                           () => _EbayAmazonCategoryRepository.Save(cat));

            return(cat);
        }
コード例 #12
0
        public MP_EbayAmazonCategory FindEBayAmazonCategory(IMarketplaceType marketplace, string categoryId, ElapsedTimeInfo elapsedTimeInfo, int mpId)
        {
            MP_EbayAmazonCategory value;
            var cache = GetCache(marketplace);

            if (!cache.TryGetValue(categoryId, out value))
            {
                value = ElapsedTimeHelper.CalculateAndStoreElapsedTimeForCallInSeconds(elapsedTimeInfo, mpId,
                                                                                       ElapsedDataMemberType.RetrieveDataFromDatabase,
                                                                                       () => _EbayAmazonCategoryRepository.FindItem(categoryId));

                if (value != null)
                {
                    AddCategoryToCache(marketplace, value);
                }
            }

            return(value);
        }
コード例 #13
0
        }         // SaveOrUpdateCustomerMarketplace

        public IDatabaseCustomerMarketPlace SaveOrUpdateCustomerMarketplace(
            string displayName,
            IMarketplaceType marketplaceType,
            byte[] serializedSecurityData,
            Customer customer,
            string amazonMarketPlaceId = null
            )
        {
            int customerMarketPlaceId;
            var now = DateTime.UtcNow;

            var customerMarketPlace = _CustomerMarketplaceRepository.Get(
                customer.Id,
                marketplaceType.InternalId,
                displayName
                );

            if (customerMarketPlace != null)
            {
                customerMarketPlaceId            = customerMarketPlace.Id;
                customerMarketPlace.SecurityData = serializedSecurityData;
                _CustomerMarketplaceRepository.Update(customerMarketPlace);
            }
            else
            {
                customerMarketPlace = new MP_CustomerMarketPlace {
                    SecurityData      = serializedSecurityData,
                    Customer          = customer,
                    Marketplace       = _MarketPlaceRepository.Get(marketplaceType.InternalId),
                    DisplayName       = displayName,
                    Created           = now,
                    AmazonMarketPlace = amazonMarketPlaceId != null
                                                ? _amazonMarketPlaceTypeRepository.GetByMarketPlaceId(amazonMarketPlaceId)
                                                : null
                };

                customerMarketPlaceId = (int)_CustomerMarketplaceRepository.Save(customerMarketPlace);
            }             // if

            customerMarketPlace.Updated = now;

            return(CreateDatabaseCustomerMarketPlace(customer, marketplaceType, customerMarketPlace, customerMarketPlaceId));
        } // SaveOrUpdateCustomerMarketplace
コード例 #14
0
        }         // FindLastKnownEbayTransactionTime

        private void AddCategoryToCache(IMarketplaceType marketplace, MP_EbayAmazonCategory item)
        {
            var cache = GetCache(marketplace);

            cache.TryAdd(item.CategoryId, item);
        } // AddCategoryToCache
コード例 #15
0
 public AddAccountState()
 {
     Marketplace           = null;
     Error                 = null;
     CustomerMarketPlaceID = 0;
 }     // constructor
コード例 #16
0
 public virtual void SetIMarketplaceType(IMarketplaceType marketplaceType)
 {
     _mpType = marketplaceType;
 }