コード例 #1
0
        protected void PreparePrice(ParentItemDTO parentItemDto)
        {
            var priceService = new PriceService(_dbFactory);
            IList <RateByCountryDTO> allRates = new List <RateByCountryDTO>();

            using (var db = _dbFactory.GetRWDb())
            {
                foreach (var item in parentItemDto.Variations)
                {
                    var rateForMarketplace = RateHelper.GetRatesByStyleItemId(db, item.StyleItemId.Value);

                    var newPrice = priceService.GetMarketPrice(item.CurrentPrice,
                                                               null,
                                                               item.IsPrime,
                                                               item.IsFBA,
                                                               item.Weight,
                                                               (MarketType)item.Market,
                                                               item.MarketplaceId,
                                                               rateForMarketplace);

                    _log.Info("Price changed, SKU=" + item.SKU + ": " + item.CurrentPrice + "=>" + newPrice);
                    item.CurrentPrice = newPrice;
                }
            }
        }
コード例 #2
0
        private decimal?GetNewPrice(IUnitOfWork db, long itemId)
        {
            var itemInfo = db.Items.GetAllViewActual()
                           .Select(i => new
            {
                Id            = i.Id,
                ListingId     = i.ListingEntityId,
                StyleId       = i.StyleId,
                StyleItemId   = i.StyleItemId,
                CurrentPrice  = i.CurrentPrice,
                IsFBA         = i.IsFBA,
                IsPrime       = i.IsPrime,
                Weight        = i.Weight,
                Market        = i.Market,
                MarketplaceId = i.MarketplaceId,
            })
                           .Where(i => i.ListingId == itemId)
                           .FirstOrDefault();

            if (itemInfo == null)
            {
                return(null);
            }

            decimal?sourcePrice = db.Items.GetAllViewActual()
                                  .Where(i => i.MarketplaceId == MarketplaceKeeper.AmazonComMarketplaceId &&
                                         i.StyleItemId == itemInfo.StyleItemId &&
                                         !i.IsFBA &&
                                         !i.IsPrime)
                                  .Select(i => i.CurrentPrice)
                                  .OrderBy(i => i)
                                  .FirstOrDefault();

            if (sourcePrice == null || sourcePrice == 0)
            {
                return(null);
            }

            var priceService = new PriceService(_dbFactory);
            var newPrice     = priceService.GetMarketPrice(sourcePrice.Value,
                                                           null,
                                                           itemInfo.IsPrime,
                                                           itemInfo.IsFBA,
                                                           itemInfo.Weight,
                                                           (MarketType)itemInfo.Market,
                                                           itemInfo.MarketplaceId,
                                                           itemInfo.StyleItemId.Value);

            return(newPrice);
        }