public static int GetCount(MarketSearchBoxModel marketSearchBox) { using (Entities ctx = new Entities()) { var whereClause = PredicateBuilder.False<Coin>(); if (marketSearchBox.AppraisalInstitute_PCGS) whereClause = whereClause.Or(x => x.AppraisalInstitute.Contains("PCGS")); if (marketSearchBox.AppraisalInstitute_NGC) whereClause = whereClause.Or(x => x.AppraisalInstitute.Contains("NGC")); if (marketSearchBox.AppraisalInstitute_ANA) whereClause = whereClause.Or(x => x.AppraisalInstitute.Contains("ANA")); if (!marketSearchBox.AppraisalInstitute_PCGS && !marketSearchBox.AppraisalInstitute_NGC && !marketSearchBox.AppraisalInstitute_ANA) whereClause = whereClause.Or(x => 1 == 1); if (marketSearchBox.CoinLevelId != 0) whereClause = whereClause.And(x => x.CoinLevelId == marketSearchBox.CoinLevelId); if (!String.IsNullOrWhiteSpace(marketSearchBox.AppraisalScore)) whereClause = whereClause.And (x => x.AppraisalScore == marketSearchBox.AppraisalScore.Trim()); var nameWhereClause = PredicateBuilder.False<Coin>(); if (!String.IsNullOrWhiteSpace(marketSearchBox.Description)) { nameWhereClause = nameWhereClause.Or (x => x.Name.Contains(marketSearchBox.Description.Trim())); nameWhereClause = nameWhereClause.Or (x => x.Description.Contains(marketSearchBox.Description.Trim())); ctx.Coins.AsExpandable().Where(nameWhereClause); } else nameWhereClause = nameWhereClause.Or(x => 1 == 1); return ctx.Coins.AsExpandable().Where(whereClause).Where(nameWhereClause).Count(); } }
public static IList<View_CoinWithLastDealHistory> GetCoinsByMarketSearch(MarketSearchBoxModel marketSearchBox, string sortingExpression, int pageIndex) { using (Entities ctx = new Entities()) { var whereClause = PredicateBuilder.False<View_CoinWithLastDealHistory>(); if (marketSearchBox.AppraisalInstitute_PCGS) whereClause = whereClause.Or(x => x.AppraisalInstitute.Contains("PCGS")); if (marketSearchBox.AppraisalInstitute_NGC) whereClause = whereClause.Or(x => x.AppraisalInstitute.Contains("NGC")); if (marketSearchBox.AppraisalInstitute_ANA) whereClause = whereClause.Or(x => x.AppraisalInstitute.Contains("ANA")); if (!marketSearchBox.AppraisalInstitute_PCGS && !marketSearchBox.AppraisalInstitute_NGC && !marketSearchBox.AppraisalInstitute_ANA) whereClause = whereClause.Or(x => 1 == 1); //if (marketSearchBox.CoinLevelId != 0) // whereClause = whereClause.And(x => x.CoinLevelId == marketSearchBox.CoinLevelId); if (!String.IsNullOrWhiteSpace(marketSearchBox.AppraisalScore)) whereClause = whereClause.And (x => x.AppraisalScore == marketSearchBox.AppraisalScore.Trim()); if (!String.IsNullOrWhiteSpace(marketSearchBox.LOT)) whereClause = whereClause.And (x => x.LOTS.Contains(marketSearchBox.LOT)); var nameWhereClause = PredicateBuilder.False<View_CoinWithLastDealHistory>(); if (!String.IsNullOrWhiteSpace(marketSearchBox.Description)) { nameWhereClause = nameWhereClause.Or (x => x.Name.Contains(marketSearchBox.Description.Trim())); //nameWhereClause = nameWhereClause.Or // (x => x.Description.Contains(marketSearchBox.Description.Trim())); ctx.View_CoinWithLastDealHistory.AsExpandable().Where(nameWhereClause); } else nameWhereClause = nameWhereClause.Or(x => 1 == 1); var result = ctx.View_CoinWithLastDealHistory.AsExpandable(). Where(whereClause). Where(nameWhereClause). OrderBy(sortingExpression).Skip(pageIndex * 10).Take(10).ToList(); //if (!String.IsNullOrWhiteSpace(marketSearchBox.Price)) //{ // IList<Coin> coins = new List<Coin>(); // foreach (var coin in result) // { // var lastDeal = GetLastCoinDealHistory(coin); // if (lastDeal != null && lastDeal.DealPrice == marketSearchBox.Price.Trim()) // { // coins.Add(coin); // } // } // return coins; //} //else // return result; return result; } }
public ActionResult Search(MarketSearchBoxModel marketSearchBox) { ViewBag.MarketSearchBoxString = marketSearchBox.ToString(); return View(); }