Example #1
0
        //StockStatusgetStoreName
        public static List <StockStatus> StockStatusgetStoreName(string SubName, string StoreName, int index, int count)
        {
            string sql = "";

            sql = string.Format(@"select top {0} h.HouseName,t.SubareaName ,p.ProductsName,p.ProductsID,p.UpperLimit,p.LowerLimit,
p.Cost ,d.Num from t_Products  p , t_ProductsStock d ,t_StoreHouse h ,t_StoreHouseDetail t where
p.ProductsID=d.ProductsID and t.HouseID=h.HouseID and t.ID= d.HouseDetailID and p.ProductsID not
               in(select top {1} P.ProductsID from  t_Products  p , t_ProductsStock d ,t_StoreHouse h ,t_StoreHouseDetail t where
p.ProductsID=d.ProductsID and t.HouseID=h.HouseID and t.ID= d.HouseDetailID order by P.ProductsID) and SubareaName='{2}'  and HouseName='{3}'  order by P.ProductsID
                 ", count, (index - 1) * count, SubName, StoreName);
            DataTable          dt   = DBHelper.GetDatatable(sql);
            List <StockStatus> list = new List <StockStatus>();

            foreach (DataRow item in dt.Rows)
            {
                StockStatus e = new StockStatus();
                e.Cost        = Convert.ToInt32(item["Cost"]);
                e.downlimit   = Convert.ToInt32(item["LowerLimit"]);
                e.HouseName   = item["HouseName"].ToString();
                e.SubareaName = item["SubareaName"].ToString();
                e.productID   = Convert.ToInt32(item["ProductsID"]);
                e.ProductName = item["ProductsName"].ToString();
                e.num         = Convert.ToInt32(item["num"]);
                list.Add(e);
            }
            return(list);
        }
Example #2
0
        private StockStatus ProcessStockChecking(ICollection <LineItem> lineItems)
        {
            StockStatus status = new StockStatus();

            foreach (var item in lineItems)
            {
                Product product = _productRepository.Return(item.ProductId);

                if (product != null)
                {
                    // We assume that if a product is found, we can almost be certain that other related entities are available.
                    var brand = _brandRepository.Return(product.BrandId);
                    var price = _productPriceRepository.Return(item.ProductPriceId);

                    if (price.Stock <= 0)
                    {
                        status.IsOutOfStock = true;

                        // EnforceStockCount priority Brand < Product. Product has higher priority (final say) than Brand.
                        if (product.EnforceStockCount || (!product.EnforceStockCount && brand.EnforceStockCount))
                        {
                            status.CartItemIdList.Add(item.Id);
                            status.HasOutOfStockItem = true;
                        }
                    }
                }
                else
                {
                    status.CartItemIdList.Add(item.Id);
                    status.HasOutOfStockItem = true;
                }
            }

            return(status);
        }
 public RegionStockStatusChangedV1(string region, int variantId, StockStatus status, DateTime version)
 {
     Region    = region;
     VariantId = variantId;
     Status    = status;
     Version   = version;
 }
        public ActionResult DeleteConfirmed(int id)
        {
            StockStatus stockStatus = db.StockStatuses.Find(id);

            db.StockStatuses.Remove(stockStatus);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "StockStatusID,Name")] StockStatus stockStatus)
 {
     if (ModelState.IsValid)
     {
         db.Entry(stockStatus).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(stockStatus));
 }
 public RefreashedEventArgs(double currentValue, double lastValue, StockStatus status, ExchangeStatus decision,
                            double currentBTC, double currentJPY)
 {
     this.currentValue = currentValue;
     this.lastValue    = lastValue;
     this.status       = status;
     this.decision     = decision;
     this.currentBTC   = currentBTC;
     this.currentJPY   = currentJPY;
 }
Example #7
0
 public ActionResult Create(StockStatus StockStatuses)
 {
     using (var db = new TupperwareContext())
     {
         db.StockStatuses.Add(StockStatuses);
         db.SaveChanges();
     }
     Session["Message"] = "El estado de publicación fue guardado exitosamente";
     return(RedirectToAction("Index"));
 }
