예제 #1
0
        public ScanResult(string scanData)
        {
            InitializeComponent();
            ScanResultViewModel viewModel = new ScanResultViewModel(scanData, Resolver.Resolve <IUserService>());

            viewModel.Navigation = Navigation;
            BindingContext       = viewModel;
        }
예제 #2
0
        async void connectBClicked(object sender, EventArgs e)
        {
            bool answer;

            this.scan?.Dispose();

            var button = sender as Button;
            ScanResultViewModel item = button.BindingContext as ScanResultViewModel;

            device = item.Device;

            bleACRProfileManager.cleanEverything(device);
            try
            {
                // don't cleanup connection - force user to d/c
                if (this.device.Status == ConnectionStatus.Disconnected)
                {
                    answer = await DisplayAlert("Beskyddare", "Vill du ansluta till den här bluetooth enheten?", "Ja", "Nej");

                    if (answer == true)
                    {
                        using (var cancelSrc = new CancellationTokenSource())
                        {
                            using (UserDialogs.Instance.Loading("Connecting", cancelSrc.Cancel, "Cancel"))
                            {
                                await this.device.Connect().ToTask(cancelSrc.Token);
                            }

                            efterConnection();
                        }
                    }
                }
                else
                {
                    answer = await DisplayAlert("Beskyddare", "Vill du avsluta till den här bluetooth enheten?", "Ja", "Nej");

                    if (answer == true)
                    {
                        this.device.CancelConnection();
                        App.isConnectedBLE = false;
                    }
                }
            }
            catch (Exception ex)
            {
                UserDialogs.Instance.Alert(ex.ToString());
            }
            //Devices.FirstOrDefault(d => d.Device.Uuid == device.Uuid).UpdateD();
            this.theBTunits.ItemsSource = bleACRProfileManager.bleprofile.Devices;
        }
예제 #3
0
        public async Task <JsonResult> Get(string domain)
        {
            var workerInformation = new WorkerInformation()
            {
                Hostname = domain
            };
            var scanResults = await ScannerFacade.ScanDns(workerInformation);

            var scanResultsViewModel = new ScanResultViewModel()
            {
                Date = DateTime.Now, Domain = domain, Results = scanResults
            };

            return(new JsonResult(scanResultsViewModel, new JsonSerializerSettings()
            {
                NullValueHandling = NullValueHandling.Include
            }));
        }
        public async Task <ScanResultViewModel> Passport()
        {
            Byte[] frontImageBytes = null, backImageBytes = null;
            string fileName        = string.Empty;

            try
            {
                if (Request.HttpContext.Request.Form.Files["frontside"].FileName != null)
                {
                    var imageFrontStream = Request.HttpContext.Request.Form.Files["frontside"].OpenReadStream();
                    fileName = Request.HttpContext.Request.Form.Files["frontside"].FileName;
                    Int32 forntLength = imageFrontStream.Length > Int32.MaxValue ? Int32.MaxValue : Convert.ToInt32(imageFrontStream.Length);
                    frontImageBytes = new Byte[forntLength];
                    imageFrontStream.Read(frontImageBytes, 0, forntLength);
                }
            }
            catch (Exception) { }

            try
            {
                if (Request.HttpContext.Request.Form.Files["backside"].FileName != null)
                {
                    var   imageBackStream = Request.HttpContext.Request.Form.Files["backside"].OpenReadStream();
                    Int32 backLength      = imageBackStream.Length > Int32.MaxValue ? Int32.MaxValue : Convert.ToInt32(imageBackStream.Length);
                    backImageBytes = new Byte[backLength];
                    imageBackStream.Read(backImageBytes, 0, backLength);
                }
            }
            catch (Exception) { }

            IOcrService ocrService  = new GoogleVisionService();
            string      serviceName = ocrService.Service;

            IFileStorageService fsService  = new AzureBlobStorageService(serviceName);
            ScanResultViewModel scanResult = new ScanResultViewModel();

            scanResult.ScanId = await fsService.StoreImageAsync(frontImageBytes, backImageBytes);

            scanResult.Data = await ocrService.ScanPassportAsync(frontImageBytes, backImageBytes, fileName);

            return(scanResult);
        }
