Example #1
0
        public async Task <PagedList <ShopViewModel> > ListShopAsync(ShopRequestListViewModel shopRequestListViewModel)
        {
            var list = await GetAll()
                       .Where(x => (!shopRequestListViewModel.IsActive.HasValue || x.RecordActive == shopRequestListViewModel.IsActive) &&
                              (string.IsNullOrEmpty(shopRequestListViewModel.Query) ||
                               (x.Name.Contains(shopRequestListViewModel.Query)
                               )))
                       .Select(x => new ShopViewModel(x)).ToListAsync();

            var shopViewModelProperties = GetAllProperyNameOfShopViewModel();

            var requestPropertyName = !string.IsNullOrEmpty(shopRequestListViewModel.SortName) ? shopRequestListViewModel.SortName.ToLower() : string.Empty;

            string matchedPropertyName = string.Empty;

            foreach (var shopViewModelProperty in shopViewModelProperties)
            {
                var lowerTypeViewModelProperty = shopViewModelProperty.ToLower();
                if (lowerTypeViewModelProperty.Equals(requestPropertyName))
                {
                    matchedPropertyName = shopViewModelProperty;
                    break;
                }
            }

            if (string.IsNullOrEmpty(matchedPropertyName))
            {
                matchedPropertyName = "Name";
            }

            var type = typeof(ShopViewModel);

            var sortProperty = type.GetProperty(matchedPropertyName);

            list = shopRequestListViewModel.IsDesc ? list.OrderByDescending(x => sortProperty.GetValue(x, null)).ToList() : list.OrderBy(x => sortProperty.GetValue(x, null)).ToList();

            return(new PagedList <ShopViewModel>(list, shopRequestListViewModel.Skip ?? CommonConstants.Config.DEFAULT_SKIP, shopRequestListViewModel.Take ?? CommonConstants.Config.DEFAULT_TAKE));
        }
Example #2
0
        public async Task <IActionResult> GetAll(ShopRequestListViewModel shopRequestListViewModel)
        {
            var shop = await _shopService.ListShopAsync(shopRequestListViewModel);

            return(Ok(shop));
        }