private async Task AddAdvertisementToList(BluetoothLEAdvertisementReceivedEventArgs advertisementEvent)
        {
            try
            {
                await AdvertisementsLock.WaitAsync();

                await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(
                    Windows.UI.Core.CoreDispatcherPriority.Normal,
                    () =>
                {
                    var advertisement = new ObservableBluetoothLEAdvertisement(advertisementEvent);

                    Advertisements[advertisement.InternalHashString] = advertisement;
                });
            }
            finally
            {
                AdvertisementsLock.Release();
            }
        }
        public void Update(ObservableBluetoothLEAdvertisement other)
        {
            if (AddressType != other.AddressType)
            {
                AddressType = other.AddressType;
                OnPropertyChanged(new PropertyChangedEventArgs("AddressType"));
            }

            if (TxPower != other.TxPower)
            {
                TxPower = other.TxPower;
                OnPropertyChanged(new PropertyChangedEventArgs("TxPower"));
            }

            if (Type != other.Type)
            {
                Type = other.Type;
                OnPropertyChanged(new PropertyChangedEventArgs("Type"));
            }

            if (Rssi != other.Rssi)
            {
                Rssi = other.Rssi;
                OnPropertyChanged(new PropertyChangedEventArgs("Rssi"));
            }

            if (Timestamp != other.Timestamp)
            {
                Timestamp = other.Timestamp;
                OnPropertyChanged(new PropertyChangedEventArgs("Timestamp"));
            }

            Anonymous    = other.Anonymous;
            Connectable  = other.Connectable;
            Scannable    = other.Scannable;
            Directed     = other.Directed;
            ScanResponse = other.ScanResponse;
        }