/// <summary>
        /// This methods executes the pairing actions
        /// </summary>
        private async Task <bool> PairDeviceAsync(Models.Device device)
        {
            ComputeScanningPropertiesIndicators(ScanningWizardState.Pairing);
            availableDevices.Clear();

            await Task.Delay(1500);

            this.HasConnected = await MeasureService.RegisterDeviceAsync(device);

            await Task.Delay(500);

            if (HasConnected)
            {
                this.HasInitializedDevice = await MeasureService.InitializeBLEServicesAsync(device, MiaoMiaoProtocol.UART_SERVICE_ID);
            }
            await Task.Delay(500);

            if (this.HasInitializedDevice)
            {
                this.HasSubscribed = await MeasureService.SubsrcibeCharacteristicAsync(MiaoMiaoProtocol.NRF_UART_TX);
            }
            await Task.Delay(500);

            if (this.HasSubscribed)
            {
                // MIAOMIAO PROTOCOL
                List <byte[]> resetPacket = new List <byte[]>();
                resetPacket.Add(FreeStyleLibreUtils.GenerateResetPacket());
                this.HasReadFirstMeasure = await MeasureService.WriteCharacteristicAsync(MiaoMiaoProtocol.NRF_UART_RX, resetPacket);
            }
            await Task.Delay(1500);

            bool HasReadCorrectData = true;

            if (this.HasReadFirstMeasure)
            {
                HasReadCorrectData = MeasureService.CurrentState() != Models.Enums.MeasureServiceState.REFUSED_DATA_THEN_WAIT;
            }



            return(this.HasConnected && this.HasInitializedDevice && this.HasSubscribed && this.HasReadFirstMeasure && HasReadCorrectData);
        }