Example #8
0
 public ActionResult Edit(StockStatus StockStatuses)
 {
     using (var db = new TupperwareContext())
     {
         var PublicationStatusToEdit = db.StockStatuses.Find(StockStatuses.StockStatusId);
         db.Entry(PublicationStatusToEdit).CurrentValues.SetValues(StockStatuses);
         db.SaveChanges();
     }
     return(RedirectToAction("Index"));
 }
        public ActionResult Create([Bind(Include = "StockStatusID,Name")] StockStatus stockStatus)
        {
            if (ModelState.IsValid)
            {
                db.StockStatuses.Add(stockStatus);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(stockStatus));
        }
        // GET: Category/Create
        public ActionResult Create(StockStatus model, int pageNo = 1)
        {
            if (ModelState.IsValid)
            {
                //model.Code = AutoNumberHelper.GenerateNumber(ObjectType.Category, db);
                db.StockStatuses.Add(model);
                db.SaveChanges();
            }

            return(RedirectToAction("Index", new { PageNo = pageNo }));
        }
Example #11
0
        public void InitStockStatusWithString_BasicTest()
        {
            var text        = @"jQuery183020675270035713877_1515211248785({""code"":""600000"",""name"":""浦发银行"",""topprice"":""13.93"",""bottomprice"":""11.39"",""fivequote"":{""yesClosePrice"":""12.66"",""openPrice"":""12.67"",""sale1"":""12.69"",""sale2"":""12.70"",""sale3"":""12.71"",""sale4"":""12.72"",""sale5"":""12.73"",""buy1"":""12.68"",""buy2"":""12.67"",""buy3"":""12.66"",""buy4"":""12.65"",""buy5"":""12.64"",""sale1_count"":3484,""sale2_count"":4947,""sale3_count"":5534,""sale4_count"":4508,""sale5_count"":4386,""buy1_count"":2564,""buy2_count"":3541,""buy3_count"":2431,""buy4_count"":4124,""buy5_count"":2337},""realtimequote"":{""open"":""12.67"",""high"":""12.71"",""low"":""12.62"",""avg"":""12.67"",""zd"":""0.03"",""zdf"":""0.24%"",""turnover"":""0.11%"",""currentPrice"":""12.69"",""volume"":""310267"",""amount"":""393058256"",""wp"":""146164"",""np"":""164104"",""time"":""15:10:45""}});";
            var stockStatus = new StockStatus(text);

            Assert.AreEqual("600000", stockStatus.Code);
            Assert.AreEqual("浦发银行", stockStatus.Name);
            Assert.AreEqual(13.93, stockStatus.TopPrice);
            Assert.AreEqual(11.39, stockStatus.BottomPrice);
            Assert.AreEqual(12.69, stockStatus.CurrentPrice);
        }
Example #12
0
 public void SetMemberValue(double upthreshold = 0, double downThreshold = 0, StockStatus status  = StockStatus.noStatus,
                            double peakVaule   = 0, double trougValue    = 0, double currentValue = 0, double lastValue = 0)
 {
     PeakValue     = peakVaule;
     TroughVaule   = trougValue;
     CurrentValue  = currentValue;
     LastValue     = lastValue;
     UpThreshold   = upthreshold;
     DownThreshold = downThreshold;
     Status        = status;
 }
        /// <summary>
        /// Gets the name of the product stock status.
        /// </summary>
        /// <param name="status">The status.</param>
        /// <returns>A stock status localizable name from the site content</returns>
        public static string GetProductStockStatusName(StockStatus status)
        {
            if (status == null)
            {
                return(string.Empty);
            }

            Item lookupItem = null;

            return(Lookup(StorefrontConstants.KnowItemNames.InventoryStatuses, status.Name, out lookupItem, true));
        }
Example #14
0
        private TransactionOutput ProcessPaymentForOrder(Order order, PaymentEntity paymentEntity, bool sendEmailFlag)
        {
            if (order == null)
            {
                return(new TransactionOutput
                {
                    Message = "Sorry, it is failed to create an order."
                });
            }

            // Check if there is any item in basket
            if (order.LineItemCollection.Count == 0)
            {
                return(new TransactionOutput
                {
                    Message = "Sorry, there is no available item."
                });
            }

            // Stock checking
            StockStatus stockStatus = ProcessStockChecking(order.LineItemCollection);

            if (stockStatus.HasOutOfStockItem)
            {
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < stockStatus.CartItemIdList.Count; i++)
                {
                    var item = _lineItemRepository.Return(stockStatus.CartItemIdList[i]);
                    sb.AppendFormat("- {0}<br/>", item.Name);
                }

                return(new TransactionOutput {
                    Message = "Sorry, items below are out of stock.<br/>" + sb.ToString(),
                    StockStatus = stockStatus
                });
            }

            _paymentSystem.InsertPaymentEntity(paymentEntity);

            // If there is stock alert, process payment entity accordingly
            if (stockStatus.IsOutOfStock)
            {
                paymentEntity = _paymentSystem.UpdateAndGetPaymentEntityForOutOfStock(paymentEntity.Id);
            }

            // Process card payment
            var output = _paymentSystem.ProcessCardPayment(order, paymentEntity);

            // Process transaction output
            output = ProcessPaymentOutputForOrder(order, output, sendEmailFlag);

            return(output);
        }
