Esempio n. 1
0
        internal static void Initialize(BoatChartersDbContext db)
        {
            db.Database.Migrate();

            if (db.Products.Count() == 0)
            {
                db.Products.Add(new Yacht
                {
                    Name            = "Helia 450",
                    Description     = "bla bla",
                    Image           = "/images/cat1.jpg",
                    Size            = 45,
                    PriceHighSeason = 11000m,
                    PriceOffSeason  = 5000m,
                    Year            = 2015,
                    AirCond         = false,
                    Cabins          = 4
                });
                db.Products.Add(new Yacht
                {
                    Name            = "Helia 400",
                    Description     = "bla bla bla",
                    Image           = "/images/cat2.jpg",
                    Size            = 40,
                    PriceHighSeason = 9000m,
                    PriceOffSeason  = 4000m,
                    Year            = 2015,
                    AirCond         = false,
                    Cabins          = 3
                });
                db.SaveChanges();
            }
        }
Esempio n. 2
0
        public IActionResult Book(int id, [FromForm] DateTime dateFrom, [FromForm] DateTime dateTo)
        {
            Guid cartId;
            Cart cart = null;

            if (Request.Cookies.ContainsKey("cartId"))
            {
                if (Guid.TryParse(Request.Cookies["cartId"], out cartId))
                {
                    //https://docs.microsoft.com/en-us/ef/core/querying/related-data
                    cart = _context.Carts
                           .Include(carts => carts.CartItems)
                           .ThenInclude(cartitems => cartitems.Yacht)
                           .FirstOrDefault(x => x.CookieIdentifier == cartId);
                }
            }

            if (cart == null)
            {
                cart   = new Cart();
                cartId = Guid.NewGuid();
                cart.CookieIdentifier = cartId;

                _context.Carts.Add(cart);
                Response.Cookies.Append("cartId", cartId.ToString(), new Microsoft.AspNetCore.Http.CookieOptions {
                    Expires = DateTime.UtcNow.AddYears(100)
                });
            }
            CartItem item = cart.CartItems.FirstOrDefault(x => x.Yacht.ID == id);

            if (item == null)
            {
                item       = new CartItem();
                item.Yacht = _context.Products.Find(id);
                cart.CartItems.Add(item);
            }

            item.DatesFrom    = dateFrom;
            item.DatesTo      = dateTo;
            cart.LastModified = DateTime.Now;

            _context.SaveChanges();
            return(RedirectToAction("Index", "Cart"));
        }
Esempio n. 3
0
        public async Task <IActionResult> Remove(int id)
        {
            Guid cartId;
            Cart cart = null;

            if (Request.Cookies.ContainsKey("cartId"))
            {
                if (Guid.TryParse(Request.Cookies["cartId"], out cartId))
                {
                    cart = await _context.Carts
                           .Include(carts => carts.CartItems)
                           .ThenInclude(cartitems => cartitems.Yacht)
                           .FirstOrDefaultAsync(x => x.CookieIdentifier == cartId);
                }
            }
            CartItem item = cart.CartItems.FirstOrDefault(x => x.ID == id);

            cart.LastModified = DateTime.Now;

            _context.CartItems.Remove(item);

            _context.SaveChanges();
            return(RedirectToAction("Index"));
        }