示例#1
0
        public static async Task <bool> AddParkedInfo(ParkedInfo parkInfo)
        {
            try
            {
                await firebase
                .Child("ParkedInfo")
                .PostAsync(new ParkedInfo()
                {
                    username = parkInfo.username, parkingLotName = parkInfo.parkingLotName, parkinglotNum = parkInfo.parkinglotNum, TimeEntered = parkInfo.TimeEntered
                });

                return(true);
            }
            catch { return(false); }
        }
        private async void Scan_Clicked(object sender, EventArgs e)
        {
            ls.IsRunning   = true;
            Scan.IsEnabled = false;

            try
            {
                var scanner = DependencyService.Get <IQrScanningService>();
                var result  = await scanner.ScanAsync();

                if (result != null)
                {
                    string test           = result;
                    var    alreadyScanned = await FirebaseHelper.GetParkRecord(result.Substring(0, 1), result.Substring(0, result.Length));

                    var record = await FirebaseHelper.GetParkRecord(App.UserName);

                    if (record == null && alreadyScanned == null)
                    {
                        ParkedInfo parkingSlot = new ParkedInfo()
                        {
                            parkingLotName = result.Substring(0, 1),
                            parkinglotNum  = result.Substring(0, result.Length),
                            username       = App.UserName,
                            TimeEntered    = DateTime.Now
                        };
                        var parkingLot = await FirebaseHelper.GetParkingLot(result.Substring(0, 1));

                        if (parkingLot != null)
                        {
                            parkingLot.currentCount++;
                            await FirebaseHelper.UpdateParkingLotInfo(parkingLot);
                        }


                        await FirebaseHelper.AddParkedInfo(parkingSlot);

                        ls.IsRunning   = false;
                        Scan.IsEnabled = true;
                        await App.Current.MainPage.DisplayAlert("", "Car is now Parked!", "OK");
                    }
                    else
                    {
                        if (result != null)
                        {
                            var parkingLot = await FirebaseHelper.GetParkingLot(result.Substring(0, 1));

                            if (parkingLot != null)
                            {
                                parkingLot.currentCount--;
                                await FirebaseHelper.UpdateParkingLotInfo(parkingLot);
                            }

                            await FirebaseHelper.DeleteParkedRecord(App.UserName);

                            ls.IsRunning   = false;
                            Scan.IsEnabled = true;
                            await App.Current.MainPage.DisplayAlert("", "Car is now Unparked!", "OK");
                        }
                        else
                        {
                            ls.IsRunning   = false;
                            Scan.IsEnabled = true;
                            await App.Current.MainPage.DisplayAlert("", "Lot is taken!", "OK");
                        }
                    }
                }
            }
            catch
            {
                ls.IsRunning   = false;
                Scan.IsEnabled = true;
            }
        }