Esempio n. 1
0
 public BarcodeInfo[] GetAllBarcodes()
 {
     using (var db = new Amazon.DAL.Inventory.InventoryUnitOfWork())
     {
         return(db.Context.ViewBarcodes
                .Select(b => new BarcodeInfo()
         {
             Barcode = b.Barcode
         }).ToArray());
     }
 }
Esempio n. 2
0
        public void StoreOrderInfo(OrderInfo order)
        {
            var dbFactory = new DbFactory();
            var log       = LogFactory.Default;
            var time      = new TimeService(dbFactory);

            var quantityManager = new QuantityManager(log, time);

            using (var invDb = new Amazon.DAL.Inventory.InventoryUnitOfWork())
            {
                if (order.Type == InventoryOrderType.InventoryOrder)
                {
                    var orderDto = new InventoryDTO()
                    {
                        Description   = order.Name,
                        FileName      = order.FileName,
                        InventoryDate = DateHelper.ConvertUtcToApp(order.OrderDate)
                    };

                    var itemsDto = order.Barcodes.Select(b => new ScanItemDTO()
                    {
                        Barcode  = b.Barcode,
                        Quantity = b.Quantity
                    }).ToList();

                    invDb.ItemInventoryMappings.AddNewInventory(orderDto, itemsDto);
                }

                if (order.Type == InventoryOrderType.ShopOrder ||
                    order.Type == InventoryOrderType.FBAOrder)
                {
                    var orderDto = new ScanOrderDTO()
                    {
                        Description = order.Name,
                        FileName    = order.FileName,
                        OrderDate   = DateHelper.ConvertUtcToApp(order.OrderDate),
                        IsFBA       = order.Type == InventoryOrderType.FBAOrder
                    };

                    var itemsDto = order.Barcodes.Select(b => new ScanItemDTO()
                    {
                        Barcode  = b.Barcode,
                        Quantity = b.Quantity
                    }).ToList();

                    invDb.ItemOrderMappings.AddNewOrder(orderDto, itemsDto);

                    try
                    {
                        using (var db = dbFactory.GetRWDb())
                        {
                            foreach (var item in itemsDto)
                            {
                                var barcodeDto =
                                    db.StyleItemBarcodes.GetAllAsDto().FirstOrDefault(b => b.Barcode == item.Barcode);
                                if (barcodeDto != null)
                                {
                                    quantityManager.LogStyleItemQuantity(db,
                                                                         barcodeDto.StyleItemId,
                                                                         item.Quantity,
                                                                         null,
                                                                         order.Type == InventoryOrderType.ShopOrder
                                            ? QuantityChangeSourceType.SentToStore
                                            : QuantityChangeSourceType.SentToFBA,
                                                                         orderDto.Id.ToString(),
                                                                         item.Id,
                                                                         StringHelper.Substring(orderDto.Description, 50),
                                                                         time.GetAppNowTime(),
                                                                         null);
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        log.Error("When write style item log", ex);
                    }
                }
            }
        }