public ActionResult Dashboard(CompositeModel model)
        {
            if (model.searchObj.startLocation == "" || model.searchObj.startLocation == null)
            {
                model.error = "Please Provide Start Location";
                return View("Dashboard", model);
            }
            else
            {
                model.error = "";
            }
            if (model.searchObj.endLocation == "" || model.searchObj.endLocation == null)
            {
                model.error = "Please Provide End Location";
                return View("Dashboard", model);
            }
            else
            {
                model.error = "";
            }
            SearchProcessor refObj = new SearchProcessor();
            model = refObj.searchInfo(model.searchObj);

            Session["compositeModel"]=model;
            return View("Dashboard",model);
        }
        public Service getServiceInfo(String id,CompositeModel refObject)
        {
            Service service = new Service();
            foreach(Yelp.Business business in refObject.bList)
            {
                if(id==business.id)
                {
                    service.businessObj = business;
                    break;
                }
            }

            foreach(GoogleMap gMap in refObject.serviceList)
            {
                if(id==gMap.id)
                {
                    service.googleMap = gMap;
                    break;
                }
            }

            String location="";

            location=service.businessObj.address1;
            location+=","+service.businessObj.address2;
            location += "," + service.businessObj.address3;
            location += "," + service.businessObj.city;
            location += "," + service.businessObj.country;
            location = location.Replace(",,", ",");
            service.directions=getDirectionsScript( refObject.searchObj.startLocation,location);
            return service;
        }
        public CompositeModel searchInfo(Search searchObj)
        {
            output = new CompositeModel();

            String searchCriteria=searchObj.searchCriteria;
            String startLocation=searchObj.startLocation.Replace(" ","%20");
            String endLocation = searchObj.endLocation.Replace(" ", "%20");
            String radius=searchObj.readius;
            output.searchObj = searchObj;
            output.trafficInfo = getTrafficInfo(startLocation);
            output.trafficInfo += getTrafficInfo(endLocation);
            GoogleDirections.TDirections directionsObj= getDirectionsToDestination(startLocation, endLocation);

            List<GoogleMap> pointerList = getServicePointsAlongRoute(directionsObj);
            List<Yelp.Business> businessList = getServices(pointerList,searchCriteria,radius);

            //output.error += directionsObj.routes[0].legs[0].steps.Length + "  " + pointerList.Count + "  " + businessList.Count;
            List<GoogleMap> serviceList = getGoogleMapServicePointers(businessList);
            output.serviceList = serviceList;
            output.bList = businessList;
            output.basePointer = getRoute(startLocation,endLocation);
            output.directionsScript = getDirectionsScript(searchObj.startLocation,searchObj.endLocation );
            output.servicePointers = getServiceMap(serviceList);
            output.infoWindow = getServiceInfoWindow(serviceList);

            return output;
        }