/// <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.
            };
        }
Пример #2
0
 /// <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();
 }
Пример #3
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);
            });
        }