Example #1
0
        //Tagovi <span> omogućavaju da se unutrašnji elementi ispravno prikazuju.
        //Kada se prikaže bilo koja stranica sajta, prikazaće se total korpe.
        public IQueryable <Category> GetCategories()
        {
            var _db = new ProdavnicaIgracaka.Models.ProductContext();
            IQueryable <Category> query = _db.Categories;

            return(query);
        }
Example #2
0
 //Metod UpdateShoppingCartDatabase, pozvan iz metode UpdateCartItems na stranici ShoppingCart.aspx.cs,
 //sadrži logiku za ažuriranje ili uklanjanje stavki iz korpe za kupovinu.
 //Metoda UpdateShoppingCartDatabase ponavlja sve redove u listi korpe za kupovinu.
 //Ako je stavka korpe za kupovinu označena da bude uklonjena ili je količina manja od jedne, poziva se metoda RemoveItem.
 //U suprotnom, stavka korpe za kupovinu se proverava da li postoji ažuriranje kada se pozove metoda UpdateItem.
 //Nakon što je stavka korpe za kupovinu uklonjena ili ažurirana, promene baze podataka su sacuvane.
 public void UpdateShoppingCartDatabase(String cartId, ShoppingCartUpdates[] CartItemUpdates)
 {
     using (var db = new ProdavnicaIgracaka.Models.ProductContext())
     {
         try
         {
             int             CartItemCount = CartItemUpdates.Count();
             List <CartItem> myCart        = GetCartItems();
             foreach (var cartItem in myCart)
             {
                 for (int i = 0; i < CartItemCount; i++)
                 {
                     if (cartItem.Product.ProductID == CartItemUpdates[i].ProductId)
                     {
                         if (CartItemUpdates[i].PurchaseQuantity < 1 || CartItemUpdates[i].RemoveItem == true)
                         {
                             RemoveItem(cartId, cartItem.ProductId);
                         }
                         else
                         {
                             UpdateItem(cartId, cartItem.ProductId, CartItemUpdates[i].PurchaseQuantity);
                         }
                     }
                 }
             }
         }
         catch (Exception exp)
         {
             throw new Exception("ERROR: Unable to Update Cart Database - " + exp.Message.ToString(), exp);
         }
     }
 }
        public IQueryable GetProducts()
        {
            var        _db   = new ProdavnicaIgracaka.Models.ProductContext();
            IQueryable query = _db.Products;

            return(query);
        }
        protected void RemoveProductButton_Click(object sender, EventArgs e)
        {
            //u ovoj metodi uzimamo selectovni proizvod iz liste na osnovu DataValueField = "ProductID"
            //onda pokusamo da "dovucemo" taj proizvod iz tabele Products.
            //imamo proveru da li je null jer FirstOrDefault vraca null ukoliko ne pronadje taj proizvod.
            //ako nije NULL brisemo ga iz tabele
            //i potrebno je pozvati metodu na kontextu
            //kako bi se izmene sacuvale.
            using (var _db = new ProdavnicaIgracaka.Models.ProductContext())
            {
                int productId = Convert.ToInt16(DropDownRemoveProduct.SelectedValue);
                var myItem    = (from c in _db.Products where c.ProductID == productId select c).FirstOrDefault();
                if (myItem != null)
                {
                    _db.Products.Remove(myItem);
                    _db.SaveChanges();

                    // Reload the page.
                    string pageUrl = Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.Count() - Request.Url.Query.Count());
                    Response.Redirect(pageUrl + "?ProductAction=remove");
                }
                else
                {
                    LabelRemoveStatus.Text = "Nije moguce pronaci proizvod.";
                }
            }
        }
        public IQueryable GetCategories()
        {
            //metoda GetCategories mora da instancira bazu i onda iz baze uzima samo sadrzaj tabele Categories
            var        _db   = new ProdavnicaIgracaka.Models.ProductContext();
            IQueryable query = _db.Categories;

            return(query);
        }
Example #6
0
 //Struktura ShoppingCartUpdates koristi se za držanje svih stavki korpe za kupovinu.
 //Metod UpdateShoppingCartDatabase koristi strukturu ShoppingCartUpdates da bi odredio da li je potrebno ažurirati
 //ili ukloniti neku od stavki.
 public void UpdateItem(string updateCartID, int updateProductID, int quantity)
 {
     using (var _db = new ProdavnicaIgracaka.Models.ProductContext())
     {
         try
         {
             var myItem = (from c in _db.ShoppingCartItems where c.CartId == updateCartID && c.Product.ProductID == updateProductID select c).FirstOrDefault();
             if (myItem != null)
             {
                 myItem.Quantity = quantity;
                 _db.SaveChanges();
             }
         }
         catch (Exception exp)
         {
             throw new Exception("ERROR: Unable to Update Cart Item - " + exp.Message.ToString(), exp);
         }
     }
 }
Example #7
0
 public void RemoveItem(string removeCartID, int removeProductID)
 {
     using (var _db = new ProdavnicaIgracaka.Models.ProductContext())
     {
         try
         {
             var myItem = (from c in _db.ShoppingCartItems where c.CartId == removeCartID && c.Product.ProductID == removeProductID select c).FirstOrDefault();
             if (myItem != null)
             {
                 _db.ShoppingCartItems.Remove(myItem);
                 _db.SaveChanges();
             }
         }
         catch (Exception exp)
         {
             throw new Exception("ERROR: Unable to Remove Cart Item - " + exp.Message.ToString(), exp);
         }
     }
 }
        //izmenjeno i dodato za route
        public IQueryable <Product> GetProduct(
            [QueryString("ProductID")] int?productId,
            [RouteData] int prdId)
        {
            var _db = new ProdavnicaIgracaka.Models.ProductContext();
            IQueryable <Product> query = _db.Products;

            if (prdId > 0)
            {
                query = query.Where(p => p.ProductID == prdId);
            }

            else
            {
                query = null;
            }

            return(query);
        }
Example #9
0
        //Ovde imamo samo deklarisanu metodu GetProducts koja predstavlja vrednost prethodno pomenutog svojstva SelectMethod
        //i vraca tip IQueriable<Products>-obezbeđuje funkcionalnost za procenu upita prema određenom izvoru podataka
        //gde je tip podataka(Proizvodi) poznat.
        public IQueryable <Product> GetProducts(
            [QueryString("id")] int?categoryId,
            [RouteData] string categoryName)
        {
            var _db = new ProdavnicaIgracaka.Models.ProductContext();
            IQueryable <Product> query = _db.Products;

            if (categoryId.HasValue && categoryId > 0)
            {
                //vrati sve proizvode cija kolona CategoryID je ista kao categoryId  koji je dosao iz query string-a jer koristimo IQueryable
                query = query.Where(p => p.CategoryID == categoryId);
            }
            //String.Compare vraca nulu ukoliko nema razlika izmedju naziva kategorije na proizvodu i categoryName prosledjenog kroz route url.
            if (!String.IsNullOrEmpty(categoryName))
            {
                query = query.Where(p =>
                                    String.Compare(p.Category.CategoryName,
                                                   categoryName) == 0);
            }
            //Te ce se tako query vratiti samo za proizvode kojima je kategorija tog naziva.
            return(query);
        }