Esempio n. 1
0
        private async Task <String> GetRoute(ParkingYard.YardLocation Origin, ParkingYard.YardLocation Destination)
        {
            StringBuilder googleRoutesUrl = new StringBuilder(@"https://maps.googleapis.com/maps/api/directions/json");

            googleRoutesUrl.Append("?origin=" + Origin.Latitude + ',' + Origin.Longitude);
            googleRoutesUrl.Append("&destination=" + Destination.Latitude + ',' + Destination.Longitude);
            googleRoutesUrl.Append("&sensor=true");
            googleRoutesUrl.Append("&key=" + APIKEY);

            string url = googleRoutesUrl.ToString();

            WebRequest request = WebRequest.Create(url);

            WebResponse response = request.GetResponse();

            Stream data = response.GetResponseStream();

            StreamReader reader = new StreamReader(data);

            string responseFromServer = reader.ReadToEnd();

            response.Close();

            return(responseFromServer);
        }
Esempio n. 2
0
        public async Task <Response> GetNearByPlaces(double Lat, double Lng, String Category, double Proximity_Radius)
        {
            StringBuilder googlePlacesUrl = new StringBuilder(@"https://maps.googleapis.com/maps/api/place/nearbysearch/json?");

            googlePlacesUrl.Append("location=" + Lat + "," + Lng);
            googlePlacesUrl.Append("&radius=" + Proximity_Radius);
            googlePlacesUrl.Append("&type=" + Category);
            googlePlacesUrl.Append("&sensor=true");
            googlePlacesUrl.Append("&key=" + APIKEY);

            string   url = googlePlacesUrl.ToString();
            Response rsp = new Response();

            try
            {
                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                rsp.Code = Convert.ToInt32(response.StatusCode);

                Stream data = response.GetResponseStream();

                StreamReader reader = new StreamReader(data);

                // json-formatted string from maps api
                string responseFromServer = reader.ReadToEnd();

                StringBuilder Response = new StringBuilder();

                JObject JSONObject = JObject.Parse(responseFromServer);

                JArray jarr = new JArray();

                jarr = (JArray)JSONObject["results"];

                response.Close();
                String res = null;

                for (int count = 0; count < jarr.Count; count++)
                {
                    JObject Location = new JObject();
                    Location = (JObject)jarr[count]["geometry"]["location"];

                    res = Location.GetValue("lat").ToString();

                    ParkingYard.YardLocation DestinPark, OriginPark;
                    OriginPark           = new ParkingYard.YardLocation();
                    OriginPark.Latitude  = Lat;
                    OriginPark.Longitude = Lng;

                    DestinPark           = new ParkingYard.YardLocation();
                    DestinPark.Latitude  = Convert.ToDouble(Location.GetValue("lat"));
                    DestinPark.Longitude = Convert.ToDouble(Location.GetValue("lng"));

                    string RouteResult = await GetRoute(OriginPark, DestinPark);

                    JArray PhotosArray = (JArray)jarr[count]["photos"];

                    string PlaceImage = null;

                    if (PhotosArray != null)
                    {
                        PlaceImage = await GetPlaceImage((PhotosArray[0]["photo_reference"]).ToString());
                    }
                    else
                    {
                        PlaceImage = null;
                    }

                    JObject RoutesObject = JObject.Parse(RouteResult);

                    JObject JarrObject = (JObject)jarr[count];

                    JarrObject.Add("place image", PlaceImage);
                    JarrObject.Add("routes", RoutesObject);

                    jarr[count] = JarrObject;
                }

                rsp.Data    = jarr.ToString();
                rsp.Message = response.StatusDescription;
            }
            catch (WebException e)
            {
                rsp = new Response();

                if (e.Status == WebExceptionStatus.ProtocolError)
                {
                    rsp.Code = Convert.ToInt32(((HttpWebResponse)e.Response).StatusCode);
                }

                rsp.Code    = 404;
                rsp.Message = "No Internet Connection";
            }

            return(rsp);
        }
