public ActionResult Save(Product product)
        {
            HttpPostedFileBase file = Request.Files["ImageData"];

            product.Image = ConvertToBytes(file);
            if (!ModelState.IsValid)
            {
                var vm = new NewProductsViewModel(product)
                {
                    Categories = _context.Categories.ToList()
                };
                return(View("Create", vm));
            }

            if (product.Id == 0)
            {
                _context.Products.Add(product);
            }
            else
            {
                var prodInDb = _context.Products.Single(p => p.Id == product.Id);
                prodInDb.Name        = product.Name;
                prodInDb.Price       = product.Price;
                prodInDb.ShadeColour = product.ShadeColour;
                prodInDb.Image       = product.Image;
                prodInDb.CID         = product.CID;
            }
            _context.SaveChanges();
            return(RedirectToAction("Index", "Product"));
        }
        public ActionResult Create()
        {
            HttpResponseMessage response1 = GlobalVar.webApiClient.GetAsync("Category").Result;

            var viewModel = new NewProductsViewModel
            {
                Categories = response1.Content.ReadAsAsync<IEnumerable<Category>>().Result
            };
            return View(viewModel);
        }
        public ActionResult Create()
        {
            var categories = _context.Categories.ToList();
            var vm         = new NewProductsViewModel
            {
                Categories = categories
            };

            return(View(vm));
        }
Пример #4
0
        public ActionResult NewProducts()
        {
            var products  = dbContext.Products.Where(k => !k.Hidden).OrderByDescending(k => k.DateOfAddition).Take(4).ToList();
            var viewModel = new NewProductsViewModel()
            {
                Products = products
            };

            return(PartialView(viewModel));
        }
        public ActionResult Edit(int id)
        {
            Product product;
            HttpResponseMessage response = GlobalVar.webApiClient.GetAsync($"Product/{id}").Result;
            product = response.Content.ReadAsAsync<Product>().Result;
            HttpResponseMessage response1 = GlobalVar.webApiClient.GetAsync("Category").Result;

            var viewModel = new NewProductsViewModel(product)
            {

                Categories = response1.Content.ReadAsAsync<IEnumerable<Category>>().Result
            };
            return View("Create", viewModel);
        }
        public ActionResult Edit(int id)
        {
            var product = _context.Products.SingleOrDefault(p => p.Id == id);

            if (product == null)
            {
                return(HttpNotFound());
            }
            var vm = new NewProductsViewModel(product)
            {
                Categories = _context.Categories.ToList()
            };

            return(View("Create", vm));
        }
 public ActionResult Save(Product product)
 {
     if (!ModelState.IsValid)
     {
         HttpResponseMessage response1 = GlobalVar.webApiClient.GetAsync("Category").Result;
         var viewModel = new NewProductsViewModel(product)
         {
             Categories = response1.Content.ReadAsAsync<IEnumerable<Category>>().Result
         };
         return View("Create", viewModel);
     }
     if (product.Id == 0)
     {
         HttpResponseMessage response = GlobalVar.webApiClient.PostAsJsonAsync("Product", product).Result;
     }
     else
     {
         HttpResponseMessage response = GlobalVar.webApiClient.PutAsJsonAsync($"Product/{product.Id}", product).Result;
     }
     return RedirectToAction("Index", "Product");
 }
Пример #8
0
        public ActionResult NewProducts(string filterText = "", string sortOrder = "", int page = 1, int pageSize = 36)
        {
            var model = new NewProductsViewModel();

            try
            {
                // Set meta data
                ViewBag.MetaDescription = "Memory Audio - Sản phẩm mới";
                ViewBag.MetaKeywords    = "memory audio,new products,san pham moi,audiophile,sound,hifi,stereo,hi-end,hd,ultra-hd,dts,dts-hd";

                using (var db = new DBContext())
                {
                    model.FilterText = filterText.Trim();
                    model.SortOrder  = sortOrder;
                    // Select products
                    var query = from p in db.Products
                                join c in db.Categories on p.CategoryId equals c.CategoryId into pc
                                join b in db.Brands on p.BrandId equals b.BrandId into pb
                                from j1 in pc.DefaultIfEmpty()
                                from j2 in pb.DefaultIfEmpty()
                                where p.Display == 3
                                select new ProductInfo
                    {
                        ProductId     = p.ProductId,
                        ProductName   = p.ProductName,
                        CategoryId    = p.CategoryId,
                        CategoryName  = j1.CategoryName,
                        BrandId       = p.BrandId,
                        BrandName     = j2.BrandName,
                        Specification = p.Specification,
                        TotalInStock  = p.TotalInStock,
                        Price         = p.Price,
                        Discount      = p.Discount,
                        Image1        = p.Image1,
                        Image2        = p.Image2,
                        Image3        = p.Image3,
                        Image4        = p.Image4,
                        Image5        = p.Image5,
                        Image6        = p.Image6,
                        CreationDate  = p.CreationDate,
                        Display       = p.Display,
                        SortIdx       = p.SortIdx
                    };

                    // Filter
                    if (!string.IsNullOrWhiteSpace(filterText))
                    {
                        query = query.Where(r => r.ProductName.Contains(filterText) || r.CategoryName.Contains(filterText));
                    }

                    // Sorting
                    switch (sortOrder)
                    {
                    case "price":
                        query = query.OrderBy(p => p.Price);
                        break;

                    case "price_desc":
                        query = query.OrderByDescending(p => p.Price);
                        break;

                    case "name":
                        query = query.OrderBy(p => p.ProductName);
                        break;

                    case "name_desc":
                        query = query.OrderByDescending(p => p.ProductName);
                        break;

                    default:
                        query = query.OrderByDescending(p => p.SortIdx);
                        break;
                    }
                    var products  = query.ToList();
                    var pageCount = (products.Count() / pageSize) + (products.Count() % pageSize > 0 ? 1 : 0);
                    if (page > pageCount)
                    {
                        page = pageCount;
                    }
                    model.Products = query.ToPagedList <ProductInfo>(page == 0 ? 1 : page, pageSize);
                }
                model.PageIndex = model.Products.PageNumber;
                model.PageSize  = model.Products.PageSize;
                return(View(model));
            }
            catch (Exception ex)
            {
                // Write event logs
                EventLogs.Write("HomeController - NewProducts: " + ex.ToString(), EventLogEntryType.Error);

                // Redirect to error page
                return(RedirectToAction("Index", "Error"));
            }
        }