// GET: City
        public ActionResult Index()
        {
            var service = CreateCityService();
            var State   = new CityByState();

            State.State = "Search by City or State";
            return(View(State));
        }
 public ActionResult Search(string id, CityByState city)
 {
     if (id != null)
     {
         var service = CreateCityService();
         var model   = service.GetCitiesByName(id);
         ModelState.Clear();
         return(View(model));
     }
     //string state =  $"{city.State}"
     else
     {
         return(RedirectToAction($"State/{city.State}"));
     }
 }
        public ActionResult Index(string id, CityByState city)
        {
            var businessService = new BusinessService();
            var cityService     = CreateCityService();
            var profileService  = CreateProfileService();

            //Is input a State Abreviation?
            bool parseResult = Enum.TryParse($"{id}", out StateName state);

            //Is input a State at all?
            if (parseResult == false)
            {
                city.StateResult = city.AbreviateState(id);
            }
            if (parseResult)
            {
                city.StateResult = state;
            }

            //Is input a City?
            var searchByCity = new List <CityListItem>();

            if (city.StateResult == null)
            {
                searchByCity = cityService.GetCitiesByName(id);
                if (searchByCity.Count == 1)
                {
                    return(RedirectToAction($"Details/{searchByCity[0].ID}"));
                }
                if (searchByCity.Count != 0)
                {
                    return(RedirectToAction($"Search/{id}"));
                }
            }

            //Is inpuy a Business
            var searchByBusiness = new List <BusinessListItem>();

            if (searchByCity.Count() == 0)
            {
                searchByBusiness = businessService.GetByName(id);
                if (searchByBusiness.Count == 1)
                {
                    return(RedirectToAction($"Details/{searchByBusiness[0].ID}", "Business"));
                }
                if (searchByBusiness.Count != 0)
                {
                    return(RedirectToAction($"Search/{id}", "Business"));
                }
            }

            var searchByUsername = new ProfileDetail();

            if (searchByBusiness.Count() == 0)
            {
                searchByUsername = profileService.GetByUsername(id);
                if (searchByUsername.Username != null)
                {
                    return(RedirectToAction($"Index/{searchByUsername.Username}", "Profile"));
                }
            }
            var searchByName = new List <ProfileDetail>();

            if (searchByUsername.Username == null)
            {
                searchByName = profileService.GetByName(id);
                if (searchByName.Count != 0)
                {
                    return(RedirectToAction($"Search/{id}", "Profile"));
                }
            }

            return(RedirectToAction($"State/{city.StateResult}"));
        }