public ActionResult Checkout(CustomerInvoice invoice)
 {
     if (CheckIfCustomer())
     {
         if (ModelState.IsValid)
         {
             CheckoutViewModel checkoutDetails = customerrepo.CheckoutDetails();
             invoice.SubTotal         = checkoutDetails.TotalPrice;
             invoice.TotalWithTax     = checkoutDetails.TotalPriceWithTax;
             invoice.CustomerUserName = Session["UserName"].ToString();
             cusinvrepo.Insert(invoice);
             CustomerInvoice lastinvoice = null;
             foreach (var item in cusinvrepo.GetAll())
             {
                 lastinvoice = item;
             }
             foreach (var item in checkoutDetails.CartProductList)
             {
                 CustomerLineItem lineItem = new CustomerLineItem();
                 lineItem.InvoiceId = lastinvoice.InvoiceId;
                 lineItem.ProductId = item.ProductId;
                 lineItem.Quantity  = item.Quantity;
                 lineItem.UnitPrice = item.UnitPrice;
                 lineItem.Total     = item.Quantity * item.UnitPrice;
                 cuslirepo.Insert(lineItem);
                 CompanyProduct product = comprodrepo.GetById(item.ProductId);
                 product.Quantity = product.Quantity - item.Quantity;
                 comprodrepo.Update(product);
             }
             customerrepo.ClearCart();
             return(View("Conformation"));
         }
         else
         {
             TempData["Checkout"] = customerrepo.CheckoutDetails();
             return(View(invoice));
         }
     }
     else
     {
         return(RedirectToAction("Login", "Home"));
     }
 }
 public IHttpActionResult Checkout(CheckoutViewModel checkout)
 {
     if (ModelState.IsValid)
     {
         CustomerInvoice invoice = new CustomerInvoice();
         invoice.OrderDate        = checkout.OrderDate;
         invoice.SubTotal         = checkout.SubTotal;
         invoice.TotalWithTax     = checkout.TotalWithTax;
         invoice.CreditCardType   = checkout.CreditCardType;
         invoice.CardNumber       = checkout.CardNumber;
         invoice.CustomerUserName = checkout.CustomerUserName;
         cusinvrepo.Insert(invoice);
         CustomerInvoice lastinvoice = null;
         foreach (var item in cusinvrepo.GetAll())
         {
             lastinvoice = item;
         }
         foreach (var item in checkout.CartProductList)
         {
             CustomerLineItem lineItem = new CustomerLineItem();
             lineItem.InvoiceId = lastinvoice.InvoiceId;
             lineItem.ProductId = item.ProductId;
             lineItem.Quantity  = item.Quantity;
             lineItem.UnitPrice = item.UnitPrice;
             lineItem.Total     = item.Quantity * item.UnitPrice;
             cuslirepo.Insert(lineItem);
             CompanyProduct product = comprodrepo.GetById(item.ProductId);
             product.Quantity = product.Quantity - item.Quantity;
             comprodrepo.Update(product);
         }
         return(Created("http://localhost:51045/api/customerinvoices" + invoice.InvoiceId, invoice));
     }
     else
     {
         return(BadRequest(ModelState));
     }
 }