public void UpdateUi(BandwidthResults bandwidthResults, bool fromNetwork)
        {
            foreach (var control in
               new Dictionary<BandwidthMeter, String> {
            { PolicyDown, bandwidthResults.PolicyReceived },
            { PolicyUp, bandwidthResults.PolicySent },
            { ActualDown, bandwidthResults.ActualReceived },
            { ActualUp, bandwidthResults.ActualSent } })
            {
                control.Key.UpdateBorder(GetBandwidthNumberFromString(control.Value), PolicyDown.ActualHeight);
                control.Key.UsageTextBlock.Text =
                    control.Value;
            }

            var tileData = new FlipTileData()
            {
                BackContent = GetBandwidthStringForTile(bandwidthResults),
                Title = "Bandwidth Monitor"
            };
            var primaryTile = ShellTile.ActiveTiles.First();
            primaryTile.Update(tileData);

            if (fromNetwork)
                SystemTray.ProgressIndicator.IsVisible = false;
        }
示例#2
0
        private static void ParseBandwidthDocument(object sender, HtmlDocumentLoadCompleted e)
        {
            if (e.Error is WebException)
            {
                _page.ReportCredentialsError();
                return;
            }
            if (e.Error != null)
            {
                return;
            }
            var doc          = e.Document;
            var summaryTable = from desc in doc.DocumentNode.Descendants()
                               where desc.Name == "td" &&
                               desc.InnerText == "Bandwidth Class"
                               select desc.ParentNode.ParentNode;

            var resultsList = summaryTable.ElementAt(0).Elements("tr").ElementAt(1).Elements("td");
            var htmlNodes   = resultsList as HtmlNode[] ?? resultsList.ToArray();
            var results     = new BandwidthResults()
            {
                BandwidthClass = htmlNodes.ElementAt(0).InnerText,
                PolicyReceived = htmlNodes.ElementAt(1).InnerText,
                PolicySent     = htmlNodes.ElementAt(2).InnerText,
                ActualReceived = htmlNodes.ElementAt(3).InnerText,
                ActualSent     = htmlNodes.ElementAt(4).InnerText
            };

            Deployment.Current.Dispatcher.BeginInvoke(() => _page.UpdateUi(results, true));
            results.SaveToIsolatedStorage();
        }
示例#3
0
        /// <summary>
        /// The parse bandwidth document.
        /// </summary>
        /// <param name="doc">
        /// The doc.
        /// </param>
        /// <returns>
        /// The <see cref="BandwidthResults"/>.
        /// </returns>
        private static BandwidthResults ParseBandwidthDocument(HtmlDocument doc)
        {
            // if (e.Error is WebException)
            // {
            // page.ReportCredentialsError();
            // return;
            // }
            // if (e.Error != null) return;
            // var doc = e.Document;
            IEnumerable <HtmlNode> summaryTable = from desc in doc.DocumentNode.Descendants()
                                                  where desc.Name == "td" && desc.InnerText == "Bandwidth Class"
                                                  select desc.ParentNode.ParentNode;

            IEnumerable <HtmlNode> resultsList = summaryTable.ElementAt(0).Elements("tr").ElementAt(1).Elements("td");

            HtmlNode[] htmlNodes = resultsList as HtmlNode[] ?? resultsList.ToArray();
            var        results   = new BandwidthResults
            {
                BandwidthClass = htmlNodes.ElementAt(0).InnerText,
                PolicyReceived = htmlNodes.ElementAt(1).InnerText,
                PolicySent     = htmlNodes.ElementAt(2).InnerText,
                ActualReceived = htmlNodes.ElementAt(3).InnerText,
                ActualSent     = htmlNodes.ElementAt(4).InnerText
            };

            results.SaveToIsolatedStorage();
            return(results);
        }
示例#4
0
        public void UpdateUi(BandwidthResults bandwidthResults, bool fromNetwork)
        {
            HideDemoModeIndicator();
            foreach (var control in
                     new Dictionary <BandwidthMeter, String> {
                { PolicyDown, bandwidthResults.PolicyReceived },
                { PolicyUp, bandwidthResults.PolicySent },
                { ActualDown, bandwidthResults.ActualReceived },
                { ActualUp, bandwidthResults.ActualSent }
            })
            {
                control.Key.UpdateBorder(GetBandwidthNumberFromString(control.Value), PolicyDown.ActualHeight);
                control.Key.UsageTextBlock.Text =
                    control.Value;
            }

            var tileData = new FlipTileData()
            {
                BackContent = GetBandwidthStringForTile(bandwidthResults),
                Title       = "Bandwidth Monitor"
            };
            var primaryTile = ShellTile.ActiveTiles.First();

            primaryTile.Update(tileData);
            if (fromNetwork)
            {
                SystemTray.ProgressIndicator.IsVisible = false;
            }
            if ((string)IsolatedStorageSettings.ApplicationSettings["user"] == "testuser")
            {
                ShowDemoModeIndicator();
            }
        }