Example #15
0
        public string GetStockStatus(Stream Parameterdetails)
        {
            string JsonStringForSerialized = "";

            try
            {
                StockStatus objStockStatus = new StockStatus();
                JsonStringForSerialized = objStockStatus.GetStockStatus(Parameterdetails);
            }
            catch { }
            return(JsonStringForSerialized);
        }
Example #16
0
        public async Task <StockStatus> GetStockStatusAsync(int sku)
        {
            StockStatus stockStatus = null;

            using (var client = this.CreateHttpClient())
            {
                var result = await client.GetStringAsync(StockserviceUrlBase + sku);

                stockStatus = JsonConvert.DeserializeObject <StockStatus>(result);
            }

            return(stockStatus);
        }
Example #17
0
        public async Task <StockStatus> GetStockStatusAsync(int sku)
        {
            StockStatus stockStatus = null;

            using (HttpClient client = this.CreateHttpClient())
            {
                var result = await client.GetStringAsync(STOCKSERVICE_URL_BASE + sku.ToString());

                stockStatus = JsonConvert.DeserializeObject <StockStatus>(result);
            }

            return(stockStatus);
        }
Example #18
0
 public VendingMachine(IVendingMachineManager manager, Currency currency, uint maxCapacityPerProduct)
 {
     ProfitHelper = this.WhenAnyValue(x => x.Income, x => x.Expenses, (income, expenses) => income - expenses).ToProperty(source: this, property: x => x.Profit);
     StockStatus.SubscribeMany((_) => UpdateProfitExcludingCurrentStockOutlaySubscriptionFactory());
     this.ObservableForProperty(x => x.Profit).Subscribe(x => UpdateProfitExcludingCurrentStockOutlay());
     Currency = currency;
     MaxCapacityPerProduct = maxCapacityPerProduct;
     this.manager          = manager;
     //No need to worry about null because of C# 8.0.
     //   (It would be caught at compile-time)
     //To have IVendingMachineOperator be nullable,
     //I'd have to declare it as IVendingMachineOperator?
     this.manager.SetupVendingMachine(_stock.AsObservableCache()).Subscribe(StockProduct);
 }
        // GET: StockStatus/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            StockStatus stockStatus = db.StockStatuses.Find(id);

            if (stockStatus == null)
            {
                return(HttpNotFound());
            }
            return(View(stockStatus));
        }
Example #20
0
 public Stock(ISession session, Product product, Address address, StockStatus status, decimal?retailCost = null)
 {
     Timestamp = DateTime.Now;
     Product   = session.Load <Catalog>(product.CatalogId).FullName;
     Address   = address;
     ProductId = product.Id;
     CatalogId = product.CatalogId;
     Status    = status;
     if (status == StockStatus.Available)
     {
         Debug.Assert(retailCost != null);
     }
     RetailCost     = retailCost;
     Quantity       = 1;
     SupplyQuantity = 1;
 }
