private async void Set_location_Click(object sender, EventArgs e)
        {
            Final_Position = googleMap.CameraPosition.Target;

            try
            {
                var p = JsonConvert.DeserializeObject <Model.Missingvehicle>(Intent.GetStringExtra("objtopass"));
                p.locationLatitude  = Final_Position.Latitude.ToString();
                p.locationLongitude = Final_Position.Longitude.ToString();
                p.Status            = "unverified";
                p.issueFlag         = "green";
                p.isresolved        = 0;
                p.isWorkingStarted  = 0;
                p.amount_collected  = 0;
                p.estimated_cost    = 0;



                try
                {
                    mapFuncHelper   = new MapFunctions.MapFunctionHelper(APIKEY, googleMap);
                    p.location_name = await mapFuncHelper.FindCordinateAddress(Final_Position);

                    p.location_name = p.location_name.Replace(", Karachi, Karachi City, Sindh, Pakistan", string.Empty);
                    if (p.issueType == "Found Vehicle")
                    {
                        p.issueStatement = "Unidentified Vehicle Found since " + p.foundDate.Date.ToShortDateString() + "with Plate No. " + p.plateNumber + " near " + p.location_name;
                    }
                    if (p.issueType == "Missing Vehicle")
                    {
                        p.issueStatement = "Vehicle gone Missing since " + p.missingDate.Date + " with Plate No. " + p.plateNumber + " near " + p.location_name;
                    }

                    Android.App.AlertDialog.Builder dialog = new AlertDialog.Builder(this);
                    AlertDialog alert = dialog.Create();

                    alert.SetMessage("Please wait while your issue is being posted ...");
                    alert.Show();
                    await Control.IssueController.PostIssue <Model.Missingvehicle>(p, this);
                }

                catch (Exception ex)
                {
                    // Handle exception that may have occurred in geocoding or posting issue.
                }
            }
            catch (Exception)
            {
                set_location.Enabled = true;
                MainThread.BeginInvokeOnMainThread(() =>
                {
                    Toast.MakeText(this, "Unfortunately! Your Issue cannot be posted at this time", ToastLength.Long).Show();
                });
            }
        }
        private async void Next_MissingVehicle3_Click(object sender, EventArgs e)
        {
            if (MissingVehicle3_radiobtn3.Checked)
            {
                var p = JsonConvert.DeserializeObject <Model.Missingvehicle>(Intent.GetStringExtra("objtopass"));
                p.issueType = "Missing Vehicle";
                Control.DataOper.PutData <Issuelocationpickup_MissingVehicle>(this, p);
            }
            else
            {
                await Task.Run(async() =>
                {
                    var p = JsonConvert.DeserializeObject <Model.Missingvehicle>(Intent.GetStringExtra("objtopass"));
                    p.locationLatitude  = location_lati;
                    p.locationLongitude = location_longi;
                    p.Status            = "unverified";
                    p.issueType         = "Missing Vehicle";
                    p.issueFlag         = "green";
                    p.isresolved        = 0;
                    p.isWorkingStarted  = 0;
                    p.amount_collected  = 0;
                    p.estimated_cost    = 0;

                    try
                    {
                        var mapFuncHelper = new MapFunctions.MapFunctionHelper(APIKEY, null);
                        var placemark     = await mapFuncHelper.FindCordinateAddress(new Android.Gms.Maps.Model.LatLng(Convert.ToDouble(location_lati), Convert.ToDouble(location_longi)));
                        if (placemark != null)
                        {
                            LocationName     = placemark.Replace(", Karachi, Karachi City, Sindh, Pakistan", string.Empty);
                            p.location_name  = LocationName;
                            p.issueStatement = "Vehicle Gone Missing since " + p.missingDate.Date.ToShortDateString() + " with Plate No. " + p.plateNumber + " near " + LocationName;
                            MainThread.BeginInvokeOnMainThread(() =>
                            {
                                Android.App.AlertDialog.Builder dialog = new AlertDialog.Builder(this);
                                AlertDialog alert = dialog.Create();

                                alert.SetMessage("Please wait while your issue is being posted ...");
                                alert.Show();
                                Control.IssueController.PostIssue <Model.Missingvehicle>(p, this);
                            });
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                });
            }
        }
Exemple #3
0
        private async void Set_location_Click(object sender, EventArgs e)
        {
            Final_Position = googleMap.CameraPosition.Target;

            try
            {
                var p = JsonConvert.DeserializeObject <Model.Planting>(Intent.GetStringExtra("objtopass"));
                p.locationLatitude  = Final_Position.Latitude.ToString();
                p.locationLongitude = Final_Position.Longitude.ToString();
                p.Status            = "unverified";
                p.issueFlag         = "green";
                p.isresolved        = 0;
                p.issueType         = "Planting Compaign";
                p.isWorkingStarted  = 0;
                p.amount_collected  = 0;
                p.estimated_cost    = 0;



                try
                {
                    mapFuncHelper   = new MapFunctions.MapFunctionHelper(APIKEY, googleMap);
                    p.location_name = await mapFuncHelper.FindCordinateAddress(Final_Position);

                    p.location_name  = p.location_name.Replace(", Karachi, Karachi City, Sindh, Pakistan", string.Empty);
                    p.issueStatement = string.Format("Planting compaign started near {0}", p.location_name);
                    Control.DataOper.PutData <PlantingCampaign2>(this, p);
                }

                catch (Exception ex)
                {
                    // Handle exception that may have occurred in geocoding or posting issue.
                }
            }
            catch (Exception)
            {
                set_location.Enabled = true;
                MainThread.BeginInvokeOnMainThread(() =>
                {
                    Toast.MakeText(this, "Unfortunately! Your Issue cannot be posted at this time", ToastLength.Long).Show();
                });
            }
        }
        public async void OnMapReady(GoogleMap googleMap)
        {
            this.googleMap = googleMap;
            LatLng current_location = await getCurrentLocation();

            googleMap.CameraIdle += GoogleMap_CameraIdle;
            mapFuncHelper         = new MapFunctions.MapFunctionHelper(APIKEY, googleMap);
            googleMap.MapType     = GoogleMap.MapTypeNormal;
            try
            {
                CameraUpdate cam = CameraUpdateFactory.NewLatLngZoom(current_location, 15);
                googleMap.AnimateCamera(cam);
                showMarkerOnMap();
            }
            catch (Exception ex)
            {
                Toast.MakeText(Application.Context, "Current Location cannot be detected at the moment", ToastLength.Long).Show();
            }
        }
Exemple #5
0
        private async void Set_location_Click(object sender, EventArgs e)
        {
            Final_Position = googleMap.CameraPosition.Target;

            try
            {
                var p = JsonConvert.DeserializeObject <Model.Debris>(Intent.GetStringExtra("objtopass"));
                p.locationLatitude  = Final_Position.Latitude.ToString();
                p.locationLongitude = Final_Position.Longitude.ToString();
                p.Status            = "unverified";
                p.issueFlag         = new Control.IssueFlagDetector().DetectDebrisFlag(p);
                p.isresolved        = 0;
                p.issueType         = "Debris";
                p.isWorkingStarted  = 0;
                p.amount_collected  = 0;
                p.estimated_cost    = 0;



                try
                {
                    mapFuncHelper   = new MapFunctions.MapFunctionHelper(APIKEY, googleMap);
                    p.location_name = await mapFuncHelper.FindCordinateAddress(Final_Position);

                    p.location_name = p.location_name.Replace(", Karachi, Karachi City, Sindh, Pakistan", string.Empty);
                    string s_statement;
                    if (p.roadCoverage == "halfblocked")
                    {
                        s_statement      = " is blocking half road ";
                        p.issueStatement = "Debris " + s_statement + " near " + p.location_name;
                    }
                    else if (p.roadCoverage == "fullblocked")
                    {
                        s_statement      = " is blocking full road ";
                        p.issueStatement = "Debris " + s_statement + " near " + p.location_name;
                    }
                    else if (p.roadCoverage == "sidearea")
                    {
                        s_statement      = " blocking a side of road ";
                        p.issueStatement = "Debris " + s_statement + " near " + p.location_name;
                    }
                    //Alert Dialogue Box
                    Android.App.AlertDialog.Builder dialog = new AlertDialog.Builder(this);
                    AlertDialog alert = dialog.Create();
                    alert.SetMessage("Please wait while your issue is being posted ...");
                    alert.Show();
                    await Control.IssueController.PostIssue <Model.Debris>(p, this);
                }

                catch (Exception ex)
                {
                    // Handle exception that may have occurred in geocoding or posting issue.
                }
            }
            catch (Exception)
            {
                set_location.Enabled = true;
                MainThread.BeginInvokeOnMainThread(() =>
                {
                    Toast.MakeText(this, "Unfortunately! Your Issue cannot be posted at this time", ToastLength.Long).Show();
                });
            }
        }
        private async void Set_location_Click(object sender, EventArgs e)
        {
            Final_Position = googleMap.CameraPosition.Target;
            try
            {
                loader.Visibility    = Android.Views.ViewStates.Visible;
                set_location.Enabled = false;

                var Issue = JsonConvert.DeserializeObject <Manhole>(Intent.GetStringExtra("objtopass"));
                Issue.locationLatitude  = Final_Position.Latitude.ToString();
                Issue.locationLongitude = Final_Position.Longitude.ToString();
                Issue.Status            = "unverified";
                Issue.issueType         = "Manhole";
                Issue.isWorkingStarted  = 0;
                Issue.amount_collected  = 0;
                Issue.estimated_cost    = 0;
                //using (Control.IssueFlagDetector i = new Control.IssueFlagDetector())
                //{
                //    Issue.issueFlag = i.DetectManholeFlag(Issue);
                //}
                Issue.issueFlag = new Control.IssueFlagDetector().DetectManholeFlag(Issue);
                Issue.issueDate = DateTime.Now;
                try
                {
                    mapFuncHelper = new MapFunctions.MapFunctionHelper(APIKEY, googleMap);
                    var LocationName = await mapFuncHelper.FindCordinateAddress(Final_Position);

                    if (LocationName == " ")
                    {
                        loader.Visibility    = Android.Views.ViewStates.Gone;
                        set_location.Enabled = true;
                        Android.App.AlertDialog.Builder dialog = new AlertDialog.Builder(this);
                        AlertDialog alert = dialog.Create();
                        alert.SetTitle("Zoom In");
                        alert.SetMessage("Please be more specific when selecting location, you can zoom in the map to point the exact location.");
                        alert.SetButton("OK", (c, ev) =>
                        {
                            alert.Dismiss();
                        });
                        alert.Show();
                    }
                    else
                    {
                        string s_stat;
                        if (Issue.Iswateroverflow == true)
                        {
                            s_stat = " spilling dirty water ";
                            Issue.issueStatement = "Open Manhole" + s_stat + "near " + LocationName;
                        }
                        else if (Issue.Iswateroverflow == false)
                        {
                            s_stat = "Open ";
                            Issue.issueStatement = s_stat + "Manhole " + "near " + LocationName;
                        }
                        //
                        Android.App.AlertDialog.Builder dialog = new AlertDialog.Builder(this);
                        AlertDialog alert = dialog.Create();
                        //alert.SetContentView(Resource.Layout.createisue3);
                        alert.SetMessage("Please wait while your issue is being posted ...");
                        alert.Show();

                        _ = await Control.IssueController.PostIssue <Model.Manhole>(Issue, this);
                    }
                }
                catch (Exception ex)
                {
                    Toast.MakeText(this, ex.ToString(), ToastLength.Long).Show();
                }
            }



            catch (Exception)
            {
                set_location.Enabled = true;
            }
        }
        private async void Next_FoundVehicle2_Click(object sender, EventArgs e)
        {
            if (FoundVehicle2_radiobtn3.Checked)
            {
                var p = JsonConvert.DeserializeObject <Model.Missingvehicle>(Intent.GetStringExtra("objtopass"));
                p.issueType = "Found Vehicle";
                Control.DataOper.PutData <Issuelocationpickup_MissingVehicle>(this, p);
            }
            else
            {
                if (location_lati != "" && location_longi != "")
                {
                    await Task.Run(async() =>
                    {
                        var p = JsonConvert.DeserializeObject <Model.Missingvehicle>(Intent.GetStringExtra("objtopass"));
                        p.locationLatitude  = location_lati;
                        p.locationLongitude = location_longi;
                        p.Status            = "unverified";
                        p.isresolved        = 0; // Issue is not resolved yet.
                        p.issueFlag         = "green";
                        p.issueType         = "Found Vehicle";
                        p.isWorkingStarted  = 0;
                        p.amount_collected  = 0;
                        p.estimated_cost    = 0;



                        try
                        {
                            mapFuncHelper = new MapFunctions.MapFunctionHelper(APIKEY, null);
                            var placemark = await mapFuncHelper.FindCordinateAddress(new Android.Gms.Maps.Model.LatLng(Convert.ToDouble(location_lati), Convert.ToDouble(location_longi)));
                            if (placemark != null)
                            {
                                LocationName     = placemark.Replace(", Karachi, Karachi City, Sindh, Pakistan", string.Empty);
                                p.location_name  = LocationName;
                                p.issueStatement = "Unidentified vehicle found since " + p.foundDate.Date.ToShortDateString() + " with Plate No. " + p.plateNumber + " near " + LocationName;
                                Android.App.AlertDialog.Builder dialog = new AlertDialog.Builder(this);
                                AlertDialog alert = dialog.Create();

                                alert.SetMessage("Please wait while your issue is being posted ...");
                                alert.Show();
                                await Control.IssueController.PostIssue <Model.Missingvehicle>(p, this);
                            }
                        }
                        catch (FeatureNotSupportedException fnsEx)
                        {
                            // Feature not supported on device
                        }
                        catch (Exception ex)
                        {
                            // Handle exception that may have occurred in geocoding
                        }
                    });
                }
                else
                {
                    MainThread.BeginInvokeOnMainThread(() =>
                    {
                        Toast.MakeText(this, "Please select Vehicle Location", ToastLength.Long).Show();
                    });
                }
            }
        }