Пример #1
0
        private void BuildFilters(RemoteSystemDiscoveryTypeFilter discoveryFilter, RemoteSystemAuthorizationKindFilter authorizationKindFilter, RemoteSystemStatusTypeFilter statusFilter)
        {
            var filters = new List <IRemoteSystemFilter>();

            if (discoveryFilter != null)
            {
                filters.Add(discoveryFilter);
            }

            if (authorizationKindFilter != null)
            {
                filters.Add(authorizationKindFilter);
            }

            if (statusFilter != null)
            {
                filters.Add(statusFilter);
            }

            var remoteDeviceHelper = new RemoteDeviceHelper(filters);

            RemoteSystems = remoteDeviceHelper.RemoteSystems;

            UpdateProgressRing(true);
            UpdateList();
        }
Пример #2
0
        // <SnippetMakeFilterList>
        private List <IRemoteSystemFilter> makeFilterList()
        {
            // construct an empty list
            List <IRemoteSystemFilter> localListOfFilters = new List <IRemoteSystemFilter>();

            // construct a discovery type filter that only allows "proximal" connections:
            RemoteSystemDiscoveryTypeFilter discoveryFilter = new RemoteSystemDiscoveryTypeFilter(RemoteSystemDiscoveryType.Proximal);


            // construct a device type filter that only allows desktop and mobile devices:
            // For this kind of filter, we must first create an IIterable of strings representing the device types to allow.
            // These strings are stored as static read-only properties of the RemoteSystemKinds class.
            List <String> listOfTypes = new List <String>();

            listOfTypes.Add(RemoteSystemKinds.Desktop);
            listOfTypes.Add(RemoteSystemKinds.Phone);

            // Put the list of device types into the constructor of the filter
            RemoteSystemKindFilter kindFilter = new RemoteSystemKindFilter(listOfTypes);


            // construct an availibility status filter that only allows devices marked as available:
            RemoteSystemStatusTypeFilter statusFilter = new RemoteSystemStatusTypeFilter(RemoteSystemStatusType.Available);


            // add the 3 filters to the listL
            localListOfFilters.Add(discoveryFilter);
            localListOfFilters.Add(kindFilter);
            localListOfFilters.Add(statusFilter);

            // return the list
            return(localListOfFilters);
        }
Пример #3
0
        private void Filters_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            _discoveryFilter         = new RemoteSystemDiscoveryTypeFilter((RemoteSystemDiscoveryType)Enum.Parse(typeof(RemoteSystemDiscoveryType), _deviceDiscovery?.SelectedValue.ToString()));
            _authorizationKindFilter = new RemoteSystemAuthorizationKindFilter((RemoteSystemAuthorizationKind)Enum.Parse(typeof(RemoteSystemAuthorizationKind), _authorizationType?.SelectedValue.ToString()));
            _statusFilter            = new RemoteSystemStatusTypeFilter((RemoteSystemStatusType)Enum.Parse(typeof(RemoteSystemStatusType), _deviceStatus?.SelectedValue.ToString()));

            BuildFilters(_discoveryFilter, _authorizationKindFilter, _statusFilter);
        }