Example #21
0
        public void LogStockStatus(Store store, StockStatus status)
        {
            Console.Write($"  - {store.Name}: ");
            switch (status)
            {
            case StockStatus.InStock:
                LogInStock();
                break;

            case StockStatus.OutOfStock:
                LogOutOfStock();
                break;

            default:
                LogUnknownStock();
                break;
            }
Example #22
0
        /*走势监控
         * 根据升跌状态来调整最高价和最低价
         * 同时判断升跌装填
         * */
        private Boolean trendContain()
        {
            StockStatus lastStatus = Status;

            if (CurrentValue >= LastValue)
            {
                if (Status == StockStatus.noStatus)
                {
                    Status = StockStatus.up;
                }
                else if (Status == StockStatus.down && (CurrentValue - TroughVaule) / TroughVaule > UpThreshold)
                {
                    Status    = StockStatus.up;
                    PeakValue = CurrentValue;
                }
                else if (Status == StockStatus.up && CurrentValue > PeakValue)
                {
                    PeakValue = CurrentValue;
                }
            }
            else
            {
                if (Status == StockStatus.noStatus)
                {
                    Status = StockStatus.down;
                }
                else if (Status == StockStatus.up && (PeakValue - CurrentValue) / PeakValue > DownThreshold)
                {
                    Status      = StockStatus.down;
                    TroughVaule = CurrentValue;
                }
                else if (Status == StockStatus.down && CurrentValue < TroughVaule)
                {
                    TroughVaule = CurrentValue;
                }
            }

            if (lastStatus != StockStatus.noStatus && Status != lastStatus)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        /// <summary>
        /// Gets the name of the product stock status.
        /// </summary>
        /// <param name="status">The status.</param>
        /// <returns>Aa stock status localizable name from the site content</returns>
        public static string GetProductStockStatusName(StockStatus status)
        {
            if (status == null)
            {
                return(string.Empty);
            }

            string contentStartPath = CurrentStorefront.GlobalItem.Axes.GetItem(string.Concat(StorefrontConstants.KnowItemNames.Lookups, "/", StorefrontConstants.KnowItemNames.InventoryStatuses)).Paths.Path;
            string statusPath       = contentStartPath + "/" + status.Name;

            Item inventoryItem = Sitecore.Context.Database.GetItem(statusPath);

            if (inventoryItem == null)
            {
                return(status.Name);
            }

            return(inventoryItem[StorefrontConstants.KnownFieldNames.Value]);
        }
Example #24
0
        private void HandleStockNotifications(StockStatus status, ProductListing listing)
        {
            switch (status)
            {
            case StockStatus.InStock when MinutesSinceLastSeenInStock() > 10:
                listing.LastSeenInStock = DateTime.Now;

                _logger.LogListingUrl(listing);
                Alert.WithBeeps();
                break;

            case StockStatus.Unknown when _ignoreErrors == false:
                Alert.WithBeeps();
                break;
            }

            double MinutesSinceLastSeenInStock() =>
            DateTime.Now.Subtract(listing.LastSeenInStock).TotalMinutes;
        }
        // GET: Category
        public ActionResult Index(int pageNo = 1, int id = 0, string searchString = "")
        {
            var cate = from s in db.StockStatuses
                       select s;

            if (!String.IsNullOrEmpty(searchString))
            {
                cate = cate.Where(s => s.Text.Contains(searchString));
            }

            var model = new StockStatus();

            if (id > 0)
            {
                model = db.StockStatuses.Find(id);
            }
            BindList(pageNo, cate.ToList());
            //ViewBag.Types = new SelectList(new[] { new { Id = 1, Text = "Nhập" }, new { Id = 2, Text = "Xuất" } }.ToList(), "Id", "Text", model.Type);
            return(View(model));
        }
 // GET: Category/Edit/5
 public ActionResult Edit(StockStatus model, int pageNo = 1)
 {
     db.Entry(model).State = EntityState.Modified;
     db.SaveChanges();
     return(RedirectToAction("Index", new { PageNo = pageNo }));
 }
        /// <summary>
        /// Gets the name of the product stock status.
        /// </summary>
        /// <param name="status">The status.</param>
        /// <returns>Aa stock status localizable name from the site content</returns>
        public static string GetProductStockStatusName(StockStatus status)
        {
            if (status == null)
            {
                return string.Empty;
            }

            string contentStartPath = CurrentStorefront.GlobalItem.Axes.GetItem(string.Concat(StorefrontConstants.KnowItemNames.Lookups, "/", StorefrontConstants.KnowItemNames.InventoryStatuses)).Paths.Path;
            string statusPath = contentStartPath + "/" + status.Name;

            Item inventoryItem = Sitecore.Context.Database.GetItem(statusPath);
            if (inventoryItem == null)
            {
                return status.Name;
            }

            return inventoryItem[StorefrontConstants.KnownFieldNames.Value];
        }
Example #28
0
        public async Task <KeyValuePair <IEnumerable <ChinaStock>, IEnumerable <SecurityProviderInfo> > > GetChinaStocksAsync(Exchange?exchange = null, StockStatus stockStatus = StockStatus.Listing)
        {
            CoreApi client = new CoreApi
            {
                Token = token
            };
            var response = client.stock_basic(null, stockStatus, exchange);

            if (response.Code == 0)
            {
                var stocks = response.ChinaStocks;
                ObservableCollection <SecurityProviderInfo> securityProviderInfos = new ObservableCollection <SecurityProviderInfo>();
                foreach (var stock in stocks)
                {
                    securityProviderInfos.Add(new SecurityProviderInfo()
                    {
                        Deleted = false, Id = Guid.Empty, Provider = DataProvider.TuShare, ProviderKey = stock.ProviderKey, Security = stock
                    });
                }
                return(new KeyValuePair <IEnumerable <ChinaStock>, IEnumerable <SecurityProviderInfo> >(stocks, securityProviderInfos));
            }
            else
            {
                throw new Exception(response.Message.ToString());
            }
        }
Example #29
0
        /// <summary>
        /// Gets the index of the product stock status from.
        /// </summary>
        /// <param name="viewModelList">The view model list.</param>
        public static void GetProductStockStatusFromIndex(List <ProductViewModel> viewModelList)
        {
            if (viewModelList == null || viewModelList.Count == 0)
            {
                return;
            }

            var searchManager = CommerceTypeLoader.CreateInstance <ICommerceSearchManager>();
            var searchIndex   = searchManager.GetIndex();

            using (var context = searchIndex.CreateSearchContext())
            {
                var predicate = PredicateBuilder.Create <InventorySearchResultItem>(item => item[StorefrontConstants.KnownIndexFields.InStockLocations].Contains("Default"));
                predicate = predicate.Or(item => item[StorefrontConstants.KnownIndexFields.OutOfStockLocations].Contains("Default"));
                predicate = predicate.Or(item => item[StorefrontConstants.KnownIndexFields.OrderableLocations].Contains("Default"));
                predicate = predicate.Or(item => item[StorefrontConstants.KnownIndexFields.PreOrderable].Contains("0"));

                var searchResults = context.GetQueryable <InventorySearchResultItem>()
                                    .Where(item => item.CommerceSearchItemType == CommerceSearchResultItemType.Product)
                                    .Where(item => item.Language == SearchNavigation.CurrentLanguageName)
                                    .Where(BuildProductIdListPredicate(viewModelList))
                                    .Where(predicate)
                                    .Select(x => new { x.OutOfStockLocations, x.OrderableLocations, x.PreOrderable, x.InStockLocations, x.Fields, x.Name });

                var results = searchResults.GetResults();
                if (results.TotalSearchResults == 0)
                {
                    return;
                }

                foreach (var result in results)
                {
                    var resultDocument = result.Document;
                    if (resultDocument == null)
                    {
                        continue;
                    }

                    StockStatus status = null;

                    var isInStock = resultDocument.Fields.ContainsKey(StorefrontConstants.KnownIndexFields.InStockLocations) &&
                                    resultDocument.Fields[StorefrontConstants.KnownIndexFields.InStockLocations] != null;
                    if (isInStock)
                    {
                        status = StockStatus.InStock;
                    }
                    else
                    {
                        var isPreOrderable = resultDocument.Fields.ContainsKey(StorefrontConstants.KnownIndexFields.PreOrderable) &&
                                             result.Document.PreOrderable != null &&
                                             (result.Document.PreOrderable.Equals("1", StringComparison.OrdinalIgnoreCase) ||
                                              result.Document.PreOrderable.Equals("true", StringComparison.OrdinalIgnoreCase));
                        if (isPreOrderable)
                        {
                            status = StockStatus.PreOrderable;
                        }
                        else
                        {
                            var isOutOfStock = resultDocument.Fields.ContainsKey(StorefrontConstants.KnownIndexFields.OutOfStockLocations) &&
                                               result.Document.OutOfStockLocations != null;
                            var isBackOrderable = resultDocument.Fields.ContainsKey(StorefrontConstants.KnownIndexFields.OrderableLocations) &&
                                                  result.Document.OrderableLocations != null;
                            if (isOutOfStock && isBackOrderable)
                            {
                                status = StockStatus.BackOrderable;
                            }
                            else
                            {
                                status = isOutOfStock ? StockStatus.OutOfStock : null;
                            }
                        }
                    }

                    var foundModel = viewModelList.Find(x => x.ProductId == result.Document.Name);
                    if (foundModel != null)
                    {
                        foundModel.StockStatus     = status;
                        foundModel.StockStatusName = StorefrontManager.GetProductStockStatusName(foundModel.StockStatus);
                    }
                }
            }
        }
        /// <summary>
        /// Gets the name of the product stock status.
        /// </summary>
        /// <param name="status">The status.</param>
        /// <returns>A stock status localizable name from the site content</returns>
        public static string GetProductStockStatusName(StockStatus status)
        {
            if (status == null)
            {
                return string.Empty;
            }

            Item lookupItem = null;

            return Lookup(StorefrontConstants.KnowItemNames.InventoryStatuses, status.Name, out lookupItem, true);
        }
        public void PublishWarehouseAvailableStockChanged()
        {
            Stopwatch requestTimer     = Stopwatch.StartNew();
            var       requestTelemetry = RequestTelemetryHelper.Start("Batch Publish Rate", DateTime.UtcNow);

            CallContext.LogicalSetData(CORRELATION_SLOT, requestTelemetry.Id);

            try
            {
                if (_skuVariantMap == null || !_skuVariantMap.Any())
                {
                    InitialiseSkuVariantCache();
                }

                if (_skuVariantMap == null || !_skuVariantMap.Any())
                {
                    throw new Exception("Failed to Initialise Sku-Variant Cache");
                }

                int pickable;
                int reserved;
                int allocated;

                switch (_stockStatus)
                {
                case StockStatus.InStock:
                    pickable     = 20;
                    reserved     = 0;
                    allocated    = 10;
                    _stockStatus = StockStatus.LowInStock;
                    break;

                case StockStatus.LowInStock:
                    pickable     = 30;
                    reserved     = 1;
                    allocated    = 20;
                    _stockStatus = StockStatus.OutOfStock;
                    break;

                case StockStatus.OutOfStock:
                    pickable     = 40;
                    reserved     = 20;
                    allocated    = 20;
                    _stockStatus = StockStatus.InStock;
                    break;

                default:
                    pickable  = 20;
                    reserved  = 0;
                    allocated = 10;
                    break;
                }

                var fc01BrokeredMessages =
                    _skuVariantMap.Select(x => new BrokeredMessage(new WarehouseAvailableStockChangedV1("FC01", x.SKU, pickable, reserved, allocated,
                                                                                                        DateTime.UtcNow))).ToList();

                var fc04BrokeredMessages =
                    _skuVariantMap.Select(x => new BrokeredMessage(new WarehouseAvailableStockChangedV1("FC04", x.SKU, pickable, reserved, allocated,
                                                                                                        DateTime.UtcNow))).ToList();

                for (var index = _publishBatchSize; index <= fc01BrokeredMessages.Count; index = +_publishBatchSize)
                {
                    var batchedBrokeredMessages = fc01BrokeredMessages.GetRange(index, _publishBatchSize);
                    if (batchedBrokeredMessages.Any())
                    {
                        _warehouseAvailableStockTopicClient.SendBatch(batchedBrokeredMessages);
                        Thread.Sleep(1000);
                        RequestTelemetryHelper.Dispatch(_telemetryClient, requestTelemetry, requestTimer.Elapsed, true);
                    }
                }

                for (var index = _publishBatchSize; index <= fc04BrokeredMessages.Count; index = +_publishBatchSize)
                {
                    var batchedBrokeredMessages = fc04BrokeredMessages.GetRange(index, _publishBatchSize);
                    if (batchedBrokeredMessages.Any())
                    {
                        _warehouseAvailableStockTopicClient.SendBatch(batchedBrokeredMessages);
                        Thread.Sleep(1000);
                        RequestTelemetryHelper.Dispatch(_telemetryClient, requestTelemetry, requestTimer.Elapsed, true);
                    }
                }
            }
            catch (Exception ex)
            {
                string err = ex.Message;
                if (ex.InnerException != null)
                {
                    err += " Inner Exception: " + ex.InnerException.Message;
                }
                Trace.TraceError(err, ex);
                RequestTelemetryHelper.Dispatch(_telemetryClient, requestTelemetry, requestTimer.Elapsed, false);
            }
        }
 private void InitialiseSkuVariantCache()
 {
     _skuVariantMap = _stockQuantityStore.GetSkuVariantMap(_skuVariantBatchSize);
     _stockStatus   = StockStatus.InStock;
 }