Esempio n. 1
0
        private void SearchForDevices()
        {
            FindDevicesLoading = true;

            ThreadPool.QueueUserWorkItem(new WaitCallback((o) =>
            {
                var baseUrl = "http://localhost:8479/";

                var client  = new RestClient(baseUrl);
                var request = new RestRequest("devices", Method.GET);

                var deviceItems = new List <TempServer.MTConnect.MTConnectConnection>();

                var response = client.Execute(request);
                if (response != null && response.StatusCode == HttpStatusCode.OK)
                {
                    var json = response.Content;
                    if (!string.IsNullOrEmpty(json))
                    {
                        var obj = Json.Convert.FromJson <List <TempServer.MTConnect.MTConnectConnection> >(json);
                        if (obj != null)
                        {
                            deviceItems.AddRange(obj);
                        }
                    }

                    firstFindDevices = false;
                }

                Dispatcher.BeginInvoke(new Action(() =>
                {
                    MTConnectDeviceItems.Clear();

                    foreach (var deviceItem in deviceItems)
                    {
                        if (!DeviceListItems.ToList().Exists(x => x.DeviceId == deviceItem.DeviceId))
                        {
                            MTConnectDeviceItems.Add(deviceItem);
                        }
                    }

                    FindDevicesLoading = false;
                }));
            }));
        }