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)); }
public ViewResult Index(WarehouseStockSearchModel stockSearchModel) { ViewData["results"] = _warehouseStockAdminService.Search(stockSearchModel); ViewData["warehouse-options"] = _warehouseStockAdminService.GetWarehouseOptions(); return(View(stockSearchModel)); }