コード例 #1
0
        public void Search_Products_DescriptionFilter()
        {
            var viewModel = new SearchProductsViewModel(DependencyContainer);

            var dataContext = DependencyContainer.Resolve <DataContext>();

            dataContext.Products.Add(new Product()
            {
                ProductDescription = "abc"
            });
            dataContext.Products.Add(new Product()
            {
                ProductDescription = "abc"
            });
            dataContext.Products.Add(new Product()
            {
                ProductDescription = "test"
            });

            dataContext.SaveChanges();

            viewModel.SearchBox = "test";

            Assert.Single(viewModel.Items);
        }
コード例 #2
0
        private string GenerateProductsModelAsStringJson(SearchProductsViewModel searchProductsViewModel)
        {
            string arrayProducts = "";
            List <ProductsSearchModel> productsSearchModel;

            productsSearchModel = new List <ProductsSearchModel> ();
            if (searchProductsViewModel.code == PRODUCT_AVAILABLE_CODE)
            {
                foreach (var single in searchProductsViewModel.data)
                {
                    ProductsSearchModel productSearch = new ProductsSearchModel();

                    productSearch.value = single.productPartNumber;
                    productSearch.data  = single.productId.ToString();

                    productsSearchModel.Add(productSearch);
                }
                arrayProducts = JsonConvert.SerializeObject(productsSearchModel);
            }
            else
            {
                arrayProducts = JsonConvert.SerializeObject(productsSearchModel);
            }

            return(arrayProducts);
        }
コード例 #3
0
        public void Home_Load()
        {
            var dataContext = DependencyContainer.Resolve <DataContext>();

            dataContext.Products.Add(new Product()
            {
                ProductDescription = "abc"
            });
            dataContext.Products.Add(new Product()
            {
                ProductDescription = "abc"
            });
            dataContext.Products.Add(new Product()
            {
                ProductDescription = "test"
            });

            dataContext.CrashCompanies.Add(new CrashCompany()
            {
                CCName = "ghi"
            });
            dataContext.CrashCompanies.Add(new CrashCompany()
            {
                CCName = "jkl"
            });

            dataContext.Suppliers.Add(new Supplier {
                SupplierName = "supplier1"
            });
            dataContext.Suppliers.Add(new Supplier {
                SupplierName = "ghi"
            });

            dataContext.ProductCategories.Add(new ProductCategory {
                PCName = "supplier1"
            });
            dataContext.ProductCategories.Add(new ProductCategory {
                PCName = "ghi"
            });

            dataContext.SaveChanges();

            var viewModel = new SearchProductsViewModel(DependencyContainer);

            Assert.NotNull(viewModel.Categories);
            Assert.True(viewModel.Categories.Any());

            Assert.NotNull(viewModel.Items);
            Assert.True(viewModel.Items.Any());

            Assert.NotNull(viewModel.Suppliers);
            Assert.True(viewModel.Suppliers.Any());

            Assert.NotNull(viewModel.Categories);
            Assert.True(viewModel.Categories.Any());
        }
コード例 #4
0
        public async Task <IActionResult> SearchProducts(string search)
        {
            await CheckUserCounterData();

            var products = await catalogService.SearchProducts(search);

            var resultado = new SearchProductsViewModel(products, search);

            return(View("Index", resultado));
        }
コード例 #5
0
        public async Task <IActionResult> Index()
        {
            await CheckUserCounterData();

            var products = await catalogService.GetProducts();

            var resultado = new SearchProductsViewModel(products, "");

            return(base.View(resultado));
        }
コード例 #6
0
        public async Task <string> Index(string productBrandId, string searchingKey)
        {
            LoginComponent             sessionModel;
            SearchProductsViewModel    searchProductsViewModel = new SearchProductsViewModel();
            ConstructProductsAllBrands constructProducts       = new ConstructProductsAllBrands(ProductRepository);

            sessionModel = await GetUserLoginSession();

            searchProductsViewModel = await constructProducts.GetProductsSingleBrand(ConstructorParamQueryString.ParamQueryString (productBrandId, searchingKey).Result, sessionModel);

            return(GenerateProductsModelAsStringJson(searchProductsViewModel));
        }
