//--------------------------------------
        //
        // GET: /ShoppingCart/Receipt

        public ActionResult Receipt()
        {
            ProcessCheckout ProcessCheckout = new ProcessCheckout()
            {
            };

            scList = new List <ShoppingCartItem>()
            {
            };
            gscList = new List <ShoppingCartItem>()
            {
            };

            scList = db.ShoppingCartItems.ToList();
            foreach (var item in scList)
            {
                item.Product = db.Products.Find(item.ProductId);
            }
            Invoice invoice = new Invoice()
            {
            };

            invoice = ProcessCheckout.CreateInvoice(ref scList, ref gscList);
            invoice.InvoiceString = ProcessCheckout.CreateReceiptString(invoice, ref gscList);
            return(View(invoice));
        }
        private async void Btn_Contine_Click(object sender, EventArgs e)
        {
            if (CheckoutList.Count > 0)
            {
                if (string.IsNullOrEmpty(session_management.GetAddressDetails().Get(BaseURL.ADDRESS).ToString()) ||
                    string.IsNullOrEmpty(session_management.GetAddressDetails().Get(BaseURL.CITY).ToString()) ||
                    string.IsNullOrEmpty(session_management.GetAddressDetails().Get(BaseURL.PINCODE).ToString()) ||
                    string.IsNullOrEmpty(session_management.GetAddressDetails().Get(BaseURL.FULLNAME).ToString()) ||
                    string.IsNullOrEmpty(session_management.GetAddressDetails().Get(BaseURL.EMAIL).ToString()) ||
                    string.IsNullOrEmpty(session_management.GetAddressDetails().Get(BaseURL.MOBILE).ToString()))
                {
                    Toast.MakeText(this, "Please add the address", ToastLength.Short).Show();
                }
                else
                {
                    var             totalAmount     = (from data in CheckoutList select data).Sum(x => x.SelRate * x.Quantity);
                    var             deliverycharges = CheckoutList.Select(x => x.ShippingCharges).Sum();
                    ProcessCheckout CheckoutObj     = new ProcessCheckout();
                    CheckoutObj                 = CheckoutList.FirstOrDefault();
                    CheckoutObj.UserId          = CheckoutList.Select(x => x.UserId).FirstOrDefault();
                    CheckoutObj.Name            = session_management.GetAddressDetails().Get(BaseURL.FULLNAME).ToString();
                    CheckoutObj.Phone           = session_management.GetAddressDetails().Get(BaseURL.MOBILE).ToString();
                    CheckoutObj.Email           = session_management.GetAddressDetails().Get(BaseURL.EMAIL).ToString();
                    CheckoutObj.Address         = session_management.GetAddressDetails().Get(BaseURL.ADDRESS).ToString();
                    CheckoutObj.City            = session_management.GetAddressDetails().Get(BaseURL.CITY).ToString();
                    CheckoutObj.Pincode         = session_management.GetAddressDetails().Get(BaseURL.PINCODE).ToString();
                    CheckoutObj.Country         = Convert.ToInt32(session_management.GetAddressDetails().Get(BaseURL.COUNTRYID).ToString());
                    CheckoutObj.CountryName     = session_management.GetAddressDetails().Get(BaseURL.COUNTRY).ToString();
                    CheckoutObj.State           = Convert.ToInt32(session_management.GetAddressDetails().Get(BaseURL.STATEID).ToString());
                    CheckoutObj.StateName       = session_management.GetAddressDetails().Get(BaseURL.STATE).ToString();
                    CheckoutObj.Mobile          = session_management.GetAddressDetails().Get(BaseURL.MOBILE).ToString();
                    CheckoutObj.PayBy           = "COD";
                    CheckoutObj.Landmark        = session_management.GetSpcialNotes().Get(BaseURL.LANDMARK).ToString();
                    CheckoutObj.SpecialNote     = session_management.GetSpcialNotes().Get(BaseURL.SPECIALNOTES).ToString();
                    CheckoutObj.WarehouseId     = 1000254;
                    CheckoutObj.ShippingCharges = deliverycharges;
                    CheckoutObj.ItemImage       = null;
                    SaveCheckout processCheckout = new SaveCheckout();
                    processCheckout.CheckoutObj = CheckoutObj;

                    processCheckout.TotalAmount  = Convert.ToDecimal(totalAmount + deliverycharges);
                    processCheckout.CouponAmount = 0;
                    processCheckout.CouponPin    = "";
                    processCheckout.Discount     = 0;
                    processCheckout.REAmount     = 0;
                    processCheckout.RedeemValue  = 0;

                    var uri       = BaseURL.SaveCheckoutList;
                    var saveOrder = JsonConvert.SerializeObject(processCheckout);

                    using (var client = new HttpClient())
                    {
                        var jsonContent = new StringContent(saveOrder, Encoding.UTF8, "application/json");
                        var response    = await client.PostAsync(uri, jsonContent);

                        if (response.IsSuccessStatusCode)
                        {
                            response.EnsureSuccessStatusCode();
                            var resultString = await response.Content.ReadAsStringAsync();

                            var intent = new Intent(this, typeof(MainActivity));
                            this.StartActivity(intent);
                        }
                        else
                        {
                            Toast.MakeText(this, "Something went wrong!", ToastLength.Short).Show();
                        }
                    }
                }
            }
            else
            {
                Toast.MakeText(this, "Please add at list 1(one) item", ToastLength.Short).Show();
            }
        }
        private async void updateMultiplyAsync(int position, MyViewHolder myViewHolder)
        {
            List <StoreCart>       listOfCart     = new List <StoreCart>();
            List <ProcessCheckout> listOfCheckout = new List <ProcessCheckout>();
            StoreCart       storeCart             = new StoreCart();
            ProcessCheckout checkout      = new ProcessCheckout();
            string          soreValue     = sessionManagement.GetStoreCart().Get(BaseURL.KET_STORECART).ToString();
            string          checkoutValue = sessionManagement.GetCheckout().Get(BaseURL.KEY_Checkout).ToString();

            if (!string.IsNullOrEmpty(soreValue))
            {
                listOfCart = JsonConvert.DeserializeObject <List <StoreCart> >(soreValue);
                if (listOfCart.Count > 0)
                {
                    storeCart = (from data in listOfCart where data.ItemMasterId == Convert.ToInt32(cartList[position].getVarient_id()) select data).FirstOrDefault();
                }
            }
            if (!string.IsNullOrEmpty(checkoutValue))
            {
                listOfCheckout = JsonConvert.DeserializeObject <List <ProcessCheckout> >(checkoutValue);
                if (listOfCheckout.Count > 0)
                {
                    checkout = (from data in listOfCheckout where data.ItemMasterId == Convert.ToInt64(cartList[position].getVarient_id()) select data).FirstOrDefault();
                }
            }


            if (storeCart != null && storeCart.ItemMasterId > 0 || checkout != null && checkout.ItemMasterId > 0)
            {
                Toast.MakeText(this.context, "Item Aready Added", ToastLength.Short).Show();
            }
            else
            {
                myViewHolder.btn_Add.Visibility    = ViewStates.Gone;
                myViewHolder.ll_addQuan.Visibility = ViewStates.Visible;
                myViewHolder.txtQuan.Text          = "1";
                minteger = 1;

                AddToCartModel addToCartModel = new AddToCartModel();
                addToCartModel.UserId        = Convert.ToInt32(sessionManagement.getUserDetails().Get(BaseURL.KEY_ID).ToString());
                addToCartModel.ItemDesc      = cartList[position].getpDes();
                addToCartModel.ItemMasterId  = Convert.ToInt32(cartList[position].getVarient_id());
                addToCartModel.SelRate       = Convert.ToDecimal(cartList[position].getpPrice());
                addToCartModel.GSTRate       = 0;
                addToCartModel.ItemImage     = cartList[position].getpImage();
                addToCartModel.ItemImageType = "image/jpeg";
                addToCartModel.Date          = DateTime.Now;
                addToCartModel.WarehouseID   = Convert.ToInt32(cartList[position].getWarehouseId());

                var itemCount = Convert.ToInt32(MainActivity.totalBudgetCount.Text);
                MainActivity.totalBudgetCount.Text = (itemCount + 1).ToString();

                if (myViewHolder.txtQuan.Text.ToString() != "0")
                {
                    addToCartModel.Quantity = int.Parse(myViewHolder.txtQuan.Text.ToString());
                    var uri          = BaseURL.AddToCart;
                    var registerData = JsonConvert.SerializeObject(addToCartModel);
                    using (var client = new HttpClient())
                    {
                        var jsonContent = new StringContent(registerData, Encoding.UTF8, "application/json");
                        var response    = await client.PostAsync(uri, jsonContent);

                        if (response.StatusCode == HttpStatusCode.OK)
                        {
                            var getDataUrl        = new System.Uri(BaseURL.Get_CartList + addToCartModel.UserId);
                            var storeCartResponse = await client.GetStringAsync(getDataUrl);

                            sessionManagement.SetStoreCart(storeCartResponse);
                        }
                    }
                }

                try
                {
                    int    items = (int)double.Parse(myViewHolder.txtQuan.Text);
                    double price = double.Parse(cartList[position].getpPrice().Trim());
                    double mrp   = double.Parse(cartList[position].getpMrp().Trim());
                    myViewHolder.pDescrptn.Text = "" + cartList[position].getpDes();
                    myViewHolder.pPrice.Text    = "" + price * items;
                    myViewHolder.txtQuan.Text   = "" + items;
                    myViewHolder.pMrp.Text      = "" + mrp * items;
                }
                catch (IndexOutOfBoundsException e)
                {
                    e.ToString();
                }
            }
        }