public IPagedList <WarehouseStock> Search(WarehouseStockSearchModel stockSearchModel)
        {
            ProductVariant productVariantAlias = null;
            Product        productAlias        = null;
            var            queryOver           = _session.QueryOver <WarehouseStock>()
                                                 .JoinAlias(stock => stock.ProductVariant, () => productVariantAlias)
                                                 .JoinAlias(() => productVariantAlias.Product, () => productAlias)
                                                 .Fetch(stock => stock.ProductVariant).Eager
                                                 .Fetch(stock => stock.Warehouse).Eager;

            if (stockSearchModel.WarehouseId.HasValue)
            {
                queryOver = queryOver.Where(stock => stock.Warehouse.Id == stockSearchModel.WarehouseId);
            }
            if (!string.IsNullOrWhiteSpace(stockSearchModel.SKU))
            {
                queryOver =
                    queryOver.Where(
                        () => productVariantAlias.SKU == stockSearchModel.SKU);
            }
            if (!string.IsNullOrWhiteSpace(stockSearchModel.Name))
            {
                queryOver =
                    queryOver.Where(
                        () => productVariantAlias.Name.IsInsensitiveLike(stockSearchModel.Name, MatchMode.Anywhere) ||
                        productAlias.Name.IsInsensitiveLike(stockSearchModel.Name, MatchMode.Anywhere)
                        );
            }

            return(queryOver.Paged(stockSearchModel.Page));
        }
Example #2
0
 public ViewResult Index(WarehouseStockSearchModel stockSearchModel)
 {
     ViewData["results"]           = _warehouseStockAdminService.Search(stockSearchModel);
     ViewData["warehouse-options"] = _warehouseStockAdminService.GetWarehouseOptions();
     return(View(stockSearchModel));
 }