Esempio n. 1
0
        private static void commandResult(object sender, DoWorkEventArgs eventArgs)
        {
            int counter = 0;

            var serializer = new JavaScriptSerializer();

            while (counter < 5)
            {
                var httpWebRequest = (HttpWebRequest)WebRequest.Create(Utility.ip + "/status/" + componentData.type.ToLower());
                WebHeaderCollection myWebHeaderCollection = httpWebRequest.Headers;
                httpWebRequest.ContentType = "application/json";
                myWebHeaderCollection.Add("Authorization:" + Utility.user.token);
                myWebHeaderCollection.Add(componentData.type.ToLower() + ":" + componentData.number);
                httpWebRequest.Method = "GET";

                var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

                var streamReader = new StreamReader(httpResponse.GetResponseStream());

                var result = streamReader.ReadToEnd();

                Dictionary <string, object> lr = serializer.Deserialize <dynamic>(result);

                if (((string)lr["position"] != Utility.components[Utility.componentIndex].position))
                {
                    Utility.components[Utility.componentIndex].position = (string)lr["position"];
                    Utility.components[Utility.componentIndex].state    = (string)lr["state"];
                    break;
                }

                Thread.Sleep(6000);
                ++counter;

                if (bw.CancellationPending)
                {
                    eventArgs.Cancel = true;
                    break;
                }
            }

            if (counter >= 5)
            {
                Uri resourceUri = null;

                Application.Current.Dispatcher.Invoke((Action)(() =>
                {
                    if (componentData.type.ToLower() == "door")
                    {
                        resourceUri = new Uri("Images/garage_error.png", UriKind.Relative);
                        ImageBrush brush = new ImageBrush();
                        StreamResourceInfo streamInfo = Application.GetResourceStream(resourceUri);
                        BitmapFrame temp = BitmapFrame.Create(streamInfo.Stream);
                        brush.ImageSource = temp;
                        Utility.componentButtons[Utility.componentIndex].Background = brush;
                    }

                    else
                    {
                        resourceUri = new Uri("Images/light_error.png", UriKind.Relative);
                        ImageBrush brush = new ImageBrush();
                        StreamResourceInfo streamInfo = Application.GetResourceStream(resourceUri);
                        BitmapFrame temp = BitmapFrame.Create(streamInfo.Stream);
                        brush.ImageSource = temp;
                        Utility.componentButtons[Utility.componentIndex].Background = brush;
                    }

                    loadingBar.HidePanelCommand.Execute(null);
                    loadingBar.refresh.IsEnabled = true;
                }));

                bw.RunWorkerCompleted -= complete;
                loadingBar.enableButtons();
            }
        }