public ActionResult Compare(SimpleFilterViewModel model) { RaceFilterViewModel filter; //the following is a workaround for some flawed javascript that doesn't always pass the params we need if (String.IsNullOrEmpty(model.Races)) { var simple = SimpleFilterViewModel.Create(Request.UrlReferrer.Query); if (!String.IsNullOrEmpty(model.selectedAthletes)) { simple.selectedAthletes = model.selectedAthletes; return(RedirectToAction("Compare", simple)); } //this is to keep from a null exception filter = new RaceFilterViewModel(simple); } else { filter = new RaceFilterViewModel(model); } var viewmodel = new TriathletesCompareViewModel(); viewmodel.Filter = filter; //order them from fastest to slowest so the view can know who was first,second, last, etc. viewmodel.Triathletes = _DBContext.Triathletes.Include("RequestContext.Race").OrderBy(t => t.Finish) .Where(t => filter.SelectedAthleteIds.Contains(t.TriathleteId)); viewmodel.Stats = GetStats(viewmodel.Triathletes.ToList()); return(View("~/Views/Triathletes/Compare.cshtml", viewmodel)); }
//search all athletes we have by name and return details of all their races public PartialViewResult AthleteSearchAllByName(string athletes) { if (athletes == "0") { var simple = SimpleFilterViewModel.Create(Request.UrlReferrer.Query); return(DisplayPagedAthletes(1, simple)); } return(PartialView("_SearchResults-All", DoSearchAllByName(athletes))); }
//search athletes by id public PartialViewResult AthleteSearch(string SelectedAthleteId) { if (SelectedAthleteId == "0") { var simple = SimpleFilterViewModel.Create(Request.UrlReferrer.Query); return(DisplayPagedAthletes(1, simple)); } return(PartialView("_SearchResults-Race", DoSearchById(SelectedAthleteId))); }
public ActionResult GetAthlete(string raceId) { if (String.IsNullOrEmpty(raceId)) { return(new HttpNotFoundResult()); } var simpleModel = SimpleFilterViewModel.Create(); simpleModel.Races = raceId; return(RedirectToAction("ViewResults", "TriStatsSummary", simpleModel)); }
public ActionResult DisplayStats(FilterViewModel filterModel) { if (filterModel.selectedRaceIds == null) { return(new HttpNotFoundResult()); } var simpleModel = SimpleFilterViewModel.Create(filterModel); if (filterModel.selectedRaceIds.Count() > 1) { return(RedirectToAction("ViewResults", "CompareRaces", simpleModel)); } else { return(RedirectToAction("ViewResults", "TriStatsSummary", simpleModel)); } }