Esempio n. 3
0
        public async Task <JObject> Parks([FromUri] double lat, [FromUri] double lng)
        {
            maps mp = new maps();

            Response Response = new Response();

            Response = await mp.GetNearByPlaces(lat, lng, "parking", 10000);

            JObject Error = new JObject();

            if (Response.Code == 200)

            {
                Error.Add("Code", Response.Code);
                Error.Add("Message", "Success");

                ParkingYard Yard = new ParkingYard();

                JArray jarr = JArray.Parse(Response.Data);

                for (int count = 0; count < jarr.Count; count++)
                {
                    Yard.Image     = jarr[count]["place image"].ToString();
                    Yard.Name      = jarr[count]["name"].ToString();
                    Yard.Place_ID  = jarr[count]["place_id"].ToString();
                    Yard.Reference = jarr[count]["reference"].ToString();

                    ParkingYard.YardLocation YardLocation = new ParkingYard.YardLocation();
                    YardLocation.Name      = jarr[count]["vicinity"].ToString();
                    YardLocation.Latitude  = Convert.ToDouble(jarr[count]["geometry"]["location"]["lat"]);
                    YardLocation.Longitude = Convert.ToDouble(jarr[count]["geometry"]["location"]["lng"]);

                    Yard.Location = YardLocation;

                    ParkRepo = new ParkRepository();

                    if (await ParkRepo.CreateParkingYard(Yard))
                    {
                        Response.Message = "Parking Created Successfully";
                    }

                    else
                    {
                        Response.Message = "Parking Already exists";
                    }

                    JObject Parking = new JObject();

                    ParkingYard py = ParkRepo.GetParkingYard(Yard.Place_ID);

                    JObject Space = new JObject();

                    Space.Add("space id", py.Spaces.Space_ID);
                    Space.Add("space count", py.Spaces.Count);
                    Space.Add("used spaces", py.Spaces.UsedSpaces);

                    JObject Location = new JObject();
                    Location.Add("id", py.Location.id);
                    Location.Add("name", py.Location.Name);

                    Parking.Add("park_id", py.id);
                    Parking.Add("Space", Space);
                    Parking.Add("Location", Location);

                    JObject FinalJarr = (JObject)jarr[count];
                    FinalJarr.Add("Park Data", Parking);

                    jarr[count] = FinalJarr;
                }

                // JArray FinalJSONArray = (JArray)jarr;

                Error.Add("values", jarr);
            }

            else
            {
                Error.Add("Code", Response.Code);
                Error.Add("Message", Response.Message);
                Error.Add("Values", Response.Data);
            }

            return(Error);
        }
Esempio n. 4
0
        public ParkingYard [] GetParkingYards()
        {
            List <ParkingYard> YardList = new List <ParkingYard>();

            using (Con = new SqlConnection(GC.ConnectionString))
            {
                if (Con.State == ConnectionState.Closed)
                {
                    Con.Open();
                }

                Query = "Select * from Park p left join Park_Location pl on p.ID=pl.Park_ID left join Park_spaces on pl.park_id=park_spaces.park_id";

                using (Com = new SqlCommand(Query, Con))
                {
                    Reader = Com.ExecuteReader();

                    while (Reader.Read())
                    {
                        ParkingYard Yard = new ParkingYard();

                        Yard.id        = Convert.ToInt32(Reader["ID"].ToString());
                        Yard.Name      = Reader["Name"].ToString();
                        Yard.Reference = Reader["placeref"].ToString();
                        Yard.Place_ID  = Reader["placeid"].ToString();
                        Yard.Image     = Reader["Image"].ToString();


                        //Get Yard Location

                        ParkingYard.YardLocation yardlocation = new ParkingYard.YardLocation();
                        if (Reader["L_ID"] != DBNull.Value)
                        {
                            yardlocation.id = Convert.ToInt32(Reader["L_ID"].ToString());
                        }
                        if (Reader["Long"] != DBNull.Value)
                        {
                            yardlocation.Longitude = Convert.ToDouble(Reader["Long"].ToString());
                        }
                        if (Reader["Lat"] != DBNull.Value)
                        {
                            yardlocation.Latitude = Convert.ToDouble(Reader["Lat"].ToString());
                        }
                        if (Reader["Vicinity"] != DBNull.Value)
                        {
                            yardlocation.Name = Reader["Vicinity"].ToString();
                        }
                        Yard.Location = yardlocation;

                        //Get Yard Spaces
                        ParkingYard.YardSpaces yardspaces = new ParkingYard.YardSpaces();

                        if (Reader["Space_id"] != DBNull.Value)
                        {
                            yardspaces.Space_ID = Convert.ToInt32(Reader["Space_id"].ToString());
                        }
                        if (Reader["SpaceCount"] != DBNull.Value)
                        {
                            yardspaces.Count = Convert.ToInt32(Reader["SpaceCount"].ToString());
                        }
                        if (Reader["UsedSpace"] != DBNull.Value)
                        {
                            yardspaces.UsedSpaces = Convert.ToInt32(Reader["UsedSpace"].ToString());
                        }

                        Yard.Spaces = yardspaces;

                        YardList.Add(Yard);
                    }

                    Com.Dispose();
                }

                Con.Close();
            }

            return(YardList.ToArray());
        }
