示例#1
0
        private void ParseNetflixStatus(string statusMessage, string action)
        {
            var e = new NetflixEventArgs
            {
                Action  = action,
                Message = statusMessage ?? "Error"
            };

            if (!string.IsNullOrWhiteSpace(statusMessage))
            {
                // Extract the actual data from the status message (it might be a raw message from a socket)
                var statusMessageClean = statusMessage.Substring(statusMessage.IndexOf("<?xml"));

                var xRoot = new XmlRootAttribute
                {
                    ElementName = "config",
                    IsNullable  = true
                };

                var serializer = new XmlSerializer(typeof(NetflixConfig), xRoot);
                e.Config = ((NetflixConfig)serializer.Deserialize(new StringReader(statusMessageClean)));

                if (e.Config != null)
                {
                    e.CountryCode        = e.Config.country?.ToLower();
                    e.GeoLocationCountry = e.Config.geolocationcountry?.ToLower();
                }
            }

            OnNetflixStatus(e);
        }
示例#2
0
        private void _netflixStatusChecker_NetflixStatus(object sender, NetflixEventArgs e)
        {
            var lines = new List <string>();

            lines.Add(e.Action + " (" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ")");
            lines.AddRange(new[]
            {
                "CountryCode: " + e.CountryCode,
                "GeoLocation: " + e.GeoLocationCountry,
            });
            lines.Add("--------------");

            foreach (var line in lines)
            {
                tbNetflixLog.AppendText(line + Environment.NewLine);
            }

            var selectedCountry = cmbNetflixRegionPicker.SelectedItem as CountryCode;

            if (selectedCountry == null || e.Config == null)
            {
                return;
            }

            btnNetflixCountry.Image = selectedCountry.Code.Equals(e.CountryCode, StringComparison.OrdinalIgnoreCase) ?
                                      _imageOK : _imageError;
            btnNetflixGeoLocation.Image = selectedCountry.Code.Equals(e.GeoLocationCountry, StringComparison.OrdinalIgnoreCase) ?
                                          _imageOK : _imageError;
        }
示例#3
0
 protected virtual void OnNetflixStatus(NetflixEventArgs e)
 {
     NetflixStatus?.Invoke(this, e);
 }