示例#5
0
        private void MainPageLoaded(object sender, RoutedEventArgs e)
        {
            var settings = IsolatedStorageSettings.ApplicationSettings;

            PolicyDown.LowThresholdMb = (int)settings["LowThreshold"];
            PolicyDown.MidThresholdMb = (int)settings["MidThreshold"];
            PolicyUp.LowThresholdMb   = (int)settings["LowThreshold"];
            PolicyUp.MidThresholdMb   = (int)settings["MidThreshold"];

            var lowThresholdMultipliedByDiscount = (int)settings["LowThreshold"] * Math.Pow(1 - ((int)settings["PctDiscount"]) / 100.0, -1);
            var midThresholdMultipliedByDiscount = (int)settings["MidThreshold"] * Math.Pow(1 - ((int)settings["PctDiscount"]) / 100.0, -1);

            ActualDown.LowThresholdMb = (int)lowThresholdMultipliedByDiscount;
            ActualDown.MidThresholdMb = (int)midThresholdMultipliedByDiscount;
            ActualUp.LowThresholdMb   = (int)lowThresholdMultipliedByDiscount;
            ActualUp.MidThresholdMb   = (int)midThresholdMultipliedByDiscount;

            if (settings.Contains("BandwidthClass"))
            {
                UpdateUi(BandwidthResults.RetrieveFromIsolatedStorage(), false);
            }

            var indicator = new ProgressIndicator
            {
                IsVisible       = true,
                Text            = "Updating usage...",
                IsIndeterminate = true
            };

            SystemTray.ProgressIndicator = indicator;

            Task.Run(() => Scraper.Scrape(this));
        }
示例#6
0
        private static String GetBandwidthStringForTile(BandwidthResults results)
        {
            var received = Convert.ToInt32(GetBandwidthNumberFromString(results.PolicyReceived)) + " MB";
            var sent     = Convert.ToInt32(GetBandwidthNumberFromString(results.PolicySent)) + " MB";

            return(results.BandwidthClass + "\r\nD: " + received + "\r\nU: " + sent);
        }
 public static BandwidthResults RetrieveFromIsolatedStorage()
 {
     var settings = IsolatedStorageSettings.ApplicationSettings;
     var toReturn = new BandwidthResults
     {
         BandwidthClass = (String)settings["BandwidthClass"],
         PolicyReceived = (String)settings["PolicyRecieved"],
         PolicySent = (String)settings["PolicySent"],
         ActualReceived = (String)settings["ActualReceived"],
         ActualSent = (String)settings["ActualSent"]
     };
     return toReturn;
 }
 /// <summary>
 ///     The retrieve from isolated storage.
 /// </summary>
 /// <returns>
 ///     The <see cref="BandwidthResults" />.
 /// </returns>
 public static BandwidthResults RetrieveFromIsolatedStorage()
 {
     IPropertySet settings = ApplicationData.Current.LocalSettings.Values;
     var toReturn = new BandwidthResults
                        {
                            BandwidthClass = (string)settings["BandwidthClass"], 
                            PolicyReceived = (string)settings["PolicyRecieved"], 
                            PolicySent = (string)settings["PolicySent"], 
                            ActualReceived = (string)settings["ActualReceived"], 
                            ActualSent = (string)settings["ActualSent"]
                        };
     return toReturn;
 }
示例#9
0
        public static BandwidthResults RetrieveFromIsolatedStorage()
        {
            var settings = IsolatedStorageSettings.ApplicationSettings;
            var toReturn = new BandwidthResults
            {
                BandwidthClass = (String)settings["BandwidthClass"],
                PolicyReceived = (String)settings["PolicyRecieved"],
                PolicySent     = (String)settings["PolicySent"],
                ActualReceived = (String)settings["ActualReceived"],
                ActualSent     = (String)settings["ActualSent"]
            };

            return(toReturn);
        }
