public ActionResult SearchResults(string namNumber, string roomNumber, string vlan, string building, string department) { var hasNamNumber = !(String.IsNullOrEmpty(namNumber) || namNumber.Equals("0")); var hasRoomNumber = !(String.IsNullOrEmpty(roomNumber) || roomNumber.Equals("0")); var hasVlanId = !(String.IsNullOrEmpty(vlan) || vlan.Equals("0")); var hasBuildingId = !(String.IsNullOrEmpty(building) || building.Equals("0")); var hasDepartmentId = !(String.IsNullOrEmpty(department) || department.Equals("0")); var hasSearchParameters = hasNamNumber || hasRoomNumber || hasVlanId || hasBuildingId || hasDepartmentId ? true : false; var viewModel = new NamSearchModel { DataNams = new List<DataNam>() }; if (hasSearchParameters) { NamSearchExpression = PredicateBuilder.True<DataNam>(); if (hasNamNumber) { NamSearchExpression = NamSearchExpression.And(p => p.NamNumber.Equals(namNumber)); } if (hasRoomNumber) { NamSearchExpression = NamSearchExpression.And(p => p.Room.Equals(roomNumber)); } if (hasVlanId) { NamSearchExpression = NamSearchExpression.And(p => p.Vlan.Id == int.Parse(vlan)); } if (hasBuildingId) { NamSearchExpression = NamSearchExpression.And(p => p.Building.Id == int.Parse(building)); } if (hasDepartmentId) { NamSearchExpression = NamSearchExpression.And(p => p.Department.Id.Equals(department)); } viewModel.DataNams = _dataNamRepository .Queryable .Where(NamSearchExpression) .OrderBy(t => t.NamNumber) .ToList(); } return View(viewModel); }
// // GET: /NamSearch/ public ActionResult Index() { var viewModel = new NamSearchModel { DataNams = new List<DataNam>(), Vlans = _vlanRepository.Queryable.OrderBy(t => t.Name).ToList(), Buildings = _buildingRepository.Queryable.OrderBy(t => t.Name).ToList(), Departments = _departmentRepository.Queryable.OrderBy(t => t.Name).ToList() }; return View(viewModel); }