Example #1
0
        public ActionResult ManageProductView()
        {
            List <ProductModel> productModels  = new List <ProductModel>();
            ProductService      productService = new ProductService();

            productModels = productService.GetProducts();

            List <ManageProductViewModel> manageProductViewModels = new List <ManageProductViewModel>();

            foreach (var item in productModels)
            {
                var manageProductViewModel = new ManageProductViewModel();
                manageProductViewModel.Id           = item.Id;
                manageProductViewModel.Title        = item.Title;
                manageProductViewModel.Author       = item.Author;
                manageProductViewModel.CategoryName = item.CategoryName;
                manageProductViewModel.Price        = item.Price;
                manageProductViewModel.Balance      = item.Balance;
                manageProductViewModel.IsActive     = item.IsActive;

                manageProductViewModels.Add(manageProductViewModel);
            }

            return(View("ManageProductView", manageProductViewModels));
        }
Example #2
0
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Product product = await db.Products.FindAsync(id);

            if (product == null)
            {
                return(HttpNotFound());
            }

            var viewModel = new ManageProductViewModel
            {
                Categories = await categoryService.GetCategoriesAsync(db),
                Product    = product,
            };

            // Set the categories
            var mainCategory = product.Categories.FirstOrDefault();

            if (mainCategory != null)
            {
                var secondCategory = product.Categories.FirstOrDefault(c => c.Id != mainCategory.Id);
                viewModel.MainCategory      = mainCategory?.Id;
                viewModel.SecondaryCategory = secondCategory?.Id;
            }

            return(View(viewModel));
        }
Example #3
0
        public async Task <ActionResult> Create(ManageProductViewModel viewModel)
        {
            // Product defaults
            var product = viewModel.Product;

            product.Added = DateTime.Now;

            // Manage categories
            product.Categories = new List <Category>();
            if (viewModel.MainCategory != null)
            {
                product.Categories.Add(categoryService.GetCategory(viewModel.MainCategory.Value, db));
            }
            if (viewModel.SecondaryCategory != null)
            {
                product.Categories.Add(categoryService.GetCategory(viewModel.SecondaryCategory.Value, db));
            }

            if (ModelState.IsValid)
            {
                db.Products.Add(product);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(viewModel));
        }
        public IActionResult AddProductAction([FromForm] ManageProductViewModel manageProductViewModel)
        {
            var product = new Product
            {
                Name               = manageProductViewModel.Product.Name,
                Description        = manageProductViewModel.Product.Description,
                Price              = manageProductViewModel.Product.Price,
                ImageUrl           = manageProductViewModel.Product.ImageUrl,
                IsProductOfTheWeek = manageProductViewModel.Product.IsProductOfTheWeek,
                CategoryId         = manageProductViewModel.Product.CategoryId
            };
            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri("https://localhost:5001/api/Administration/AddProduct/" + product);

            // Add an Accept header for JSON format.
            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));
            var json = JsonConvert.SerializeObject(product);
            HttpResponseMessage response = client.PostAsync(client.BaseAddress,
                                                            new StringContent(json, Encoding.UTF8, "application/json")).Result;

            if (response.IsSuccessStatusCode)
            {
                return(View("Submit"));
            }
            else
            {
                return(RedirectToAction("AddProduct", "Management"));
            }
        }
Example #5
0
        public async Task <ActionResult> Create()
        {
            var viewModel = new ManageProductViewModel {
                Categories = await categoryService.GetCategoriesAsync(db)
            };

            return(View(viewModel));
        }
        public IActionResult Create(ManageProductViewModel manageProductViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(manageProductViewModel));
            }

            _productRepository.Create(manageProductViewModel.Product);

            return(RedirectToAction(nameof(List)));
        }
Example #7
0
        public async Task <ActionResult> Edit(ManageProductViewModel viewModel)
        {
            var product = viewModel.Product;

            // Manage product categories
            product.Categories = new List <Category>();
            if (viewModel.MainCategory != null)
            {
                product.Categories.Add(categoryService.GetCategory(viewModel.MainCategory.Value, db));
            }
            if (viewModel.SecondaryCategory != null)
            {
                product.Categories.Add(categoryService.GetCategory(viewModel.SecondaryCategory.Value, db));
            }

            if (ModelState.IsValid)
            {
                db.Products.AddOrUpdate(p => p.Id, product);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(viewModel));
        }
        public IActionResult Update(ManageProductViewModel manageProductViewModel)
        {
            _productRepository.Update(manageProductViewModel.Product);

            return(RedirectToAction(nameof(List)));
        }