/// <summary> /// Initializes a new instance of the <see cref="VirtualPeripheralPageViewModel" /> class. /// </summary> public VirtualPeripheralPageViewModel() { Context.PropertyChanged += Context_PropertyChanged; AvailableServices.Add("Battery"); AvailableServices.Add("Microsoft Service"); AvailableServices.Add("Heart Rate Service"); AvailableServices.Add("Blood Pressure Service"); }
private void ScanTypes() { _logger.Debug($"Scan for services"); AssemblyUtils.GetAttribute <ArgonServiceAttribute>().ForEach(s => { _logger.Debug($"Registering service {s.Name}"); _containerBuilder.RegisterType(s).As(AssemblyUtils.GetInterfaceOfType(s)).SingleInstance(); AvailableServices.Add(s); }); }
private void InsertFixedBotThomas() { // Create a Service object for the brick bot Service service = new Service("Bricker BIM Bot", "Convert limestone walls to bricks", "Bricker", "http://www.clker.com/cliparts/a/g/Z/8/6/G/blue-ibm-wall-md.png", new List <string> { "IFC_STEP_2X3TC1" }, new List <string> { "BCF_ZIP_2_0" }, null, "http://ec2-18-218-56-112.us-east-2.compute.amazonaws.com/"); // Add the service/bot to the list of services AvailableServices.Add(service); }
public void GetAvailableServices() { try { // Clear the list AvailableServices.Clear(); // Get list of known providers of BIM Bot services from GitHub string resstr = ResponseOfGetRequest("https://raw.githubusercontent.com/opensourceBIM/BIMserver-Repository/master/serviceproviders.json"); if (resstr != null) { // modify the response to add the ifcanalysis provider for now (TODO remove in future) resstr = resstr.Insert(resstr.LastIndexOf(']'), ", {\n" + "\"name\": \"ifcanalysis.bimserver.services\", \n" + "\"description\": \"Experimental services provider\", \n" + "\"listUrl\": \"https://ifcanalysis.bimserver.services/servicelist\"\n" + "}"); // Deserialize the JSON response JsonProviderList gitProviders = JsonConvert.DeserializeObject <JsonProviderList>(resstr); // Insert services of each provider foreach (JsonProvider provider in gitProviders.active) { JsonServiceList serviceList = provider.GetJsonServices(); if (serviceList != null) { // Add each service in the list from the JSON response foreach (Service service in serviceList.Services) { // Add the service to the service list AvailableServices.Add(service); } } } } // add the provider of Kalkzandsteen bot (Thomas) for now (TODO remove in future) InsertFixedBotThomas(); } catch (Exception e) { Console.Write(e); } }
/// <summary> /// Gets the service methods. /// </summary> /// <param name="serviceName">Name of the service.</param> /// <returns></returns> public List <string> GetServiceMethods(string serviceName) { if (!_availableTypes.ContainsKey(serviceName)) { throw new Exception("Service Not Available"); } Type type = _availableTypes[serviceName]; var methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Select(method => method.Name).ToList(); WebServiceMethods = GetWebMethods(type.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly)); foreach (var contractDescription in Contracts) { if (contractDescription.Name == serviceName && !AvailableServices.ContainsKey(serviceName)) { AvailableServices.Add(serviceName, WebServiceMethods); } } return(methods); }
public MainPageViewModel(IServiceProvider serviceProvider, AppViewModel appViewModel) : base(serviceProvider, appViewModel) { m_connectionInfoProperty = CreateDictionaryProperty(() => ConnectionInfo, () => null); m_connectionInfoTaskStatusProperty = CreateDictionaryProperty(() => ConnectionInfoTaskStatus, () => TaskStatus.Created); m_dhcpInfoProperty = CreateDictionaryProperty(() => DhcpInfo, () => null); m_dhcpInfoTaskStatusProperty = CreateDictionaryProperty(() => DhcpInfoTaskStatus, () => TaskStatus.Created); m_externalAddressProperty = CreateDictionaryProperty(() => ExternalAddress, () => null); m_externalAddressTaskStatusProperty = CreateDictionaryProperty(() => ExternalAddressTaskStatus, () => TaskStatus.Created); m_statusProperty = CreateDictionaryProperty(() => Status, () => String.Empty); m_progressPercentProperty = CreateDictionaryProperty(() => ProgressPercent, () => 0.0d); m_isScanInProgressProperty = CreateDictionaryProperty(() => IsScanInProgress, () => false); m_customSelectionCommandsProperty = CreateDictionaryProperty(() => CustomSelectionCommands, () => new ObservableCollection <UICommand>()); m_startAddressValueProperty = CreateSettingsProperty(V1SettingsConstants.StartAddressValueKey, () => StartAddressValue, () => 0u, () => { UpdateActionBarControls(); }); m_isStartAddressValidProperty = CreateDictionaryProperty(() => IsStartAddressValid, () => false); m_endAddressValueProperty = CreateSettingsProperty(V1SettingsConstants.EndAddressValueKey, () => EndAddressValue, () => 0u, () => { UpdateActionBarControls(); }); m_isEndAddressValidProperty = CreateDictionaryProperty(() => IsEndAddressValid, () => false); var hostInfoService = ServiceProvider.GetService <IHostInfoService>(); var hostInfo = hostInfoService.GetCurrentHostInfo(); if (hostInfo == null) { Status = Strings.Status_GetHostInfoFailed; } else { var connectionInfoTask = RunGetConnectionInfoAsync(hostInfo); var dhcpInfoTask = RunGetDhcpInfoAsync(hostInfo); var externalAddressTask = RunGetExternalAddressAsync(); Task.Factory.ContinueWhenAll(new[] { connectionInfoTask, dhcpInfoTask }, t => { if (ConnectionInfo != null) { if (DhcpInfo != null && DhcpInfo.DnsServerAddress != null) { m_dnsResolver = new UdpDnsResolver( new DnsResolverOptions(), new DatagramSocketFactory(), new IPEndpoint(DhcpInfo.DnsServerAddress, Constants.DefaultDnsPort)); } SetAddressValues(ConnectionInfo.Network); IsScanInProgress = false; m_isScanCommandEnabled = true; m_scanCommand.Refresh(); m_isCancelScanCommandEnabled = false; m_cancelScanCommand.Refresh(); } }, CancellationToken.None, TaskContinuationOptions.None, TaskScheduler.FromCurrentSynchronizationContext()); } m_scanCommand = new DelegateCommand(async() => { var scanStopwatch = new Stopwatch(); scanStopwatch.Start(); m_tokenSource = new CancellationTokenSource(); AvailableServices.Clear(); IsScanInProgress = true; m_isScanCommandEnabled = false; m_scanCommand.Refresh(); m_isCancelScanCommandEnabled = true; m_cancelScanCommand.Refresh(); Status = Strings.Status_ScanStarted; var selectedAddresses = new IPAddressRange(StartAddressValue, EndAddressValue); var networkServices = await GetNetworkServicesAsync(); var index = 0; var progress = (IProgress <ScanNetworkBatch>) new Progress <ScanNetworkBatch>(batch => { foreach (var result in batch.Results) { if (result.IsAvailable) { AvailableServices.Add(result); } } index += batch.Results.Count; ProgressPercent = 100.0d * index / (selectedAddresses.Count * networkServices.Length); }); var task = Task.Factory.StartNew( arg => { Scanner.ScanNetwork(m_tokenSource.Token, m_dnsResolver, selectedAddresses, networkServices, progress); }, m_tokenSource.Token, TaskCreationOptions.None); var t1 = task.ContinueWith(t => { IsScanInProgress = false; m_isScanCommandEnabled = true; m_scanCommand.Refresh(); m_isCancelScanCommandEnabled = false; m_cancelScanCommand.Refresh(); var isCancelled = m_tokenSource.Token.IsCancellationRequested; if (isCancelled) { Status = Strings.Status_ScanCancelled; ProgressPercent = 0.0d; } else { scanStopwatch.Stop(); var timeSpan = scanStopwatch.Elapsed; Status = Strings.Format_Status_ScanCompleted(timeSpan); ProgressPercent = 100.0d; } m_tokenSource.Dispose(); }, CancellationToken.None, TaskContinuationOptions.None, TaskScheduler.FromCurrentSynchronizationContext()); }, () => m_isScanCommandEnabled); m_cancelScanCommand = new DelegateCommand(() => { m_isCancelScanCommandEnabled = false; m_cancelScanCommand.Refresh(); m_tokenSource.Cancel(); }, () => m_isCancelScanCommandEnabled); m_showServicesCommand = new DelegateCommand(() => { AppViewModel.NavigateToServicesPage(); }); m_launchUriCommand = new DelegateCommand <IPEndpoint>(endpoint => { AppViewModel.NavigateToBrowserPage(endpoint); }); }