private void AddShippingPackage()
        {
            var parameters = new[]
            {
                new KeyValuePair <string, object>("item", new ShippingPackage()),
                new KeyValuePair <string, object>("selectedPackaging", InnerItem.ShippingPackages.Select(sp => sp.MappedPackagingId).ToList())
            };

            var itemVm = _addPackageVmFactory.GetViewModelInstance(parameters);

            var confirmation = new ConditionalConfirmation
            {
                Title   = "Add Payment package".Localize(),
                Content = itemVm
            };

            if (AddEditShippingPackageRequest != null)
            {
                AddEditShippingPackageRequest.Raise(confirmation,
                                                    (x) =>
                {
                    if (x.Confirmed)
                    {
                        var itemToAdd = (x.Content as IShippingOptionAddShippingPackageViewModel).InnerItem;

                        InnerItem.ShippingPackages.Add(itemToAdd);
                    }
                });
            }
        }
        private void EditShippingPackage(ShippingPackage selectedItem)
        {
            var itemToUpdate = selectedItem;

            var selectedItems = InnerItem.ShippingPackages.Select(sp => sp.MappedPackagingId).ToList();

            selectedItems.Remove(itemToUpdate.MappedPackagingId);

            var parameters = new[]
            {
                new KeyValuePair <string, object> ("item", itemToUpdate),
                new KeyValuePair <string, object> ("selectedPackaging", selectedItems)
            };

            var itemVm = _addPackageVmFactory.GetViewModelInstance(parameters);

            var confirmation = new ConditionalConfirmation
            {
                Title   = "Add Payment package".Localize(),
                Content = itemVm
            };

            if (AddEditShippingPackageRequest != null)
            {
                AddEditShippingPackageRequest.Raise(confirmation,
                                                    (x) =>
                {
                    if (x.Confirmed)
                    {
                        var itemFromDialog = (x.Content as IShippingOptionAddShippingPackageViewModel).InnerItem;

                        OnUIThread(() => itemToUpdate.InjectFrom <CloneInjection>(itemFromDialog));

                        IsModified = true;
                    }
                });
            }
        }