public async Task <IActionResult> PutTopProduct(int id, TopProduct topProduct) { if (id != topProduct.Id) { return(BadRequest()); } _context.Entry(topProduct).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!TopProductExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public ActionResult DeleteConfirmed(int id) { TopProduct topproduct = db.TopProducts.Find(id); db.TopProducts.Remove(topproduct); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "Id,ProductName,Price,ProductCode,AddedDate,AvailableQuantity,ProductReview,ImagePath")] TopProduct topproduct) { if (ModelState.IsValid) { db.Entry(topproduct).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(topproduct)); }
public ActionResult Create([Bind(Include = "Id,ProductName,Price,ProductCode,AddedDate")] TopProduct topproduct) { if (ModelState.IsValid) { db.TopProducts.Add(topproduct); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(topproduct)); }
// GET: /TopProduct/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } TopProduct topproduct = db.TopProducts.Find(id); if (topproduct == null) { return(HttpNotFound()); } return(View(topproduct)); }
public async Task <ActionResult <TopProduct> > PostTopProduct(TopProduct topProduct) { _context.TopProducts.Add(topProduct); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (TopProductExists(topProduct.Id)) { return(Conflict()); } else { throw; } } return(CreatedAtAction("GetTopProduct", new { id = topProduct.Id }, topProduct)); }
/// <summary> /// Update Analytics Table /// </summary> /// <param name="order"></param> /// <returns></returns> public static bool UpdateTopProducts(OrderDTO order) { try { var analytics = (from a in db.TopProducts select a).ToList(); var categories = (from c in db.ProductCategories select c).ToList(); foreach (var orderItem in order.orders) { db.Products.FirstOrDefault(x => x.Id == orderItem.ProductId).TotalQuantitySale += orderItem.Quantity; db.SaveChanges(); } var newOrdersPlaced = (from o in db.OrderLines where o.OrderId == order.Id select o).ToList(); foreach (var orderItem in newOrdersPlaced) { db.ProductCategories.FirstOrDefault(x => x.Id == orderItem.Product.CategoryId).TotalSaleQuantity += orderItem.Quantity; db.SaveChanges(); } foreach (var category in categories) { var categoryRowsInAnalytics = analytics.Where(x => x.ProductCategoryId == category.Id); if (categoryRowsInAnalytics.Count() < 5) { var topProductsInOrder = newOrdersPlaced.Where(x => x.Product.ProductCategory.Id == category.Id); int i = topProductsInOrder.Count() - 1; while (categoryRowsInAnalytics.Count() != 5 && i >= 0) { var newProduct = new TopProduct() { Id = Guid.NewGuid(), TotalSale = topProductsInOrder.ElementAt(i).Product.TotalQuantitySale, ProductId = topProductsInOrder.ElementAt(i).ProductId, ProductCategoryId = topProductsInOrder.ElementAt(i).Product.ProductCategory.Id, }; db.TopProducts.Add(newProduct); db.SaveChanges(); analytics = (from a in db.TopProducts select a).ToList(); categoryRowsInAnalytics = analytics.Where(x => x.ProductCategoryId == category.Id); i--; } } else { var topProductsInOrder = newOrdersPlaced.OrderBy(x => x.Quantity).Where(x => x.Product.ProductCategory.Id == category.Id); foreach (var orderItem in topProductsInOrder) { foreach (var analyticItem in categoryRowsInAnalytics) { if (analyticItem.TotalSale < orderItem.Product.TotalQuantitySale) { db.TopProducts.Remove(analyticItem); db.TopProducts.Add(new TopProduct() { Id = Guid.NewGuid(), ProductCategoryId = analyticItem.ProductCategoryId, ProductId = orderItem.ProductId, TotalSale = orderItem.Product.TotalQuantitySale }); db.SaveChanges(); } } } } } return(true); } catch (Exception e) { return(false); } }