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());
        }
Ejemplo n.º 2
0
        public ActionResult DeleteConfirmed(int id)
        {
            TopProduct topproduct = db.TopProducts.Find(id);

            db.TopProducts.Remove(topproduct);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 3
0
 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));
 }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        // 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));
        }
Ejemplo n.º 7
0
        /// <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);
            }
        }