private async void WifiScanSummaryRequest_NotificationReceived(object sender, NotifyEventArgs e)
        {
            if (MessageProtocolFactory.ReadRequestMessagePayload(e.Data) is WifiScanSummaryRequest wifiScanSummaryRequest)
            {
                Debug.WriteLine($"Received Wi-Fi config message protocol request: '{wifiScanSummaryRequest.WifiRequestType}'");

                await bluetoothLeHelper.EndNotificationListenerAsync();

                bluetoothLeHelper.NotificationReceived -= WifiScanSummaryRequest_NotificationReceived;

                if (wifiScanSummaryRequest.ErrorCode != 0x00)
                {
                    throw new InvalidOperationException($"Wi-Fi network scan failed with error code {wifiScanSummaryRequest.ErrorCode}");
                }

                if (wifiScanSummaryRequest.NetworkCount == 0)
                {
                    // Report that we're not getting anything.
                    WifiNetworkScanReceived?.Invoke(this, new WifiScanRequestEventArgs(null, 0, 0));
                }
                else
                {
                    bluetoothLeHelper.NotificationReceived += WifiScanResultRequest_NotificationReceived;
                    await bluetoothLeHelper.StartNotificationListenerAsync(currentService, MessageProtocolTxCharacteristicId);

                    actualWifiNetworkCount   = 0;
                    expectedWifiNetworkCount = wifiScanSummaryRequest.NetworkCount;

                    await SendResponseAsync(currentService, wifiScanSummaryRequest, wifiScanSummaryRequest.ErrorCode);
                }
            }
        }
        private async void WifiScanResultRequest_NotificationReceived(object sender, NotifyEventArgs e)
        {
            if (MessageProtocolFactory.ReadRequestMessagePayload(e.Data) is WifiScanResultRequest wifiScanResultRequest)
            {
                Debug.WriteLine($"Received Wi-Fi config message protocol request: '{wifiScanResultRequest.RequestType}'");

                actualWifiNetworkCount++;
                WifiNetworkScanReceived?.Invoke(this, new WifiScanRequestEventArgs(wifiScanResultRequest, actualWifiNetworkCount, expectedWifiNetworkCount));

                await SendResponseAsync(currentService, wifiScanResultRequest, 0x00);

                if (actualWifiNetworkCount == expectedWifiNetworkCount)
                {
                    bluetoothLeHelper.NotificationReceived -= WifiScanResultRequest_NotificationReceived;
                }
            }
        }