Пример #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RemoteDevicePicker"/> class with filters.
        /// </summary>
        public RemoteDevicePicker(RemoteSystemDiscoveryType remoteSystemDiscoveryType, RemoteSystemAuthorizationKind remoteSystemAuthorizationKind, RemoteSystemStatusType remoteSystemStatusType)
        {
            DefaultStyleKey     = typeof(RemoteDevicePicker);
            RemoteSystems       = new ObservableCollection <RemoteSystem>();
            PrimaryButtonClick += RemoteDevicePicker_PrimaryButtonClick;

            _discoveryFilter         = new RemoteSystemDiscoveryTypeFilter(remoteSystemDiscoveryType);
            _authorizationKindFilter = new RemoteSystemAuthorizationKindFilter(remoteSystemAuthorizationKind);
            _statusFilter            = new RemoteSystemStatusTypeFilter(remoteSystemStatusType);
        }
        private List <IRemoteSystemFilter> BuildDeviceFilter()
        {
            // construct an empty list
            var localListOfFilters = new List <IRemoteSystemFilter>();

            // construct a discovery type filter that only allows "proximal" connections:
            RemoteSystemDiscoveryTypeFilter discoveryFilter = new RemoteSystemDiscoveryTypeFilter(RemoteSystemDiscoveryType.Proximal);

            // construct an availibility status filter that only allows devices marked as available.
            RemoteSystemStatusTypeFilter statusFilter = new RemoteSystemStatusTypeFilter(RemoteSystemStatusType.Available);


            // add the 3 filters to the listL
            //localListOfFilters.Add(discoveryFilter);
            localListOfFilters.Add(statusFilter);

            // return the list
            return(localListOfFilters);
        }
        private List<IRemoteSystemFilter> BuildDeviceFilter()
        {
            // construct an empty list
            var localListOfFilters = new List<IRemoteSystemFilter>();

            // construct a discovery type filter that only allows "proximal" connections:
            RemoteSystemDiscoveryTypeFilter discoveryFilter = new RemoteSystemDiscoveryTypeFilter(RemoteSystemDiscoveryType.Proximal);

            // construct an availibility status filter that only allows devices marked as available.
            RemoteSystemStatusTypeFilter statusFilter = new RemoteSystemStatusTypeFilter(RemoteSystemStatusType.Available);


            // add the 3 filters to the listL
            //localListOfFilters.Add(discoveryFilter);
            localListOfFilters.Add(statusFilter);

            // return the list
            return localListOfFilters;
        }
Пример #7
0
        private static List <IRemoteSystemFilter> MakeFilterList()
        {
            // construct an empty list
            var localListOfFilters = new List <IRemoteSystemFilter>();

            // construct a discovery type filter that only allows "proximal" connections:
            var discoveryFilter = new RemoteSystemDiscoveryTypeFilter(RemoteSystemDiscoveryType.Any);


            // construct a device type filter that only allows desktop and mobile devices:
            // For this kind of filter, we must first create an IIterable of strings representing the device types to allow.
            // These strings are stored as static read-only properties of the RemoteSystemKinds class.
            var listOfTypes = new List <string>
            {
                RemoteSystemKinds.Desktop,
                RemoteSystemKinds.Holographic,
                RemoteSystemKinds.Hub,
                RemoteSystemKinds.Laptop,
                RemoteSystemKinds.Tablet,
                RemoteSystemKinds.Xbox
            };

            // Put the list of device types into the constructor of the filter
            var kindFilter = new RemoteSystemKindFilter(listOfTypes);


            // construct an availibility status filter that only allows devices marked as available:
            var statusFilter = new RemoteSystemStatusTypeFilter(RemoteSystemStatusType.Available);

            // add the 3 filters to the list
            localListOfFilters.Add(discoveryFilter);
            localListOfFilters.Add(kindFilter);
            localListOfFilters.Add(statusFilter);

            // return the list
            return(localListOfFilters);
        }
Пример #8
0
        /// <summary>
        /// Initiate Enumeration with specific RemoteSystemStatusType
        /// </summary>
        private void GenerateSystemsByFilters(RemoteSystemStatusType remoteSystemStatusType, RemoteSystemAuthorizationKind remoteSystemAuthorizationKind, RemoteSystemDiscoveryType remoteSystemDiscoveryType)
        {
            var remoteSystemStatusTypeFilter        = new RemoteSystemStatusTypeFilter(remoteSystemStatusType);
            var remoteSystemDiscoveryTypeFilter     = new RemoteSystemDiscoveryTypeFilter(remoteSystemDiscoveryType);
            var remoteSystemAuthorizationKindFilter = new RemoteSystemAuthorizationKindFilter(remoteSystemAuthorizationKind);
            var filters = new List <IRemoteSystemFilter>();

            if (remoteSystemStatusTypeFilter != null)
            {
                filters.Add(remoteSystemStatusTypeFilter);
            }

            if (remoteSystemDiscoveryTypeFilter != null)
            {
                filters.Add(remoteSystemDiscoveryTypeFilter);
            }

            if (remoteSystemAuthorizationKindFilter != null)
            {
                filters.Add(remoteSystemAuthorizationKindFilter);
            }

            GenerateSystemsWithFilterAsync(filters);
        }
