public void WeatherFadeIn() { if (!MyCanvas.Children.Contains(WeatherWidget)) { MyCanvas.Children.Add(WeatherWidget); } WeatherWidget.FadeIn(); }
public override void Load() { var weatherConfig = Assembly.GetExecutingAssembly().GetManifestResourceStream("Widget.Weather.Weather.config"); //Settings = (Settings)XmlSerializable.Load(typeof(Settings), Envi.WidgetsRoot + "\\Weather\\Weather.config") ?? new Settings(); Settings = (Settings)XmlSerializable.Load(typeof(Settings), weatherConfig) ?? new Settings(); widgetControl = new WeatherWidget(); widgetControl.Load(); }
public WeatherWidget GetWeatherWidget() { IpInfo ipInfo = GetLocationByIp(); RegionInfo region = GetRegionCode(ipInfo.Country); //Request to OpenWeatherMap API var apiRequest = WebRequest.Create( $"https://api.openweathermap.org/data/2.5/weather?q={ipInfo.City},{region}&APPID={Apikey}&units=metric"); //Get response from OpenWeatherMap using (HttpWebResponse response = apiRequest.GetResponse() as HttpWebResponse) { if (response != null) { StreamReader reader = new StreamReader(response.GetResponseStream() ?? throw new Exception("Fail response")); _apiResponse = reader.ReadToEnd(); } } //convert for model WeatherWidget weatherWidget = JsonConvert.DeserializeObject <WeatherWidget>(_apiResponse); return(weatherWidget); }
public void OnGet() { cityid = _weathersettings.Value.Id; apikey = _weathersettings.Value.Appid; apicall = $"https://api.openweathermap.org/data/2.5/weather?id={cityid}&units=metric&appid={apikey}"; // Convert all weather properties as .NET objects. WeatherConverter converter = new WeatherConverter(apicall); Weather = converter.DeserializeJsonFile(); // Use the properties as weather widgets WeatherWidget widget = new WeatherWidget(Weather); // Get the temperature with the celsius symbol for a small widget. SmallWidget = widget.SmallWidget(); // Get the temperature and weather icon for a medium size widget. MediumWidget = widget.MediumWidget(); // Get the city name, temperature, weather icon and weather details for a big widget. BigWidget = widget.BigWidget(); }
public Overlay() { InitializeComponent(); CompositionTarget.Rendering += CompositionTarget_Rendering; fpsTimer = new DispatcherTimer(); fpsTimer.Interval = TimeSpan.FromSeconds(1); fpsTimer.Tick += fpsTimer_Tick; fpsTimer.Start(); widgets = new List <IWidget>(); this.DriverInfo = new DriverInfo(); this.DriverInfo.Width = 640; this.DriverInfo.Height = 72; this.DriverInfo.HorizontalAlignment = HorizontalAlignment.Left; this.DriverInfo.VerticalAlignment = VerticalAlignment.Top; this.DriverInfo.Margin = new Thickness(370, 899, 0, 0); this.LapsRemaining = new LapsRemainingWidget(); this.LapsRemaining.Width = 320; this.LapsRemaining.Height = 36; this.LapsRemaining.HorizontalAlignment = HorizontalAlignment.Left; this.LapsRemaining.VerticalAlignment = VerticalAlignment.Top; this.LapsRemaining.Margin = new Thickness(798, 106, 0, 0); this.LapTimerLeft = new LapTimerLeft(); this.LapTimerLeft.Width = 430; this.LapTimerLeft.Height = 108; this.LapTimerLeft.HorizontalAlignment = HorizontalAlignment.Left; this.LapTimerLeft.VerticalAlignment = VerticalAlignment.Top; this.LapTimerLeft.Margin = new Thickness(370, 863, 0, 0); this.LiveTimingWidget = new LiveTimingWidget(); this.LiveTimingWidget.Width = 310; this.LiveTimingWidget.Height = 792; this.LiveTimingWidget.HorizontalAlignment = HorizontalAlignment.Left; this.LiveTimingWidget.VerticalAlignment = VerticalAlignment.Top; this.LiveTimingWidget.Margin = new Thickness(158, 70, 0, 0); this.RaceBar = new RaceBar(); this.RaceBar.Width = 1920; this.RaceBar.Height = 50; this.RaceBar.HorizontalAlignment = HorizontalAlignment.Center; this.RaceBar.VerticalAlignment = VerticalAlignment.Top; this.RaceBar.Margin = new Thickness(0, 970, 0, 0); this.ResultsWidget = new ResultsWidget(); this.ResultsWidget.Width = 1152; this.ResultsWidget.Height = 580; this.ResultsWidget.HorizontalAlignment = HorizontalAlignment.Left; this.ResultsWidget.VerticalAlignment = VerticalAlignment.Top; this.ResultsWidget.Margin = new Thickness(418, 143, 0, 0); this.RevMeter = new RevMeter(); this.RevMeter.Width = 315; this.RevMeter.Height = 301; this.RevMeter.HorizontalAlignment = HorizontalAlignment.Left; this.RevMeter.VerticalAlignment = VerticalAlignment.Top; this.RevMeter.Margin = new Thickness(100, 400, 0, 0); this.SessionTimer = new SessionTimer(); this.SessionTimer.Width = 410; this.SessionTimer.Height = 36; this.SessionTimer.HorizontalAlignment = HorizontalAlignment.Left; this.SessionTimer.VerticalAlignment = VerticalAlignment.Top; this.SessionTimer.Margin = new Thickness(860, 70, 0, 0); this.SideBar = new SideBarWidget(); this.SideBar.Width = 280; this.SideBar.Height = 792; this.SideBar.HorizontalAlignment = HorizontalAlignment.Left; this.SideBar.VerticalAlignment = VerticalAlignment.Top; this.SideBar.Margin = new Thickness(158, 70, 0, 0); this.SpeedCompareWidget = new SpeedCompareWidget(); this.SpeedCompareWidget.Width = 555; this.SpeedCompareWidget.Height = 203; this.SpeedCompareWidget.HorizontalAlignment = HorizontalAlignment.Left; this.SpeedCompareWidget.VerticalAlignment = VerticalAlignment.Top; this.SpeedCompareWidget.Margin = new Thickness(1215, 762, 0, 0); this.TeamRadio = new TeamRadio(); this.TeamRadio.Width = 342; this.TeamRadio.Height = 76; this.TeamRadio.HorizontalAlignment = HorizontalAlignment.Left; this.TeamRadio.VerticalAlignment = VerticalAlignment.Top; this.TeamRadio.Margin = new Thickness(1458, 520, 0, 0); this.WeatherWidget = new WeatherWidget(); this.WeatherWidget.Width = 675; this.WeatherWidget.Height = 235; this.WeatherWidget.HorizontalAlignment = HorizontalAlignment.Center; this.WeatherWidget.VerticalAlignment = VerticalAlignment.Top; this.WeatherWidget.Margin = new Thickness(1045, 755, 0, 0); widgets.Add(DriverInfo); widgets.Add(LapsRemaining); widgets.Add(LapTimerLeft); widgets.Add(LiveTimingWidget); widgets.Add(RaceBar); widgets.Add(ResultsWidget); widgets.Add(RevMeter); widgets.Add(SessionTimer); widgets.Add(SideBar); widgets.Add(SpeedCompareWidget); widgets.Add(TeamRadio); widgets.Add(WeatherWidget); timer = new DispatcherTimer(); timer.Tick += timer_Tick; timer.Interval = new TimeSpan(0, 0, 0, 0, 20); timer.Start(); }
public override object Deserialize(IDictionary <string, object> dictionary, Type type, JavaScriptSerializer serializer) { if (type == typeof(APIResultWidget)) { switch ((string)dictionary["Type"]) { case "weather": { WeatherWidget x = new WeatherWidget(); x.Location = (string)dictionary["Location"]; x.Current = (CurrentWeather)dictionary["Current"]; //x.Forcast = (List<WeatherForcastItem>)dictionary["Forcast"]; System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Forcast"]); foreach (var item in itemss) { x.Forcast.Add(serializer.ConvertToType <WeatherForcastItem>(item)); } return(x); }; case "text": { TextWidget x = new TextWidget(); x.Content = (string)dictionary["Content"]; return(x); }; case "keyValueText": { KeyValueTextWidget x = new KeyValueTextWidget(); x.Key = (string)dictionary["Key"]; x.Key = (string)dictionary["Value"]; x.Key = (string)dictionary["ValueURL"]; return(x); }; case "keyValuesText": { KeyValuesTextWidget x = new KeyValuesTextWidget(); x.Key = (string)dictionary["Key"]; //x.Values = (List<ValueItem>)dictionary["ValueItem"]; System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["ValueItem"]); foreach (var item in itemss) { x.Values.Add(serializer.ConvertToType <ValueItem>(item)); } return(x); }; case "url": { URLWidget x = new URLWidget(); x.ThumbnailImageURL = (string)dictionary["ThumbnailImageURL"]; x.Title = (string)dictionary["Title"]; x.URL = (string)dictionary["URL"]; x.HTMLContent = (string)dictionary["HTMLContent"]; return(x); }; case "map": { MapWidget x = new MapWidget(); System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Pins"]); foreach (var item in itemss) { x.Pins.Add(serializer.ConvertToType <MapPoint>(item)); } //x.Pins = (List<MapPoint>)dictionary["Pins"]; return(x); }; case "image": { ImageWidget x = new ImageWidget(); x.Title = (string)dictionary["Title"]; x.ImageURL = (string)dictionary["ImageURL"]; x.ThumbnailURL = (string)dictionary["ThumbnailURL"]; x.PageURL = (string)dictionary["PageURL"]; return(x); }; case "html": { HTMLWidget x = new HTMLWidget(); x.Title = (string)dictionary["Title"]; x.HTML = (string)dictionary["HTML"]; return(x); }; case "entity": { EntityWidget x = new EntityWidget(); x.SubType = (string)dictionary["SubType"]; x.Title = (string)dictionary["Title"]; x.Abstract = (string)dictionary["Abstract"]; x.ImageURL = (string)dictionary["ImageURL"]; x.Url = (string)dictionary["Url"]; return(x); }; case "chart": { ChartWidget x = new ChartWidget(); x.Title = (string)dictionary["Title"]; //x.Categories = (List<string>)dictionary["Categories"]; System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Categories"]); foreach (var item in itemss) { x.Categories.Add(serializer.ConvertToType <string>(item)); } System.Collections.ArrayList itemss2 = ((System.Collections.ArrayList)dictionary["Data"]); foreach (var item in itemss2) { x.Data.Add(serializer.ConvertToType <ChartsData>(item)); } //x.Data = (List<ChartsData>)dictionary["Data"]; return(x); }; case "businessEntity": { BusinessEntityWidget x = new BusinessEntityWidget(); x.SubType = (string)dictionary["SubType"]; x.Title = (string)dictionary["Title"]; x.Abstract = (string)dictionary["Abstract"]; x.ImageURL = (string)dictionary["ImageURL"]; x.URL = (string)dictionary["URL"]; //x.Attributes = (List<KeyValueTextWidget>)dictionary["Attributes"]; System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Attributes"]); foreach (var item in itemss) { x.Attributes.Add(serializer.ConvertToType <KeyValueTextWidget>(item)); } x.Address = (string)dictionary["Address"]; x.Phone = (string)dictionary["Phone"]; x.Lat = (double)dictionary["Lat"]; x.Lng = (double)dictionary["Lng"]; System.Collections.ArrayList itemss2 = ((System.Collections.ArrayList)dictionary["OtherURLs"]); foreach (var item in itemss2) { x.OtherURLs.Add(serializer.ConvertToType <URLWidget>(item)); } //x.OtherURLs = (List<URLWidget>)dictionary["OtherURLs"]; return(x); }; case "list": { switch ((string)dictionary["SubType"]) { case null: { ListWidget x = new ListWidget(); x.Title = (string)dictionary["Title"]; System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Items"]); foreach (var item in itemss) { x.Items.Add(serializer.ConvertToType <APIResultWidget>(item)); } return(x); }; case "videos": { ListOfVideosWidget x = new ListOfVideosWidget(); System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Items"]); foreach (var item in itemss) { x.Items.Add(serializer.ConvertToType <URLWidget>(item)); } return(x); }; case "images": { ListOfImagesWidget x = new ListOfImagesWidget(); System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Items"]); foreach (var item in itemss) { x.Items.Add(serializer.ConvertToType <ImageWidget>(item)); } return(x); }; case "webResults": { ListOfWebsitesWidget x = new ListOfWebsitesWidget(); System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Items"]); foreach (var item in itemss) { x.Items.Add(serializer.ConvertToType <URLWidget>(item)); } return(x); }; case "businesses": { ListOfBusinessesWidget x = new ListOfBusinessesWidget(); x.Title = (string)dictionary["Title"]; System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Items"]); foreach (var item in itemss) { x.Items.Add(serializer.ConvertToType <BusinessEntityWidget>(item)); } return(x); }; } }; break; } } else //in case of objects not inheriting from the abstract class, in this case we identify each one by something else, not "type" { if (dictionary.ContainsKey("Day")) //WeatherForcastItem { WeatherForcastItem x = new WeatherForcastItem(); x.Day = (string)dictionary["Day"]; x.Hi = (string)dictionary["Hi"]; x.Lo = (string)dictionary["Lo"]; x.Status = (string)dictionary["Status"]; x.IconURL = (string)dictionary["IconURL"]; return(x); } else if (dictionary.ContainsKey("Temprature")) // CurrentWeather { CurrentWeather x = new CurrentWeather(); x.Temprature = (string)dictionary["Temprature"]; x.Status = (string)dictionary["Status"]; x.WindSpeed = (string)dictionary["WindSpeed"]; x.WindDirection = (string)dictionary["WindDirection"]; x.Humidity = (string)dictionary["Humidity"]; x.IconURL = (string)dictionary["IconURL"]; x.IsNight = (string)dictionary["IsNight"]; return(x); } else if (dictionary.ContainsKey("Lat")) //MapPoint { MapPoint x = new MapPoint(); x.Title = (string)dictionary["Title"]; x.Lat = (double)dictionary["Lat"]; x.Lng = (double)dictionary["Lng"]; return(x); } else if (dictionary.ContainsKey("Value")) //ValueItem { ValueItem x = new ValueItem(); x.Value = (string)dictionary["Value"]; x.ValueURL = (string)dictionary["ValueURL"]; return(x); } else if (dictionary.ContainsKey("name")) //ChartsData { ChartsData x = new ChartsData(); x.name = (string)dictionary["name"]; System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["name"]); foreach (var item in itemss) { x.values.Add(serializer.ConvertToType <string>(item)); } return(x); } } return(null); }
public void WeatherFadeOut() { WeatherWidget.FadeOut(); }