// Display the search form public IActionResult Index() { SearchAnimalsViewModel animalsViewModel = new SearchAnimalsViewModel(); animalsViewModel.Title = "Search"; return(View(animalsViewModel)); }
// Lists Animals with a given field matching a given value public IActionResult Animals(AnimalFieldType column, string value) { SearchAnimalsViewModel animalsViewModel = new SearchAnimalsViewModel(); animalsViewModel.Animals = animalData.FindByColumnAndValue(column, value); animalsViewModel.Title = "Animals with " + column + ": " + value; return(View(animalsViewModel)); }
// Process search submission and display search results public IActionResult Results(SearchAnimalsViewModel animalsViewModel) { if (animalsViewModel.Column.Equals(AnimalFieldType.All) || animalsViewModel.Value.Equals("")) { animalsViewModel.Animals = animalData.FindByValue(animalsViewModel.Value); } else { animalsViewModel.Animals = animalData.FindByColumnAndValue(animalsViewModel.Column, animalsViewModel.Value); } animalsViewModel.Title = "Search"; return(View("Index", animalsViewModel)); }
// Lists the values of a given column, or all animals if selected public IActionResult Values(AnimalFieldType column) { if (column.Equals(AnimalFieldType.All)) { SearchAnimalsViewModel animalsViewModel = new SearchAnimalsViewModel(); animalsViewModel.Animals = animalData.Animals; animalsViewModel.Title = "All Animals"; return(View("Animals", animalsViewModel)); } else { AnimalFieldsViewModel animalFieldsViewModel = new AnimalFieldsViewModel(); IEnumerable <AnimalField> fields; switch (column) { case AnimalFieldType.Size: fields = animalData.Sizes.ToList().Cast <AnimalField>(); break; case AnimalFieldType.Origin: fields = animalData.Origins.ToList().Cast <AnimalField>(); break; case AnimalFieldType.Eat: fields = animalData.Eats.ToList().Cast <AnimalField>(); break; case AnimalFieldType.Kind: default: fields = animalData.Kinds.ToList().Cast <AnimalField>(); break; } animalFieldsViewModel.Fields = fields; animalFieldsViewModel.Title = "All " + column + " Values"; animalFieldsViewModel.Column = column; return(View(animalFieldsViewModel)); } }