//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); }
//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); }
//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); } } }
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); }
//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); }