Пример #9
0
        private List <IRemoteSystemFilter> BuildFilters()
        {
            List <IRemoteSystemFilter>          filters = new List <IRemoteSystemFilter>();
            RemoteSystemDiscoveryTypeFilter     discoveryFilter;
            RemoteSystemAuthorizationKindFilter authorizationKindFilter;
            List <string> kinds = new List <string>();
            RemoteSystemStatusTypeFilter statusFilter;

            if (DiscoveryTypeOptions.IsChecked.Value)
            {
                // Build discovery type filters
                if (ProximalRadioButton.IsChecked.Value)
                {
                    discoveryFilter = new RemoteSystemDiscoveryTypeFilter(RemoteSystemDiscoveryType.Proximal);
                }
                else if (CloudRadioButton.IsChecked.Value)
                {
                    discoveryFilter = new RemoteSystemDiscoveryTypeFilter(RemoteSystemDiscoveryType.Cloud);
                }
                else if (SpatiallyProximalRadioButton.IsChecked.Value)
                {
                    discoveryFilter = new RemoteSystemDiscoveryTypeFilter(RemoteSystemDiscoveryType.SpatiallyProximal);
                }
                else
                {
                    discoveryFilter = new RemoteSystemDiscoveryTypeFilter(RemoteSystemDiscoveryType.Any);
                }
                filters.Add(discoveryFilter);
            }

            if (AuthorizationTypeOptions.IsChecked.Value)
            {
                // Build authorization type filters
                if (AnonymousDiscoveryRadioButton.IsChecked.Value)
                {
                    authorizationKindFilter = new RemoteSystemAuthorizationKindFilter(RemoteSystemAuthorizationKind.Anonymous);
                }
                else
                {
                    authorizationKindFilter = new RemoteSystemAuthorizationKindFilter(RemoteSystemAuthorizationKind.SameUser);
                }
                filters.Add(authorizationKindFilter);
            }

            if (SystemTypeOptions.IsChecked.Value)
            {
                // Build system type filters
                if (DesktopCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Desktop);
                }
                if (TabletCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Tablet);
                }
                if (LaptopCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Laptop);
                }
                if (IotCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Iot);
                }
                if (HolographicCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Holographic);
                }
                if (HubCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Hub);
                }
                if (PhoneCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Phone);
                }
                if (XboxCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Xbox);
                }
                if (kinds.Count == 0)
                {
                    UpdateStatus("Select a system type filter.", NotifyType.ErrorMessage);
                }
                else
                {
                    RemoteSystemKindFilter kindFilter = new RemoteSystemKindFilter(kinds);
                    filters.Add(kindFilter);
                }
            }

            if (StatusTypeOptions.IsChecked.Value)
            {
                // Build status type filters
                if (AvailableRadioButton.IsChecked.Value)
                {
                    statusFilter = new RemoteSystemStatusTypeFilter(RemoteSystemStatusType.Available);
                }
                else
                {
                    statusFilter = new RemoteSystemStatusTypeFilter(RemoteSystemStatusType.Any);
                }
                filters.Add(statusFilter);
            }

            return(filters);
        }
        private List<IRemoteSystemFilter> BuildFilters()
        {
            List<IRemoteSystemFilter> filters = new List<IRemoteSystemFilter>();
            RemoteSystemDiscoveryTypeFilter discoveryFilter;
            List<string> kinds = new List<string>();
            RemoteSystemStatusTypeFilter statusFilter;

            if (DiscoveryTypeOptions.IsChecked.Value)
            {
                // Build discovery type filters
                if (ProximalRadioButton.IsChecked.Value)
                {
                    discoveryFilter = new RemoteSystemDiscoveryTypeFilter(RemoteSystemDiscoveryType.Proximal);
                }
                else if (CloudRadioButton.IsChecked.Value)
                {
                    discoveryFilter = new RemoteSystemDiscoveryTypeFilter(RemoteSystemDiscoveryType.Cloud);
                }
                else
                {
                    discoveryFilter = new RemoteSystemDiscoveryTypeFilter(RemoteSystemDiscoveryType.Any);
                }
                filters.Add(discoveryFilter);
            }

            if (DeviceTypeOptions.IsChecked.Value)
            {
                // Build device type filters
                if (DesktopCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Desktop);
                }
                if (HolographicCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Holographic);
                }
                if (HubCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Hub);
                }
                if (PhoneCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Phone);
                }
                if (XboxCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Xbox);
                }
                if (kinds.Count == 0)
                {
                    UpdateStatus("Select a Device type filter.", NotifyType.ErrorMessage);
                }
                else
                {
                    RemoteSystemKindFilter kindFilter = new RemoteSystemKindFilter(kinds);
                    filters.Add(kindFilter);
                }
            }

            if (StatusTypeOptions.IsChecked.Value)
            {
                // Build status type filters
                if (AvailableRadioButton.IsChecked.Value)
                {
                    statusFilter = new RemoteSystemStatusTypeFilter(RemoteSystemStatusType.Available);
                }
                else
                {
                    statusFilter = new RemoteSystemStatusTypeFilter(RemoteSystemStatusType.Any);
                }
                filters.Add(statusFilter);
            }

            return filters;
        }
