Ejemplo n.º 1
0
 private void OnInventoryItemsFilterExpressionChanged(object sender, NotificationEventArgs e)
 {
     InventoryItems.Refresh();
     SelectedInventoryItems.Clear();
     NotifyPropertyChanged(x => SelectedInventoryItems);
     BeginSendMessage(MessageToken.SelectedInventoryItemsChanged, new NotificationEventArgs(MessageToken.SelectedInventoryItemsChanged));
 }
        private void RaiseAddInventoryListInteractionRequest()
        {
            _receiveInventoryVm.SelectedFulfillmentCenter = SearchFilterFulfillment;

            var confirmation = new ConditionalConfirmation {
                Title = "Receive inventory".Localize(), Content = _receiveInventoryVm
            };

            CommonConfirmRequest.Raise(confirmation, x =>
            {
                if (x.Confirmed)
                {
                    SearchFilterFulfillment = SearchFilterFulfillments.FirstOrDefault(y => y.FulfillmentCenterId == _receiveInventoryVm.SelectedFulfillmentCenter.FulfillmentCenterId);
                    _receiveInventoryVm.InventoryItems.ToList().ForEach(y => y.FulfillmentCenterId = _receiveInventoryVm.SelectedFulfillmentCenter.FulfillmentCenterId);
                    var l = _receiveInventoryVm.InventoryItems.Where(y => !string.IsNullOrEmpty(y.Sku) && y.InStockQuantity >= 0).ToList();
                    _receiveInventoryVm.InventoryItems.Clear();
                    foreach (var inventory in l)
                    {
                        using (var repository = _inventoryRepositoryFactory.GetRepositoryInstance())
                        {
                            var sku =
                                repository.Inventories.ToList()
                                .FirstOrDefault(x1 => x1.Sku == inventory.Sku && x1.FulfillmentCenterId == inventory.FulfillmentCenterId);
                            if (sku != null)
                            {
                                sku.InStockQuantity += inventory.InStockQuantity;
                            }
                            else
                            {
                                inventory.Status = (int)InventoryStatus.Enabled;
                                repository.Add(inventory);
                            }

                            repository.UnitOfWork.Commit();
                        }
                    }

                    SelectedInventoryItems.Refresh();
                    OnSpecifiedPropertyChanged("SearchFilterFulfillment");
                }
            });
        }
 private void DoSearchItems()
 {
     SelectedInventoryItems.Refresh();
 }