public IActionResult Index(PublicRegisterLicenceListViewModel publicRegisterLicenceListViewModel, string submitButtonType) { SessionHelper.Set("publicRegisterSearchCriteria", publicRegisterLicenceListViewModel.PublicRegisterSearchCriteria); SessionHelper.SetString("publicRegisterSearchCriteria_submitButtonType", submitButtonType); return(RedirectToAction("Index")); }
private PublicRegisterLicenceListViewModel AddCountry(PublicRegisterLicenceListViewModel publicRegisterLicenceListViewModel) { if (publicRegisterLicenceListViewModel.PublicRegisterSearchCriteria.CountriesSelected == null) { publicRegisterLicenceListViewModel.PublicRegisterSearchCriteria.CountriesSelected = new List <string>(); } var countryAdded = publicRegisterLicenceListViewModel.PublicRegisterSearchCriteria.CountryAdded; //add the country into the list of selected countries publicRegisterLicenceListViewModel.PublicRegisterSearchCriteria.CountriesSelected.Add( publicRegisterLicenceListViewModel.AvailableCountries.FirstOrDefault(x => x.Value == countryAdded)?.Value); //remove them from the list of selectable countries foreach (var country in publicRegisterLicenceListViewModel.PublicRegisterSearchCriteria.CountriesSelected.ToList()) { publicRegisterLicenceListViewModel.AvailableCountries = RemoveFromList( publicRegisterLicenceListViewModel.AvailableCountries, x => x.Value == country); } publicRegisterLicenceListViewModel = HandleUkSelected(publicRegisterLicenceListViewModel, countryAdded); return(publicRegisterLicenceListViewModel); }
private PublicRegisterLicenceListViewModel RemoveCountry(PublicRegisterLicenceListViewModel publicRegisterLicenceListViewModel, string countryToRemove) { RemoveSelectedCountry(publicRegisterLicenceListViewModel, new SelectListItem { Text = countryToRemove, Value = countryToRemove }); return(publicRegisterLicenceListViewModel); }
private PublicRegisterLicenceListViewModel HandlePostActions( PublicRegisterLicenceListViewModel publicRegisterLicenceListViewModel, string submit) { PublicRegisterSearchCriteria newPublicRegisterSearchCriteria = null; var searchViewModel = publicRegisterLicenceListViewModel.PublicRegisterSearchCriteria; if (publicRegisterLicenceListViewModel.AvailableCountries == null) { publicRegisterLicenceListViewModel.AvailableCountries = publicRegisterViewModelBuilder.BuildAvailableCountries(); } switch (submit) { case "add": newPublicRegisterSearchCriteria = AddCountry(publicRegisterLicenceListViewModel).PublicRegisterSearchCriteria; break; case "search": // we want to update teh _currentPublicRegisterSearchCriteria = searchViewModel; searchViewModel.SearchActive = true; break; default: newPublicRegisterSearchCriteria = RemoveCountry(publicRegisterLicenceListViewModel, submit).PublicRegisterSearchCriteria; break; } if (searchViewModel.SearchActive) { publicRegisterLicenceListViewModel = publicRegisterViewModelBuilder.BuildSearchForLicences(_currentPublicRegisterSearchCriteria); publicRegisterLicenceListViewModel.PublicRegisterSearchCriteria = newPublicRegisterSearchCriteria ?? searchViewModel; } else { searchViewModel.SearchActive = false; } //Ensure we remove any countries that are selected, from the list than are selectable. if (searchViewModel.CountriesSelected != null) { publicRegisterLicenceListViewModel.AvailableCountries = publicRegisterLicenceListViewModel.AvailableCountries .Where(x => !searchViewModel.CountriesSelected.Contains(x.Value)).ToList(); } else { publicRegisterLicenceListViewModel.AvailableCountries = publicRegisterLicenceListViewModel.AvailableCountries.ToList(); } return(publicRegisterLicenceListViewModel); }
private void RemoveSelectedCountry(PublicRegisterLicenceListViewModel publicRegisterLicenceListViewModel, SelectListItem ukCountry) { //remove selected country publicRegisterLicenceListViewModel.PublicRegisterSearchCriteria.CountriesSelected = RemoveFromList( publicRegisterLicenceListViewModel.PublicRegisterSearchCriteria.CountriesSelected, x => x == ukCountry.Value); //add selectable country if (publicRegisterLicenceListViewModel.AvailableCountries.All(x => x.Value != ukCountry.Value)) { publicRegisterLicenceListViewModel.AvailableCountries.Add(ukCountry); } }
private PublicRegisterLicenceListViewModel HandleUkSelected(PublicRegisterLicenceListViewModel publicRegisterLicenceListViewModel, string countryAdded) { if (countryAdded == "UK") { //If UK is selected, then we want to remove each of the UK regions from the selected collection, and add them back in to the possible selectable collection foreach (var ukCountry in publicRegisterViewModelBuilder.UkCountries) { RemoveSelectedCountry(publicRegisterLicenceListViewModel, ukCountry); } } else if (countryAdded != "Outside UK") { //if any other country than the UK, or Outside UK is added, then we want to remove the "UK" from the selected countries. if (publicRegisterLicenceListViewModel.PublicRegisterSearchCriteria.CountriesSelected.Contains("UK")) { RemoveSelectedCountry(publicRegisterLicenceListViewModel, new SelectListItem { Text = "UK", Value = "UK" }); } } return(publicRegisterLicenceListViewModel); }