示例#10
0
        /// <summary>
        ///     The retrieve from isolated storage.
        /// </summary>
        /// <returns>
        ///     The <see cref="BandwidthResults" />.
        /// </returns>
        public static BandwidthResults RetrieveFromIsolatedStorage()
        {
            IPropertySet settings = ApplicationData.Current.RoamingSettings.Values;
            var          toReturn = new BandwidthResults
            {
                BandwidthClass = (string)settings["BandwidthClass"],
                PolicyReceived = (string)settings["PolicyRecieved"],
                PolicySent     = (string)settings["PolicySent"],
                ActualReceived = (string)settings["ActualReceived"],
                ActualSent     = (string)settings["ActualSent"]
            };

            return(toReturn);
        }
 /// <summary>
 ///     Updates each <see cref="BandwidthMeter" /> with the appropriate result text.
 /// </summary>
 /// <param name="bandwidthResults">
 ///     The bandwidth results.
 /// </param>
 /// <param name="fromNetwork">
 ///     Whether the update is from storage or the network scraper.
 /// </param>
 public void UpdateUi(BandwidthResults bandwidthResults, bool fromNetwork)
 {
     foreach (var control in
         new Dictionary<BandwidthMeter, string>
             {
                 { PolicyDown, bandwidthResults.PolicyReceived }, 
                 { PolicyUp, bandwidthResults.PolicySent }, 
                 { ActualDown, bandwidthResults.ActualReceived }, 
                 { ActualUp, bandwidthResults.ActualSent }
             })
     {
         control.Key.UpdateBorder(GetBandwidthNumberFromString(control.Value), PolicyDown.ActualHeight);
         control.Key.UpdateText(control.Value);
     }
 }
示例#12
0
        private static void ParseBandwidthDocument(object sender, HtmlDocumentLoadCompleted e)
        {
            if (e.Error is WebException)
            {
                _page.ReportCredentialsError();
                return;
            }
            if (e.Error != null) return;
            var doc = e.Document;
            var summaryTable = from desc in doc.DocumentNode.Descendants()
                               where desc.Name == "td" &&
                                     desc.InnerText == "Bandwidth Class"
                               select desc.ParentNode.ParentNode;

            var resultsList = summaryTable.ElementAt(0).Elements("tr").ElementAt(1).Elements("td");
            var htmlNodes = resultsList as HtmlNode[] ?? resultsList.ToArray();
            var results = new BandwidthResults()
            {
                BandwidthClass = htmlNodes.ElementAt(0).InnerText,
                PolicyReceived = htmlNodes.ElementAt(1).InnerText,
                PolicySent = htmlNodes.ElementAt(2).InnerText,
                ActualReceived = htmlNodes.ElementAt(3).InnerText,
                ActualSent = htmlNodes.ElementAt(4).InnerText
            };
            Deployment.Current.Dispatcher.BeginInvoke(() => _page.UpdateUi(results, true));
            results.SaveToIsolatedStorage();
        }
 private static String GetBandwidthStringForTile(BandwidthResults results)
 {
     var received = Convert.ToInt32(GetBandwidthNumberFromString(results.PolicyReceived)) + " MB";
     var sent = Convert.ToInt32(GetBandwidthNumberFromString(results.PolicySent)) + " MB";
     return results.BandwidthClass + "\r\nD: " + received + "\r\nU: " + sent;
 }
示例#14
0
        /// <summary>
        /// The parse bandwidth document.
        /// </summary>
        /// <param name="doc">
        /// The doc.
        /// </param>
        /// <returns>
        /// The <see cref="BandwidthResults"/>.
        /// </returns>
        private static BandwidthResults ParseBandwidthDocument(HtmlDocument doc)
        {
            // if (e.Error is WebException)
            // {
            // page.ReportCredentialsError();
            // return;
            // }
            // if (e.Error != null) return;
            // var doc = e.Document;
            IEnumerable<HtmlNode> summaryTable = from desc in doc.DocumentNode.Descendants()
                                                 where desc.Name == "td" && desc.InnerText == "Bandwidth Class"
                                                 select desc.ParentNode.ParentNode;

            IEnumerable<HtmlNode> resultsList = summaryTable.ElementAt(0).Elements("tr").ElementAt(1).Elements("td");
            HtmlNode[] htmlNodes = resultsList as HtmlNode[] ?? resultsList.ToArray();
            var results = new BandwidthResults
                              {
                                  BandwidthClass = htmlNodes.ElementAt(0).InnerText, 
                                  PolicyReceived = htmlNodes.ElementAt(1).InnerText, 
                                  PolicySent = htmlNodes.ElementAt(2).InnerText, 
                                  ActualReceived = htmlNodes.ElementAt(3).InnerText, 
                                  ActualSent = htmlNodes.ElementAt(4).InnerText
                              };
            results.SaveToIsolatedStorage();
            return results;
        }