private void RaiseMoveLineItemInteractionRequest(ShipmentItem movingItem)
        {
            if (movingItem != null)
            {
                var itemVM = _splitVmFactory.GetViewModelInstance(
                    new KeyValuePair <string, object>("currentOrder", _currentOrder.InnerItem)
                    , new KeyValuePair <string, object>("sourceShipment", CurrentShipment)
                    , new KeyValuePair <string, object>("movingItem", movingItem));

                var confirmation = new ConditionalConfirmation {
                    Title = "Split shipment".Localize(), Content = itemVM
                };

                CommonShipmentConfirmRequest.Raise(confirmation, (x) =>
                {
                    if (x.Confirmed)
                    {
                        var quantity       = itemVM.MoveQuantity;
                        var targetShipment = itemVM.TargetShipment;

                        var anyOperationSucceded = false;
                        try
                        {
                            ParentViewModel.CloseAllSubscription1();

                            _currentOrder.MoveShippingItem(movingItem, quantity, targetShipment, CurrentShipment);
                            if (itemVM.IsNewShipmentSelected)
                            {
                                targetShipment.ShipmentId  = targetShipment.GenerateNewKey();
                                targetShipment.OrderFormId = _currentOrder.OrderForms[0].OrderFormId;
                                _currentOrder.OrderForms[0].Shipments.Add(targetShipment);
                            }

                            ParentViewModel.OrderShipmentViewModels.Clear();
                            ParentViewModel.InitializeOrderShipmentViewModels();

                            ParentViewModel.Recalculate();
                            anyOperationSucceded = true;
                        }
                        finally
                        {
                            ParentViewModel.SetAllSubscription1();
                            // fake assignment for triggers to fire
                            if (anyOperationSucceded)
                            {
                                ParentViewModel.InnerItem.OrderGroupId = ParentViewModel.InnerItem.OrderGroupId;
                            }
                        }
                        RaiseCanExecuteChanged();
                    }
                });
            }
        }