예제 #5
0
 void OnScanResult(IScanResult result)
 {
     Device.BeginInvokeOnMainThread(() =>
     {
         var dev = bleACRProfileManager.bleprofile.Devices.FirstOrDefault(x => x.Uuid.Equals(result.Device.Uuid));
         if (dev != null && !String.IsNullOrEmpty(dev.Name))
         {
             dev.TrySet(result);
         }
         else
         {
             dev = new ScanResultViewModel();
             dev.TrySet(result);
             if (!String.IsNullOrEmpty(dev.Name))
             {
                 bleACRProfileManager.bleprofile.Devices.Add(dev);
             }
         }
     });
     this.theBTunits.ItemsSource = bleACRProfileManager.bleprofile.Devices;
 }
        public void Setup()
        {
            _navigationServiceMock = new Mock <INavigationService>();
            _userServiceMock       = new Mock <IUserDataService>();
            _mealDataServiceMock   = new Mock <IMealDataService>();
            _scanServiceMock       = new Mock <IScanService>();
            _menuServiceMock       = new Mock <IMenuDataService>();

            scannedUsers   = new List <ScannedUser>();
            scannedUser    = new ScannedUser();
            scannedUser.Id = 1;
            scannedUsers.Add(scannedUser);

            scannedMeals   = new List <ScannedMeal>();
            scannedMeal    = new ScannedMeal();
            scannedMeal.Id = 1;
            scannedMeals.Add(scannedMeal);

            menu     = new Shared.Models.Menu();
            mealList = new ObservableCollection <Meal>();
            meal1    = new Meal();
            meal1.Id = 1;
            meal2    = new Meal();
            meal2.Id = 2;
            mealList.Add(meal1);
            mealList.Add(meal2);
            menu.Meals = mealList;

            user           = new User();
            scannedUser.Id = 1;

            _scanServiceMock.Setup(f => f.MakeMealScan()).ReturnsAsync(scannedMeals);
            _scanServiceMock.Setup(f => f.MakePersonScan()).ReturnsAsync(scannedUsers);
            _menuServiceMock.Setup(f => f.GetLastMenu()).ReturnsAsync(menu);
            _userServiceMock.Setup(f => f.GetUserById(It.IsAny <int>())).ReturnsAsync(user);
            _mealDataServiceMock.Setup(f => f.GetMealById(It.IsAny <long>())).ReturnsAsync(meal1);

            _sut             = new ScanResultViewModel(_scanServiceMock.Object, _navigationServiceMock.Object, _mealDataServiceMock.Object, _userServiceMock.Object, _menuServiceMock.Object);
            _sut.ScannedMeal = meal1;
        }
예제 #7
0
        async void connectBClicked(object sender, EventArgs e)
        {
            bool answer;

            this.scan?.Dispose();

            var button = sender as Button;
            ScanResultViewModel item = button.BindingContext as ScanResultViewModel;

            device = item.Device;

            bleACRProfileManager.cleanEverything(device);
            try
            {
                // don't cleanup connection - force user to d/c
                //if (this.device.Status == ConnectionStatus.Disconnected)
                if (App.isConnectedBLE == false)
                {
                    answer = await DisplayAlert("Bluetooth", "Vill du ansluta till den här bluetooth enheten?", "Ja", "Nej");

                    if (answer == true)
                    {
                        using (var cancelSrc = new CancellationTokenSource())
                        {
                            using (UserDialogs.Instance.Loading("Ansluter", cancelSrc.Cancel, "Avbryt"))
                            {
                                await this.device.Connect().ToTask(cancelSrc.Token);
                            }

                            efterConnection();
                            progBar.IsVisible      = true;
                            progBarText.IsVisible  = true;
                            progBarFirst.IsVisible = true;
                            checkBattery.IsVisible = true;
                            //START OF BIG TRYCATCH
                            try
                            {
                                await Task.Delay(800);

                                Button_OnClickedBatteriUppdat(new Object(), EventArgs.Empty);
                            }
                            catch (Exception)
                            {
                                try
                                {
                                    Button_OnClickedBatteriUppdat(new Object(), EventArgs.Empty);
                                }
                                catch (Exception)
                                {
                                }
                            }
                        }
                        for (int i = 0; i < 3; i++)
                        {
                            await Task.Delay(500);

                            try
                            {
                                Button_OnClickedBatteriUppdat(new Object(), EventArgs.Empty);
                            }
                            catch (Exception)
                            {
                            }
                        }
                        //END OF BIG TRY CATCH
                    }
                }
                else
                {
                    answer = await DisplayAlert("Bluetooth", "Vill du avbryta anslutningen?", "Ja", "Nej");

                    if (answer == true)
                    {
                        for (int i = 0; i < 3; i++)
                        {
                            await Task.Delay(500);

                            this.device.CancelConnection();
                        }
                        App.isConnectedBLE = false;
                        if (App.dangerModeOn)
                        {
                            App.dangerModeOn = false;
                            connectToBackend(false);
                            App.ct.Cancel();
                            var message = new StopLongRunningTaskMessage();
                            MessagingCenter.Send(message, "StopLongRunningTaskMessage");
                        }
                        progBar.IsVisible      = false;
                        progBarText.IsVisible  = false;
                        progBarFirst.IsVisible = false;
                        checkBattery.IsVisible = false;
                    }
                }
            }
            catch (Exception ex)
            {
                UserDialogs.Instance.Alert(ex.ToString());
            }
            //Devices.FirstOrDefault(d => d.Device.Uuid == device.Uuid).UpdateD();
            this.theBTunits.ItemsSource = bleACRProfileManager.bleprofile.Devices;
        }