/// <summary>
        /// Renders checkout information in process so
        /// gets everything from basket
        /// </summary>
        /// <returns></returns>
        private ActionResult RenderIncompleteInvoiceSummary()
        {
            var model = new CheckoutViewModel();

                if ((base.Basket != null) &&
                    (base.Basket.SalePreparation() != null))
                {
                    if (base.Basket.SalePreparation().GetBillToAddress() != null)
                    {
                        model.CustomerName = base.Basket.SalePreparation().GetBillToAddress().Name ?? "";

                        model.CustomerAddress = new AddressModel();

                        model.CustomerAddress.Email = base.Basket.SalePreparation().GetBillToAddress().Email ?? "";
                        model.CustomerAddress.Address1 = base.Basket.SalePreparation().GetBillToAddress().Address1 ?? "";
                        model.CustomerAddress.Locality = base.Basket.SalePreparation().GetBillToAddress().Locality ?? "";
                        model.CustomerAddress.CountryCode = base.Basket.SalePreparation().GetBillToAddress().CountryCode ?? "";
                        model.CustomerAddress.PostalCode = base.Basket.SalePreparation().GetBillToAddress().PostalCode ?? "";
                        model.CustomerAddress.Region = base.Basket.SalePreparation().GetBillToAddress().Region ?? "";
                    }

                    if (base.Basket.SalePreparation().GetPaymentMethod() != null)
                    {
                        model.PaymentType = base.Basket.SalePreparation().GetPaymentMethod().Name ?? "";
                    }

                    if (base.Basket.Items != null)
                    {
                        model.Items = base.Basket.Items;
                    }

                    model.TotalBasketPrice = base.Basket.TotalBasketPrice;
                }

                return PartialView("CheckoutSummary", model);
        }
        /// <summary>
        /// Renders checkout information after sale is done, so gets
        /// everything from invoice. Basket is now empty once again.
        /// </summary>
        /// <param name="invoiceKey"></param>
        /// <returns></returns>
        private ActionResult RenderCompleteInvoiceSummary(Guid invoiceKey)
        {
            var invoice = Services.InvoiceService.GetByKey(invoiceKey);

                var model = new CheckoutViewModel();

                // init objects
                model.CustomerAddress = new AddressModel();
                model.Items = new LineItemCollection();

                var customeraddress = new AddressModel();

                model.CustomerName = invoice.BillToName ?? "";

                customeraddress.Email = invoice.BillToEmail ?? "";
                customeraddress.Address1 = invoice.BillToAddress1 ?? "";
                customeraddress.Locality = invoice.BillToLocality ?? "";
                customeraddress.CountryCode = invoice.BillToCountryCode ?? "";
                customeraddress.PostalCode = invoice.BillToPostalCode ?? "";
                customeraddress.Region = invoice.BillToRegion ?? "";

                model.CustomerAddress = customeraddress;

                //model.PaymentType = invoice.;

                model.Items = invoice.Items;
                model.TotalBasketPrice = invoice.Total;

                return PartialView("CheckoutSummary", model);
        }