Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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();
 }