Esempio n. 5
0
        public ParkingYard GetParkingYard(int ParkID)
        {
            ParkingYard Yard = new ParkingYard();

            using (Con = new MySqlConnection(GC.ConnectionString))
            {
                if (Con.State == ConnectionState.Closed)
                {
                    Con.Open();
                }

                Query = "Select * from Parks left join park_geometry on Parks.ID=park_geometry.Park_ID left join Park_spaces on park_geometry.park_id=park_spaces.park_id where Parks.ID='" + ParkID + "'";

                using (Com = new MySqlCommand(Query, Con))
                {
                    Reader = Com.ExecuteReader();

                    while (Reader.Read())
                    {
                        Yard.id        = Convert.ToInt32(Reader["ID"].ToString());
                        Yard.Name      = Reader["Name"].ToString();
                        Yard.Reference = Reader["Reference"].ToString();
                        Yard.Place_ID  = Reader["Place_ID"].ToString();
                        Yard.Image     = Reader["Image"].ToString();

                        //Get Yard Location
                        ParkingYard.YardLocation yardlocation = new ParkingYard.YardLocation();
                        if (Reader["L_ID"] != DBNull.Value)
                        {
                            yardlocation.id = Convert.ToInt32(Reader["L_ID"].ToString());
                        }
                        if (Reader["Longitude"] != DBNull.Value)
                        {
                            yardlocation.Longitude = Convert.ToDouble(Reader["Longitude"].ToString());
                        }
                        if (Reader["Latitude"] != DBNull.Value)
                        {
                            yardlocation.Latitude = Convert.ToDouble(Reader["Latitude"].ToString());
                        }
                        if (Reader["Vicinity"] != DBNull.Value)
                        {
                            yardlocation.Name = Reader["Vicinity"].ToString();
                        }

                        Yard.Location = yardlocation;

                        //Get Yard Spaces
                        ParkingYard.YardSpaces yardspaces = new ParkingYard.YardSpaces();
                        if (Reader["Space_id"] != DBNull.Value)
                        {
                            yardspaces.Space_ID = Convert.ToInt32(Reader["Space_id"].ToString());
                        }
                        if (Reader["Space_Count"] != DBNull.Value)
                        {
                            yardspaces.Count = Convert.ToInt32(Reader["Space_Count"].ToString());
                        }
                        if (Reader["Used"] != DBNull.Value)
                        {
                            yardspaces.UsedSpaces = Convert.ToInt32(Reader["Used"].ToString());
                        }

                        Yard.Spaces = yardspaces;
                    }

                    Com.Dispose();
                }

                Con.Close();
            }

            return(Yard);
        }