/// <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()); } }
/// <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); }); }