示例#1
0
        public ActionResult Search(BookingModel model)
        {
            string apikey = string.Empty;

            apikey = _AppSettings.GoogleAPI.distanceAPI;

            var services = TheRepository.GetServices();

            ServiceModel serviceModel = services.Where(a => a.id == Convert.ToInt32(model.selectedService)).FirstOrDefault();

            model.postCode = Request.Form["postal_code"];
            CustomerAddress custaddress = new CustomerAddress()
            {
                country     = Request.Form["country"],
                housenumber = Request.Form["street_number"],
                postcode    = Request.Form["postal_code"],
                state       = Request.Form["administrative_area_level_1"],
                streetname  = Request.Form["route"]
            };

            Response.Cookies.Append("country", custaddress.country);
            Response.Cookies.Append("housenumber", custaddress.housenumber);
            Response.Cookies.Append("postcode", custaddress.postcode);
            Response.Cookies.Append("state", custaddress.state);
            Response.Cookies.Append("streetname", custaddress.streetname);

            ViewData["postcode"] = model.postCode;
            ViewData["service"]  = serviceModel.Service;

            int spCount          = 0;
            var serviceProviders = TheRepository.GetServiceProvidersByService(Convert.ToInt32(model.selectedService)).ToList();

            spCount             = serviceProviders.Count();
            ViewData["spCount"] = spCount;

            foreach (var serviceperson in serviceProviders)
            {
                serviceperson.distanceinmiles = Distance.BetweenTwoUKPostCodes(model.postCode, serviceperson.postcode, apikey);

                var ratings = TheRepository.GetRatings(serviceperson.id);

                if ((ratings != null) && (ratings.Count > 0))
                {
                    serviceperson.rating = ratings.Average(a => a.ratings);
                }

                serviceperson.ratings = ratings;
                serviceperson.service = TheRepository.GetServiceById(serviceperson.serviceId).Service;
            }

            return(View("SearchResults", serviceProviders));
        }