コード例 #7
0
        public IActionResult SearchResults(int minStock, int maxStock)
        {
            NorthwindDb             db       = new NorthwindDb(@"Data Source=.\sqlexpress;Initial Catalog=Northwnd;Integrated Security=True;");
            List <Product>          products = db.SearchProducts(minStock, maxStock);
            SearchProductsViewModel vm       = new SearchProductsViewModel
            {
                Products = products,
                MinStock = minStock,
                MaxStock = maxStock
            };

            return(View(vm));
        }
コード例 #8
0
        public void Products_Filter_Companies()
        {
            var viewModel = new SearchProductsViewModel(DependencyContainer);

            var dataContext = DependencyContainer.Resolve <DataContext>();
            var company1    = new CrashCompany()
            {
                CCName = "test company"
            };
            var company2 = new CrashCompany()
            {
                CCName = "test company2"
            };

            dataContext.Products.Add(new Product()
            {
                ProductDescription = "abc", Company = company2
            });
            dataContext.Products.Add(new Product()
            {
                ProductDescription = "def", Company = company2
            });
            dataContext.Products.Add(new Product()
            {
                ProductDescription = "product 1", Company = company1
            });

            dataContext.CrashCompanies.Add(new CrashCompany()
            {
                CCName = "ghi"
            });
            dataContext.CrashCompanies.Add(new CrashCompany()
            {
                CCName = "jkl"
            });
            dataContext.CrashCompanies.Add(company1);

            dataContext.SaveChanges();

            viewModel.SearchBox = "product 1";
            Assert.Single(viewModel.Items);

            viewModel.SelectedCompany = company1.CCName;
            Assert.Single(viewModel.Items);

            var expected = viewModel.Items.First();

            Assert.NotNull(expected.Company);
            Assert.NotNull(expected.Company.Products);
            Assert.Equal(1, expected.Company.Products.Count);
        }
コード例 #9
0
        public async Task <string> ProductListDataModelAsString(string productBrandId, string searchingKey)
        {
            LoginComponent             sessionModel;
            SearchProductsViewModel    searchProductsViewModel = new SearchProductsViewModel();
            ConstructProductsAllBrands constructProducts       = new ConstructProductsAllBrands(ProductRepository);

            sessionModel = await GetUserLoginSession();

            searchProductsViewModel = await constructProducts.GetProductsSingleBrand(ConstructorParamQueryString.ParamQueryString (productBrandId, searchingKey).Result, sessionModel);

            string result = JsonConvert.SerializeObject(new ProductListPresentationModel().MapList(searchProductsViewModel.data));

            return(result);
        }
コード例 #10
0
        public ActionResult SearchProductResults(SearchProductModel model)
        {
            SearchProductsViewModel returnModel = new SearchProductsViewModel();
            var response = AsyncHelpers.RunSync <JObject>(() => ApiCall.CallApi("api/Admin/SearchProducts", User, null, true, false, null, "ProductName=" + model.ProductName + "", "ProductPrice=" + model.ProductPrice, "CategoryName=" + model.CategoryName + "", "StoreId=" + Global.StoreId, "CatId=null"));

            if (response is Error)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, (response as Error).ErrorMessage));
            }
            else
            {
                returnModel = response.GetValue("Result").ToObject <SearchProductsViewModel>();
            }
            returnModel.SetSharedData(User);
            return(PartialView("_SearchProductResults", returnModel));
        }
