Beispiel #1
0
        private void FormDistanceMatrix_Load(object sender, EventArgs e)
        {
            cbKey.DataSource     = ItineraryData.getApiKey();
            cbKey.SelectedIndex  = 1;
            cbMode.SelectedIndex = 1;

            openFileDialog1.InitialDirectory = Application.StartupPath;
            openFileDialog1.Filter           = "CSV Files| *.csv|All Files| *.*";
            place_data          = ReadListofPlaces();
            tbTotalData.Text    = place_data.Count.ToString();
            totalRequest        = getTotalRequest(place_data.Count, (int)numericMaxGrab.Value);
            tbTotalRequest.Text = totalRequest.ToString();
        }
        private async void button1_ClickAsync(object sender, EventArgs e)
        {
            if (MessageBox.Show("Are You Sure to Proceed ?", "Confirmation Dialog", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                if (checkInput())
                {
                    progressBar1.Value = 0;
                    richTextBox1.Clear();
                    arrRadarSearch.Clear();
                    arrPlaceDetails.Clear();
                    arrData.Clear();

                    country   = cbCountry.Text;
                    city      = cbCity.Text;
                    latitude  = cbCity.SelectedValue.ToString().Split(';')[0];
                    longitude = cbCity.SelectedValue.ToString().Split(';')[1];
                    types     = getAllTypes();
                    radius    = ((int)numericUpDownRadius.Value).ToString();

                    offset = (int)numericUpDownOffset.Value;
                    limit  = (int)numericUpDownLimit.Value;
                    try
                    {
                        groupBox1.Enabled = false;
                        //radarsearch
                        //lookingForConnectionAsync();
                        String radarsearchResult = await doTaskAsync(RadarSearch.getRadarSearchQuery(apiKey, latitude, longitude, types, radius));

                        String dir_log = getDateTimeDirectory();
                        String dir     = dir_log + "_" + city + "_" + types + "_" + radius;
                        Directory.CreateDirectory("Images/" + dir);

                        JObject radarsearchJSON   = JObject.Parse(radarsearchResult);
                        String  radarsearchStatus = (String)radarsearchJSON["status"];

                        if (radarsearchStatus == "OK")
                        {
                            JArray radarsearchArray = (JArray)radarsearchJSON["results"];
                            if (checkBox1.Checked && offset == 0)
                            {
                                progressBar1.Maximum = radarsearchArray.Count * 3;
                            }
                            else
                            {
                                progressBar1.Maximum = radarsearchArray.Count + (limit * 2);
                            }

                            foreach (var item in radarsearchArray)
                            {
                                String radarsearchLatitude  = (String)item["geometry"]["location"]["lat"];
                                String radarsearchLongitude = (String)item["geometry"]["location"]["lng"];
                                String radarsearchPlaceID   = (String)item["place_id"];

                                RadarSearch radarsearchObj = new RadarSearch(radarsearchLatitude, radarsearchLongitude, radarsearchPlaceID);
                                arrRadarSearch.Add(radarsearchObj);

                                //Console.WriteLine(radarsearchObj);

                                progressBar1.Value++;
                            }

                            richTextBox1.AppendText("Starting fetch " + arrRadarSearch.Count.ToString() + " items...\n");

                            //placedetails
                            byte idx = 0;
                            if (checkBox1.Checked)
                            {
                                limit = radarsearchArray.Count - offset;
                            }
                            String placedetailsStatus = "";
                            do
                            {
                                if (offset + limit > radarsearchArray.Count)
                                {
                                    richTextBox1.AppendText("Invalid Input...\n");
                                    break;
                                }

                                String placeid = arrRadarSearch[idx + offset].place_id;
                                //lookingForConnectionAsync();
                                String placedetailsResult = await doTaskAsync(PlaceDetails.getPlaceDetailsQuery(apiKey, placeid));

                                JObject placedetailsJSON = JObject.Parse(placedetailsResult);
                                placedetailsStatus = (String)placedetailsJSON["status"];

                                if (placedetailsStatus == "OK")
                                {
                                    try
                                    {
                                        String placedetailsName        = (String)placedetailsJSON["result"]["name"];
                                        String placedetailsAddress     = (String)placedetailsJSON["result"]["formatted_address"];
                                        String placedetailsPhoneNumber = (String)placedetailsJSON["result"]["international_phone_number"];
                                        String placedetailsURL         = (String)placedetailsJSON["result"]["url"];
                                        float  placedetailsRating      = (float)placedetailsJSON["result"]["rating"];

                                        JArray           placedetailsOpeningHoursArray;
                                        ListOpeningHours placedetailsOpeningHours = new ListOpeningHours();
                                        try
                                        {
                                            placedetailsOpeningHoursArray = (JArray)placedetailsJSON["result"]["opening_hours"]["periods"];
                                            foreach (var openinghours in placedetailsOpeningHoursArray)
                                            {
                                                int    day_index = (int)openinghours["close"]["day"];
                                                String close     = (String)openinghours["close"]["time"];
                                                String open      = (String)openinghours["open"]["time"];
                                                placedetailsOpeningHours[day_index].close = close;
                                                placedetailsOpeningHours[day_index].open  = open;
                                            }
                                        }
                                        catch (Exception)
                                        {
                                            placedetailsOpeningHoursArray = null;
                                            for (int i = 0; i < placedetailsOpeningHours.Count; i++)
                                            {
                                                placedetailsOpeningHours[i].open  = "0000";
                                                placedetailsOpeningHours[i].close = "2400";
                                            }
                                        }

                                        JArray        placedetailsArray = (JArray)placedetailsJSON["result"]["types"];
                                        List <String> placedetailsTypes = new List <String>();
                                        foreach (var type in placedetailsArray)
                                        {
                                            placedetailsTypes.Add((String)type);
                                        }

                                        //photo
                                        String     photoreference;
                                        PlacePhoto photo;

                                        try
                                        {
                                            photoreference = (String)placedetailsJSON["result"]["photos"][0]["photo_reference"];
                                            //Console.WriteLine(photoreference);
                                            //Console.WriteLine(PlacePhoto.getPlacePhotoQuery(apiKey, photoreference));
                                            photo = new PlacePhoto(placeid, dir);
                                            String save_directory = "Images/" + dir + "/" + placeid + ".jpg";
                                            //lookingForConnectionAsync();
                                            PlacePhoto.SaveImage(apiKey, photoreference, save_directory);
                                            progressBar1.Value++;
                                        }
                                        catch (Exception)
                                        {
                                            Console.WriteLine("No Photos");
                                            photo = new PlacePhoto();
                                            progressBar1.Value++;
                                        }

                                        PlaceDetails placedetailsOBJ = new PlaceDetails(placedetailsName, placeid, placedetailsAddress, placedetailsPhoneNumber, placedetailsRating, placedetailsOpeningHours, placedetailsTypes, placedetailsURL);
                                        arrPlaceDetails.Add(placedetailsOBJ);
                                        //Console.WriteLine(placedetailsOBJ);

                                        ItineraryData data = new ItineraryData(arrRadarSearch[idx + offset], placedetailsOBJ, photo, city, country);
                                        arrData.Add(data);
                                        richTextBox1.AppendText("Success fetch item - " + (idx + offset).ToString() + "...\n");
                                    }
                                    catch (Exception ex)
                                    {
                                        Console.WriteLine(ex.Message);
                                        //progressBar1.Value++;
                                        richTextBox1.AppendText("Fail fetch item - " + (idx + offset).ToString() + "...\n");
                                    }
                                }
                                else
                                {
                                    break;
                                }

                                progressBar1.Value++;
                                ++idx;
                            } while (idx < limit && placedetailsStatus == "OK");
                        }

                        //foreach (ItineraryData item in arrData)
                        //{
                        //    Console.WriteLine(item);
                        //}

                        exportCSV("Result/" + dir + ".csv", arrData);
                        savetoLog(dir_log, city, country, arrRadarSearch.Count.ToString(), offset, limit, types, radius);

                        progressBar1.Value = progressBar1.Maximum;
                        richTextBox1.AppendText("Done...\n");

                        System.Media.SoundPlayer player = new System.Media.SoundPlayer("alert.wav");
                        player.Play();
                    }
                    catch (Exception)
                    {
                        richTextBox1.AppendText("No Connection...\n");
                    }
                }
                else
                {
                    MessageBox.Show("Invalid Input!!");
                }
            }
            groupBox1.Enabled = true;
            setListBoxTypes();
        }
Beispiel #3
0
 public FormDetails()
 {
     InitializeComponent();
     apiKey = ItineraryData.getApiKey()[0];
 }
Beispiel #4
0
 private void FormCalculateMatrix_Load(object sender, EventArgs e)
 {
     cbKey.DataSource     = ItineraryData.getApiKey();
     cbKey.SelectedIndex  = 1;
     cbMode.SelectedIndex = 1;
 }