/// <summary> /// Konstruktor klasy /// </summary> /// <param name="room">pokoj w ktorym odbywa sie skanowanie</param> public ScanItemPage(RoomEntity room, int scanId, ScanEntity previusScan) { Room = room; scanningUpdate = new ScanningUpdate(api, room, scanId); InitializeComponent(); GetAllAssets(); if (previusScan != null) { InitializeWith(previusScan); } _scanner.Options = new MobileBarcodeScanningOptions() { DelayBetweenContinuousScans = 1800, // msec UseFrontCameraIfAvailable = false, PossibleFormats = new List <BarcodeFormat>(new[] { BarcodeFormat.EAN_8, BarcodeFormat.EAN_13, BarcodeFormat.CODE_128, BarcodeFormat.QR_CODE }), TryHarder = false //Gets or sets a flag which cause a deeper look into the bitmap. }; }
/// <summary> /// Konstruktor klasy /// </summary> /// <param name="scannedItems">zeskanowane srodki trwale</param> /// <param name="scanningRoom">pokoj w ktorym odbylo sie skanowanie</param> public ScannedItem(List <ScanPosition> scannedItems, RoomEntity scanningRoom, ScanningUpdate scanningUpdate) { InitializeComponent(); this.scanningUpdate = scanningUpdate; allScaning = scannedItems; api.ErrorEventHandler += onApiError; ScanningRoom = scanningRoom; BindingContext = this; ScannedInRoomTopic.Text = "Zeskanowane z sali " + ScanningRoom.name; UnscannedInRoomTopic.Text = "Niezeskanowane z sali " + ScanningRoom.name; ShowInfo(); }
/// <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); }); }