private bool UserHasNotSearched(MiniatureSearchViewModel search) { if (search.Name == null && search.Price == null && search.Description == null && search.Year == null && search.GameName == null && search.Faction == null && search.Size == null && search.Speed == null && search.Attack == null && search.Strength == null && search.HitPoints == null && search.Defense == null ) { return(true); } return(false); }
public ActionResult Search(MiniatureSearchViewModel search) { if (UserHasNotSearched(search)) { return(View(search)); } //IQueryable results DO NOT query database IQueryable <Miniature> query = from p in db.Miniatures select p; if (search.Name != null) { query = from p in query where p.Name == search.Name select p; } if (search.Price.HasValue) { query = from p in query where p.Price >= search.Price select p; } if (search.Description != null) { query = from p in query where p.Description == search.Description select p; } if (search.Year.HasValue) { query = from p in query where p.Year == search.Year select p; } if (search.GameName != null) { query = from p in query where p.GameName == search.GameName select p; } if (search.Faction != null) { query = from p in query where p.Faction == search.Faction select p; } if (search.Size != null) { query = from p in query where p.Size == search.Size select p; } if (search.Speed.HasValue) { query = from p in query where p.Speed >= search.Speed select p; } if (search.Attack.HasValue) { query = from p in query where p.Attack >= search.Attack select p; } if (search.Strength.HasValue) { query = from p in query where p.Strength >= search.Strength select p; } if (search.HitPoints.HasValue) { query = from p in query where p.HitPoints >= search.HitPoints select p; } if (search.Defense.HasValue) { query = from p in query where p.Defense >= search.Defense select p; } //SEND completed query to database and get products search.SearchResults = query.ToList(); return(View(search)); }