// GET: CartItem
        public ActionResult Cart()
        {
            if (System.Web.HttpContext.Current.Session["cartId"] != null)
            {
                using (TicketDomContext context = new TicketDomContext())
                {
                    var list    = context.CartItem.ToList();
                    var results = new List <CartItem>();
                    int x       = Convert.ToInt32(System.Web.HttpContext.Current.Session["cartId"]);
                    foreach (CartItem item in list)
                    {
                        if (item.CartId == x)
                        {
                            results.Add(item);
                        }
                    }

                    return(View(results));
                }
            }
            else
            {
                return(View());
            }
        }
 public ActionResult AddToCart(int id)
 {
     using (TicketDomContext context = new TicketDomContext())
     {
         Tickets item = context.Tickets.FirstOrDefault(x => x.Id == id);
         return(View(item));
     }
 }
 public ActionResult Shop()
 {
     using (TicketDomContext context = new TicketDomContext())
     {
         var list = context.Tickets.OrderBy(x => x.Date).ToList();
         return(View(list));
     }
 }
        // GET: Tickets/Edit/5
        public ActionResult Edit(int id)
        {
            Tickets result = null;

            using (TicketDomContext context = new TicketDomContext())
            {
                result = context.Tickets.FirstOrDefault(x => x.Id == id);
            }
            return(View(result));
        }
        // GET: ShoppingCart
        public ActionResult Cart()
        {
            int cartId = Convert.ToInt32(System.Web.HttpContext.Current.Session["cartId"]);

            using (TicketDomContext context = new TicketDomContext())
            {
                ShoppingCart cart = context.ShoppingCart.FirstOrDefault(x => x.Id == cartId);
                return(View(cart));
            }
        }
        public ActionResult AddToCart(string TicketId, string Quantity, string Price)
        {
            int TickId = Convert.ToInt32(TicketId);

            int    qty   = Convert.ToInt32(Quantity);
            double price = Convert.ToDouble(Price);

            using (TicketDomContext context = new TicketDomContext())
            {
                Tickets ticket = context.Tickets.FirstOrDefault(x => x.Id == TickId);
                if (System.Web.HttpContext.Current.Session["cartId"] == null)
                {
                    ShoppingCart newCart = new Models.ShoppingCart();
                    context.ShoppingCart.Add(newCart);
                    context.SaveChanges();
                    System.Web.HttpContext.Current.Session["cartId"] = newCart.Id;
                }


                int          cartId    = Convert.ToInt32(System.Web.HttpContext.Current.Session["cartId"]);
                ShoppingCart cart      = context.ShoppingCart.FirstOrDefault(x => x.Id == cartId);
                bool         newTicket = true;

                if (cart.Items.Count() > 0)
                {
                    foreach (CartItem item in cart.Items)
                    {
                        if (item.TicketId == TickId)
                        {
                            newTicket = false;
                            int qt = item.Quantity + qty;
                            item.Quantity = qt;
                            context.SaveChanges();
                        }
                    }
                }
                if (newTicket == true)
                {
                    CartItem newItem = new CartItem();
                    newItem.TicketId    = TickId;
                    newItem.Quantity    = qty;
                    newItem.TicketPrice = price;
                    newItem.CartId      = cart.Id;
                    newItem.Ticket      = ticket;
                    newItem.Description = ticket.Title + " at " + ticket.Venue + " located in " + ticket.City + ", " + ticket.State + " on " + ticket.Date.ToString("M/d/yyyy hh:mm tt");
                    cart.Items.Add(newItem);
                    context.CartItem.Add(newItem);
                    context.SaveChanges();
                }
            }
            return(RedirectToAction("Shop"));
        }
 public ActionResult getTicks()
 {
     using (TicketDomContext context = new TicketDomContext())
     {
         var list     = context.Tickets.OrderBy(x => x.Date).ToList();
         var jsonData = "[";
         foreach (Tickets item in list)
         {
             jsonData += "{'Id':'" + item.Id + "','Type':'" + item.Type + "','Title':'" + item.Title + "','Price':'" + item.Price + "','Date':'" + item.Date + "','Title':'" + item.Title + "','Venue':'" + item.Venue + "','City':'" + item.City + "','State':'" + item.State + "'},";
         }
         jsonData     = jsonData.TrimEnd(',');
         jsonData    += "]";
         ViewBag.Data = jsonData;
         return(View());
     }
 }
 public ActionResult Create(Tickets obj)
 {
     try
     {
         using (TicketDomContext context = new TicketDomContext())
         {
             context.Tickets.Add(obj);
             context.SaveChanges();
             return(RedirectToAction("Index"));
         }
     }
     catch
     {
         return(View());
     }
 }
 public ActionResult Shop(string keyword)
 {
     using (TicketDomContext context = new TicketDomContext())
     {
         var list    = context.Tickets.OrderBy(x => x.Date).ToList();
         var results = new List <Tickets>();
         foreach (Tickets item in list)
         {
             if (item.Title.ToLower().Contains(keyword.ToLower()) || item.Type.ToLower().Contains(keyword.ToLower()) || item.Venue.ToLower().Contains(keyword.ToLower()) || item.City.ToLower().Contains(keyword.ToLower()))
             {
                 results.Add(item);
             }
         }
         results.OrderBy(x => x.Date);
         return(View(results));
     }
 }
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                using (TicketDomContext context = new TicketDomContext())
                {
                    var item = context.Tickets.FirstOrDefault(x => x.Id == id);
                    TryUpdateModel(item);
                    context.SaveChanges();
                }

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
        public ActionResult Remove(int id)
        {
            try
            {
                using (TicketDomContext context = new TicketDomContext())
                {
                    var item = context.CartItem.FirstOrDefault(x => x.Id == id);


                    context.CartItem.Remove(item);
                    context.SaveChanges();
                }

                return(RedirectToAction("Cart"));
            }
            catch
            {
                return(View("Cart"));
            }
        }