示例#1
0
        public static ListProductsViewModel Where(this ListProductsViewModel viewModel,
                                                  string nameOrCode = null, InventoryControl?inventoryControl = null)
        {
            viewModel.NameOrCode       = nameOrCode;
            viewModel.InventoryControl = inventoryControl;

            return(viewModel);
        }
示例#2
0
        public ActionResult ListProductsForOrder()
        {
            ListProductsViewModel model = new ListProductsViewModel()
            {
                Products = _productManager.GetProducts()
            };

            return(View(model));
        }
示例#3
0
        public ActionResult ListMyProducts()
        {
            ListProductsViewModel model = new ListProductsViewModel
            {
                Products = _db.Products.ToList()
            };

            return(View(model));
        }
        public IActionResult ListMyProducts()
        {
            ListProductsViewModel model = new ListProductsViewModel
            {
                Products = _db.Products.Include("Category").ToList()
            };

            return(View(model));
        }
示例#5
0
        public async Task <IActionResult> Index()
        {
            var products = await productService.GetAll();

            var vm = new ListProductsViewModel
            {
                Products = products
            };

            return(View(vm));
        }
示例#6
0
        public IActionResult ListProducts()
        {
            var model = new ListProductsViewModel()
            {
                Products =
                    _productService
                    .GetAllProductsBase()
            };

            return(View(model));
        }
示例#7
0
        public async Task <IActionResult> List([FromBody] ListProductsViewModel viewModel)
        {
            ICollection <Product> products = await context.Products
                                             .OrderByName()
                                             .WhereNameOrCode(viewModel.NameOrCode.Words())
                                             .WhereInventoryControl(viewModel.InventoryControl)
                                             .Paginate(viewModel.Index, viewModel.Limit)
                                             .ToListAsync();

            return(new ProductListJson(products));
        }
示例#8
0
        public async Task ShouldList()
        {
            var server         = new ServerFake();
            var user           = server.AppDbContext.CreateUser();
            var product        = server.AppDbContext.CreateProduct(user.Tenant);
            var anotherProduct = server.AppDbContext.CreateProduct(user.Tenant);
            var viewModel      = new ListProductsViewModel();
            var response       = await server.CreateAuthenticatedClient(user).PostAsJsonAsync("products/list", viewModel);

            var json = await response.Content.ReadAsJsonAsync <ProductListJson>();

            Assert.True(response.IsSuccessStatusCode);
            Assert.Equal(2, json.Products.Count);
        }
示例#9
0
        public ActionResult EditProduct(int id)
        {
            AppDbContext          dbContext     = new AppDbContext();
            ListProductsViewModel productDetail = dbContext.GetProducts.SingleOrDefault(p => p.Id == id);

            AddProductDetailsViewModel product = new AddProductDetailsViewModel
            {
                Name      = productDetail.Name,
                Brand     = productDetail.Brand,
                Category  = productDetail.Category,
                ProductId = productDetail.Id
            };

            return(View(product));
        }
示例#10
0
        public async Task ShouldListByInventoryControl()
        {
            var server         = new ServerFake();
            var user           = server.AppDbContext.CreateUser();
            var product        = server.AppDbContext.CreateProduct(user.Tenant, inventoryControl: InventoryControl.Unit);
            var anotherProduct = server.AppDbContext.CreateProduct(user.Tenant, inventoryControl: InventoryControl.None);
            var viewModel      = new ListProductsViewModel().Where(inventoryControl: product.InventoryControl);
            var response       = await server.CreateAuthenticatedClient(user).PostAsJsonAsync("products/list", viewModel);

            var json = await response.Content.ReadAsJsonAsync <ProductListJson>();

            Assert.True(response.IsSuccessStatusCode);
            Assert.True(json.Products.Where(productJson => productJson.Id == product.Id).Any());
            Assert.Equal(1, json.Products.Count);
        }
        public IActionResult Search(ListProductsViewModel model)
        {
            if (!ModelState.IsValid || String.IsNullOrEmpty(model.SearchText))
            {
                model.Products =
                    _productService
                    .GetAllProductsBase();
                return(View("ListProducts", model));
            }

            model.Products =
                _productService
                .SearchProductsBase(model.SearchText);

            return(View("ListProducts", model));
        }
示例#12
0
        public async Task <IActionResult> Index(ListProductsViewModel vm)
        {
            var products = await productService.GetAll();

            vm = vm ?? new ListProductsViewModel();

            if (!string.IsNullOrWhiteSpace(vm.Keywords))
            {
                products = products.
                           Where(x => x.Name.Contains(vm.Keywords) ||
                                 x.Description.Contains(vm.Keywords));
            }

            vm.Products = products;

            return(View(vm));
        }
示例#13
0
        public ActionResult EditProduct(HttpPostedFileBase PhotoPath, AddProductDetailsViewModel model)
        {
            if (ModelState.IsValid)
            {
                AppDbContext          dbContext     = new AppDbContext();
                ListProductsViewModel productDetail = dbContext.GetProducts.SingleOrDefault(p => p.Id == model.ProductId);
                var fileName   = Path.GetFileName(PhotoPath.FileName);
                var path       = "/Public/Products/" + productDetail.Name;
                var photoUrl   = Server.MapPath(path);
                var photoTitle = Path.GetFileNameWithoutExtension(PhotoPath.FileName);
                var uniqName   = Guid.NewGuid().ToString() + "_" + fileName;

                if (!Directory.Exists(photoUrl))
                {
                    Directory.CreateDirectory(photoUrl);
                }

                var photoPath = Path.Combine(photoUrl, uniqName);

                PhotoPath.SaveAs(photoPath);

                AddProductDetailsViewModel product = new AddProductDetailsViewModel
                {
                    Price       = model.Price,
                    Color       = model.Color,
                    Storage     = model.Storage,
                    Processor   = model.Processor,
                    Memory      = model.Memory,
                    Display     = model.Display,
                    CreatedBy   = User.Identity.Name,
                    CreatedDate = DateTime.Now,
                    PhotoPath   = photoPath,
                    PhotoTitle  = photoTitle.ToString(),
                    PhotoSrc    = path + '/' + uniqName,
                    ProductId   = model.ProductId
                };

                dbContext.AddProductDetails(product);
                return(RedirectToAction("Products"));
            }
            return(View());
        }