コード例 #11
0
ファイル: SearchController.cs プロジェクト: bchakarov/XeMart
        public IActionResult Index(string searchTerm, int?mainCategoryId = null, int pageNumber = 1, int itemsPerPage = 6, string sorting = "price asc")
        {
            if (pageNumber <= 0)
            {
                this.TempData["Error"] = "Page number cannot be negative.";
                return(this.RedirectToAction("Index", "Home"));
            }

            if (itemsPerPage <= 0)
            {
                this.TempData["Error"] = "Items per page cannot be negative.";
                return(this.RedirectToAction("Index", "Home"));
            }

            var products = this.productsService.TakeProductsBySearchStringAndMainCategoryId <ProductViewModel>(searchTerm, mainCategoryId, pageNumber, itemsPerPage, sorting);

            foreach (var product in products)
            {
                if (!string.IsNullOrEmpty(product.Description))
                {
                    var descriptionText = WebUtility.HtmlDecode(Regex.Replace(product.Description, @"<[^>]+>", string.Empty));
                    product.Description = this.stringService.TruncateAtWord(descriptionText, DescriptionMaxLength);
                }
            }

            var searchViewModel = new SearchProductsViewModel
            {
                ItemsCount         = this.productsService.GetProductsCountBySearchStringAndMainCategoryId(searchTerm, mainCategoryId),
                ItemsPerPage       = itemsPerPage,
                PageNumber         = pageNumber,
                Products           = products,
                SortingValues      = this.sortingValues,
                Sorting            = sorting,
                SearchTerm         = searchTerm,
                MainCategoryId     = mainCategoryId,
                ItemsPerPageValues = this.itemsPerPageValues,
                Area       = string.Empty,
                Controller = "Search",
                Action     = nameof(this.Index),
            };

            return(this.View(searchViewModel));
        }
コード例 #12
0
        public async Task <IActionResult> SearchProducts(string pesquisa)
        {
            try
            {
                await CheckUserCounterData();

                var products = await catalogService.SearchProducts(pesquisa);

                var resultado = new SearchProductsViewModel(products, pesquisa);
                return(View("Index", resultado));
            }
            catch (BrokenCircuitException e)
            {
                logger.LogError(e, e.Message);
                HandleBrokenCircuitException(catalogService);
            }
            catch (Exception e)
            {
                logger.LogError(e, e.Message);
                HandleException();
            }

            return(View("Index"));
        }
コード例 #13
0
        public async Task <IActionResult> Index()
        {
            try
            {
                await CheckUserCounterData();

                var products = await catalogService.GetProducts();

                var resultado = new SearchProductsViewModel(products, "");
                return(base.View(resultado));
            }
            catch (BrokenCircuitException e)
            {
                logger.LogError(e, e.Message);
                HandleBrokenCircuitException(catalogService);
            }
            catch (Exception e)
            {
                logger.LogError(e, e.Message);
                HandleException();
            }

            return(View());
        }
コード例 #14
0
 public ProductListViewModel()
 {
     SearchProductsView = new SearchProductsViewModel();
 }
コード例 #15
0
        public void Products_Filter_Company_AndSuppliers()
        {
            var viewModel = new SearchProductsViewModel(DependencyContainer);

            var dataContext = DependencyContainer.Resolve <DataContext>();

            var supplier1 = new Supplier {
                SupplierName = "supplier1"
            };
            var supplier2 = new Supplier {
                SupplierName = "ghi"
            };

            dataContext.Suppliers.Add(supplier2);
            dataContext.Suppliers.Add(new Supplier {
                SupplierName = "jkl"
            });
            dataContext.Suppliers.Add(supplier1);

            var company1 = new CrashCompany()
            {
                CCName = "test company"
            };
            var company2 = new CrashCompany()
            {
                CCName = "test company2"
            };

            dataContext.CrashCompanies.Add(new CrashCompany()
            {
                CCName = "ghi"
            });
            dataContext.CrashCompanies.Add(new CrashCompany()
            {
                CCName = "jkl"
            });
            dataContext.CrashCompanies.Add(company1);

            dataContext.Products.Add(new Product()
            {
                ProductDescription = "product-2", Company = company2, Supplier = supplier1
            });
            dataContext.Products.Add(new Product()
            {
                ProductDescription = "product-1", Company = company2, Supplier = supplier2
            });
            dataContext.Products.Add(new Product()
            {
                ProductDescription = "def-ghijk", Company = company1, Supplier = supplier1
            });

            dataContext.SaveChanges();

            viewModel.SearchBox = "product-";
            Assert.Equal(2, viewModel.Items.Count);

            viewModel.SelectedCompany = company2.CCName;
            Assert.Equal(2, viewModel.Items.Count);

            viewModel.SelectedSupplier = supplier1.SupplierName;
            Assert.Single(viewModel.Items);

            var expected = viewModel.Items.First();

            Assert.NotNull(expected.Company);
            Assert.NotNull(expected.Company.Products);

            Assert.Equal(2, expected.Company.Products.Count);
        }