GetAllViewModelsFilteredAsync(FilterBindingModel model) { // TODO: Refactor repository architechture efficient data retrieving ICollection <Product> products = Repository.All().ToList <Product>(); // Filter design pattern if (model.CategoryIdFilter != null) { CategoryCriteria categoryCriteria = new CategoryCriteria(model.CategoryIdFilter); products = categoryCriteria.MeetCriteria(products); } if (model.BrandIdFilter != null) { BrandCriteria brandCriteria = new BrandCriteria(model.BrandIdFilter); products = brandCriteria.MeetCriteria(products); } if (model.SearchFilter != null) { SearchCriteria searchCriteria = new SearchCriteria(model.SearchFilter); products = searchCriteria.MeetCriteria(products); } return(this.Mapper.Map <ICollection <ProductViewModel> >(products)); }
public void TestReadJson_InFilter() { var list = new List <long> { 1L, 2L }; var filterBindingModel = new FilterBindingModel { Comparison = ComparisonType.In.Value, Property = "Id", Value = list }; var json = JsonConvert.SerializeObject(filterBindingModel); var testObject = JsonConvert.DeserializeObject <FilterBindingModel>(json, new FilterBindingModelConverter()); Assert.AreEqual(filterBindingModel.Comparison, testObject.Comparison); Assert.AreEqual(filterBindingModel.Property, testObject.Property); var testList = testObject.Value; Assert.IsInstanceOfType(testList, typeof(List <long>)); var testIntList = (List <long>)testList; CollectionAssert.AreEqual(list, testIntList); }
public void TestReadJson_ArrayOfFilters() { var filterBindingModel1 = new FilterBindingModel { Comparison = ComparisonType.Equal.Value, Property = "Id", Value = 1L }; var filterBindingModel2 = new FilterBindingModel { Comparison = ComparisonType.Like.Value, Property = "Name", Value = 2L }; var list = new List <FilterBindingModel> { filterBindingModel1, filterBindingModel2 }; var json = JsonConvert.SerializeObject(list); var testObject = JsonConvert.DeserializeObject <List <FilterBindingModel> >(json, new FilterBindingModelConverter()); Assert.AreEqual(2, testObject.Count); Assert.IsNotNull(testObject.Select(x => x.Property == filterBindingModel1.Property).FirstOrDefault()); Assert.IsNotNull(testObject.Select(x => x.Property == filterBindingModel2.Property).FirstOrDefault()); }
public IEnumerable <ActivityBindingModel> GetActivities(FilterBindingModel model) { var filter = _automapper.Map <Filter>(model); return(_repository.GetAll(filter) // map list of Activities to ActivityBindingModel list .Select(activity => _automapper.Map <ActivityBindingModel>(activity))); }
public async Task <IViewComponentResult> InvokeAsync() { var model = new FilterBindingModel(); List <SelectListItem> brands = _brandService.AllSelectListItems(); model.Items = brands; return(View(model)); }
public void TestToString_AllValuesNull() { var model = new FilterBindingModel { Comparison = null, Property = null, Value = null }; Assert.IsNotNull(model.ToString()); }
public void TestToString_AllValuesInitialized() { var model = new FilterBindingModel { Comparison = ComparisonType.Equal.Value, Property = "S", Value = "hello" }; Assert.IsNotNull(model.ToString()); }
public void TestReadJson_SimpleFilter() { var filterBindingModel = new FilterBindingModel { Comparison = ComparisonType.Equal.Value, Property = "Id", Value = 1L }; var json = JsonConvert.SerializeObject(filterBindingModel); var testObject = JsonConvert.DeserializeObject <FilterBindingModel>(json, new FilterBindingModelConverter()); Assert.AreEqual(filterBindingModel.Comparison, testObject.Comparison); Assert.AreEqual(filterBindingModel.Property, testObject.Property); Assert.AreEqual(filterBindingModel.Value, testObject.Value); }
public IActionResult Index(FilterBindingModel model) { IEnumerable <ProductViewModel> products; // TODO: Encapsulate business logic in service layer if (model.CategoryIdFilter != null || model.BrandIdFilter != null || model.SearchFilter != null) { products = _productService.GetAllViewModelsFilteredAsync(model); } else { products = _productService.GetAllViewModelsAsync(); } return(View(products)); }
public void TestToIFilter() { var model = new FilterBindingModel { Comparison = ComparisonType.Equal.Value, Property = "S", Value = "hello" }; var iFilter = model.ToIFilter(); Assert.IsInstanceOfType(iFilter, typeof(SimpleFilter)); var simpleFilter = (SimpleFilter)iFilter; Assert.AreEqual(model.Comparison, simpleFilter.Comparison); Assert.AreEqual(model.Property, simpleFilter.Property); Assert.AreEqual(model.Value, simpleFilter.Value); }
public IEnumerable <ActivityBindingModel> Get([FromUri] FilterBindingModel filter) { return(_processor.GetActivities(filter)); }