Пример #1
0
        public static void MarkOrderItemsAsTransferredToBackOffice(List<string> itemIdentifierList, int userID)
        {
            var dcp = CheckoutDataContextProvider.Instance;
            var repOrderItem = new Repository<OrderItem>(dcp);

            var dividedOrderItemList = itemIdentifierList.ToDividedList(100);
            foreach (var itemList in dividedOrderItemList)
            {
                var orderItemIdentifierList = itemList.Select(itemIdentifier => itemIdentifier).ToList();
                var orderItemList = repOrderItem.GetAll().Where(p => orderItemIdentifierList.Contains(p.ItemIdentifier.ToString())).ToList();
                foreach (var orderItem in orderItemList)
                {
                    orderItem.IsTransferredToBackOffice = true;
                }

                dcp.CommitChanges(userID);
            }
        }
        public static List<VariantStockDO> GetBeymenVariantStockList(List<string> varianStockList)
        {
            if (EnvironmentUtils.IsDEV())
            {
                return BeymenStockServiceMock.GetVariantStockList(varianStockList);
            }
            else
            {
                List<List<string>> dividedList = varianStockList.ToDividedList(10000);

                List<VariantStockDO> resultList = new List<VariantStockDO>();

                foreach (var variantList in dividedList)
                {
                    Beymen_eCommClient beymenService = new Beymen_eCommClient();
                    string stockData;
                    try
                    {
                        stockData = beymenService.StokKontrol2(_siteID, _siteKey, variantList.ToArray());
                    }
                    catch (Exception e)
                    {
                        string message = "Stock update beymenden hata aldı. Varyant kodları: " + string.Join(",", variantList);
                        ElmahLogger.Error(message, e);
                        continue;
                    }
                    try
                    {
                        if (string.IsNullOrEmpty(stockData))
                        {
                            continue;
                        }

                        string[] stockBlockData = stockData.Split(',');

                        if (stockBlockData.Any() == false)
                        {
                            continue;
                        }

                        foreach (var variantStock in stockBlockData)
                        {
                            string[] firstBreakdown = variantStock.Split('|');
                            if (firstBreakdown.Count() < 2)
                            {
                                continue;
                            }

                            VariantStockDO newVariantStock = new VariantStockDO();
                            newVariantStock.VariantCode = firstBreakdown[0].Trim().TrimStart('0');

                            int stock = 0;
                            int.TryParse(firstBreakdown[1], out stock);
                            newVariantStock.Quantity = stock;

                            resultList.Add(newVariantStock);
                        }
                    }
                    catch (Exception e)
                    {
                        string message = "Beymen stock cevabının parse edilemsi sırasında hata oluştu.";
                        ElmahLogger.Error(message, e);
                    }
                }
                return resultList;
            }
        }
Пример #3
0
        public static List<string> CancelOrderItems(List<string> orderItemCodeList, int userID)
        {
            using (TransactionScope tran = TransactionScopeFactory.CreateTransactionScope())
            {
                CheckoutDataContextProvider dcp = CheckoutDataContextProvider.Instance;

                var dividedOrderItemList = orderItemCodeList.ToDividedList(1000);
                var returnList = new List<string>();

                foreach (var itemCodeList in dividedOrderItemList)
                {
                    List<OrderItem> orderItems = GetAllOrderItemsAsQueryable(dcp).Where(x => itemCodeList.Contains(x.ItemIdentifier)).ToList();
                    DateTime utcNow = DateTime.UtcNow;

                    orderItems.ForEach(x =>
                    {
                        x.IsCancelled = true;
                        x.StatusCode = OrderItemStatus.Cancelled.ToString();
                        x.StatusCodeUpdateTime = utcNow;
                    });

                    dcp.CommitChanges(userID);

                    returnList.AddRange(orderItems.Select(x => x.ItemIdentifier).ToList());
                    //TODO beymen sistemine sistemine bildirme kısmı var.
                }

                tran.Complete();
                return returnList;
            }
        }