public void UpdateOfPaymentItems()
        {
            var selectedPaymentShippingItems = new List <PaymentMethodShippingMethod>();

            foreach (var selectedPaymentMethod in SelectedPaymentMethods)
            {
                var itemToAdd = new PaymentMethodShippingMethod
                {
                    PaymentMethodId  = selectedPaymentMethod.PaymentMethodId,
                    ShippingMethodId = InnerItem.ShippingMethodId
                };

                selectedPaymentShippingItems.Add(itemToAdd);
            }

            var paymentShippingForDelete =
                InnerItem.PaymentMethodShippingMethods.Where(
                    x => !selectedPaymentShippingItems.Any(pm => pm.PaymentMethodId == x.PaymentMethodId)).ToList();

            foreach (var paymentMethodShippingMethodForDelete in paymentShippingForDelete)
            {
                InnerItem.PaymentMethodShippingMethods.Remove(paymentMethodShippingMethodForDelete);

                var itemToDelete =
                    OriginalItem.PaymentMethodShippingMethods.SingleOrDefault(
                        item => item.PaymentMethodShippingMethodId == paymentMethodShippingMethodForDelete.PaymentMethodShippingMethodId);
                if (itemToDelete != null)
                {
                    OriginalItem.PaymentMethodShippingMethods.Remove(itemToDelete);
                }

                Repository.Attach(paymentMethodShippingMethodForDelete);
                Repository.Remove(paymentMethodShippingMethodForDelete);
            }

            foreach (var paymentShippingToAdd in selectedPaymentShippingItems)
            {
                var sameItemFromInnerItem =
                    InnerItem.PaymentMethodShippingMethods.SingleOrDefault(
                        pmsm =>
                        pmsm.PaymentMethodId == paymentShippingToAdd.PaymentMethodId &&
                        pmsm.ShippingMethodId == paymentShippingToAdd.ShippingMethodId);

                if (sameItemFromInnerItem != null)
                {
                    continue;
                }

                InnerItem.PaymentMethodShippingMethods.Add(paymentShippingToAdd);
            }

            if (!IsWizardMode)
            {
                Repository.UnitOfWork.Commit();
            }
        }
        public void GetShippingItemToInnerItem()
        {
            var selectedPaymentShipping = new List <PaymentMethodShippingMethod>();

            foreach (var selectedShippingMethod in SelectedShippingMethods)
            {
                var itemToAdd = new PaymentMethodShippingMethod();
                itemToAdd.ShippingMethodId = selectedShippingMethod.ShippingMethodId;
                itemToAdd.PaymentMethodId  = InnerItem.PaymentMethodId;

                selectedPaymentShipping.Add(itemToAdd);
            }

            var paymentShippingForDelete =
                InnerItem.PaymentMethodShippingMethods.Where(
                    x => !selectedPaymentShipping.Any(ps => ps.ShippingMethodId == x.ShippingMethodId)).ToList();


            foreach (var paymentShippingToDelete in paymentShippingForDelete)
            {
                InnerItem.PaymentMethodShippingMethods.Remove(paymentShippingToDelete);
                Repository.Attach(paymentShippingToDelete);
                Repository.Remove(paymentShippingToDelete);
            }

            foreach (var paymentShippingToAdd in selectedPaymentShipping)
            {
                var sameItemFromInnerItem =
                    InnerItem.PaymentMethodShippingMethods.SingleOrDefault(
                        pmsm =>
                        pmsm.PaymentMethodId == paymentShippingToAdd.PaymentMethodId &&
                        pmsm.ShippingMethodId == paymentShippingToAdd.ShippingMethodId);

                if (sameItemFromInnerItem != null)
                {
                    continue;
                }

                InnerItem.PaymentMethodShippingMethods.Add(paymentShippingToAdd);
            }

            if (!IsWizardMode)
            {
                Repository.UnitOfWork.Commit();
            }
        }