Пример #11
0
        private List <IRemoteSystemFilter> BuildFilters()
        {
            List <IRemoteSystemFilter>      filters = new List <IRemoteSystemFilter>();
            RemoteSystemDiscoveryTypeFilter discoveryFilter;
            List <string> kinds = new List <string>();
            RemoteSystemStatusTypeFilter statusFilter;

            if (DiscoveryTypeOptions.IsChecked.Value)
            {
                // Build discovery type filters
                if (ProximalRadioButton.IsChecked.Value)
                {
                    discoveryFilter = new RemoteSystemDiscoveryTypeFilter(RemoteSystemDiscoveryType.Proximal);
                }
                else if (CloudRadioButton.IsChecked.Value)
                {
                    discoveryFilter = new RemoteSystemDiscoveryTypeFilter(RemoteSystemDiscoveryType.Cloud);
                }
                else
                {
                    discoveryFilter = new RemoteSystemDiscoveryTypeFilter(RemoteSystemDiscoveryType.Any);
                }
                filters.Add(discoveryFilter);
            }

            if (DeviceTypeOptions.IsChecked.Value)
            {
                // Build device type filters
                if (DesktopCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Desktop);
                }
                if (HolographicCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Holographic);
                }
                if (HubCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Hub);
                }
                if (PhoneCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Phone);
                }
                if (XboxCheckBox.IsChecked.Value)
                {
                    kinds.Add(RemoteSystemKinds.Xbox);
                }
                if (kinds.Count == 0)
                {
                    UpdateStatus("Select a Device type filter.", NotifyType.ErrorMessage);
                }
                else
                {
                    RemoteSystemKindFilter kindFilter = new RemoteSystemKindFilter(kinds);
                    filters.Add(kindFilter);
                }
            }

            if (StatusTypeOptions.IsChecked.Value)
            {
                // Build status type filters
                if (AvailableRadioButton.IsChecked.Value)
                {
                    statusFilter = new RemoteSystemStatusTypeFilter(RemoteSystemStatusType.Available);
                }
                else
                {
                    statusFilter = new RemoteSystemStatusTypeFilter(RemoteSystemStatusType.Any);
                }
                filters.Add(statusFilter);
            }

            return(filters);
        }