示例#1
0
        /// <summary>
        /// Funkcja odpowiadajaca za wygenerowanie raportu po skanowaniu
        /// </summary>
        private async void GenerateRaport()
        {
            EnableView(false);
            ReportPositionPrototype[] reportPositionPrototype = new ReportPositionPrototype[allScaning.Count];

            for (int i = 0; i < allScaning.Count; i++)
            {
                reportPositionPrototype[i] = allScaning[i].reportPositionPrototype;
            }

            int reportId = await api.createReport(new ReportPrototype($"Raport {ScanningRoom.building.name} {ScanningRoom.name}", ScanningRoom, reportPositionPrototype));

            EnableView(true);

            if (reportId != -1)
            {
                scanningUpdate.Delete();
                App.Current.MainPage = new NavigationPage(new WelcomeViewPage());
            }
        }
示例#2
0
        /// <summary>
        /// Funkcja odpowiadajaca za obsluge przycisku kontynuowania
        /// </summary>
        private void Continue_Button_Clicked(object o, EventArgs args)
        {
            EnableView(false);

            Device.BeginInvokeOnMainThread(async() =>
            {
                if (RoomPicker.SelectedIndex < 0)
                {
                    await DisplayAlert("Pomieszczenie", "Wybierz pomieszczenie", "OK");
                    EnableView(true);
                    return;
                }

                RoomEntity selectedRoom = null;
                string selectedName     = RoomPicker.Items[RoomPicker.SelectedIndex];

                await Task.Run(() =>
                {
                    foreach (var room in rooms)
                    {
                        if (room.name == selectedName)
                        {
                            selectedRoom = room;
                            break;
                        }
                    }
                });

                if (selectedRoom != null)
                {
                    var status = await CheckPermissions();

                    if (status != PermissionStatus.Granted)
                    {
                        await DisplayAlert("Komunikat", "Bez uprawnień do kamery aplikacja nie może działać poprawnie", "OK");
                    }
                    else
                    {
                        var scans = await api.getScans();
                        ScanEntity existingScan = null;

                        if (scans != null && scans.Length > 0)
                        {
                            foreach (var scan in scans)
                            {
                                if (scan.room.id == selectedRoom.id)
                                {
                                    existingScan = scan;
                                }
                            }
                        }

                        if (existingScan != null)
                        {
                            bool useThisScan = await DisplayAlert("Znaleziono niedokończone skanowanie", "Czy chcesz użyć niedokończonego skanowania?", "Tak", "Nie");

                            if (!useThisScan)
                            {
                                var scanning = new ScanningUpdate(api, selectedRoom, existingScan.id);
                                scanning.Delete();
                                existingScan = null;
                            }
                        }

                        int scanId = existingScan != null ? existingScan.id : await api.addScan(new ScanPrototype(selectedRoom.id));

                        await Navigation.PushModalAsync(new ScanItemPage(selectedRoom, scanId, existingScan));
                    }
                }
                else
                {
                    await DisplayAlert("Błąd", "Błąd niespodzianka, nie znaleziono wybranego pomieszczenia", "OK");
                }

                EnableView(true);
            });
        }