TorontoWeatherLibA3332PO 1.0.3
dotnet add package TorontoWeatherLibA3332PO --version 1.0.3
NuGet\Install-Package TorontoWeatherLibA3332PO -Version 1.0.3
<PackageReference Include="TorontoWeatherLibA3332PO" Version="1.0.3" />
paket add TorontoWeatherLibA3332PO --version 1.0.3
#r "nuget: TorontoWeatherLibA3332PO, 1.0.3"
// Install TorontoWeatherLibA3332PO as a Cake Addin #addin nuget:?package=TorontoWeatherLibA3332PO&version=1.0.3 // Install TorontoWeatherLibA3332PO as a Cake Tool #tool nuget:?package=TorontoWeatherLibA3332PO&version=1.0.3
TorontoWeather
The TorontoWeather project is an assignment created as part of Assignment 3 for the course 2024F CSD 3354 4 [B125] Web Applications Using C#.NET, under the guidance of the instructor. This project was developed by Preet Ojha (C0904332).
Overview
This project contains a WeatherService
class that fetches weather information for Toronto using the Open-Meteo API. The service retrieves the daily maximum temperatures for Toronto and includes the corresponding day names for each temperature.
Features
- Fetches weather data asynchronously using the Open-Meteo API.
- Retrieves daily maximum temperatures for Toronto.
- Includes the day of the week (e.g., Monday, Tuesday) for each temperature.
- Parses the JSON response with
Newtonsoft.Json
(JObject
) for easier data manipulation.
Requirements
- .NET 5 or later.
- Internet access to fetch data from the Open-Meteo API.
- Newtonsoft.Json for JSON parsing.
Getting Started
Install Dependencies
Before using the WeatherService
class, ensure that your project includes the necessary dependencies. Install Newtonsoft.Json
via NuGet:
dotnet add package Newtonsoft.Json
Example Usage
using System;
using System.Threading.Tasks;
namespace TorontoWeather
{
class Program
{
static async Task Main(string[] args)
{
var weatherService = new WeatherService();
var weatherData = await weatherService.GetTorontoWeatherAsync();
Console.WriteLine($"Toronto Weather Data:\n{weatherData}");
}
}
}
How It Works
WeatherService
Constructor
Initializes theHttpClient
used to send HTTP requests.GetTorontoWeatherAsync()
Method- Constructs the URL with the appropriate query parameters for latitude, longitude, daily max temperature, and timezone.
- Sends an asynchronous GET request to fetch weather data in JSON format.
- Returns a formatted string with the dates, day names, and corresponding maximum temperatures.
ExtractMaxTemperaturesAndDays()
Method- Extracts the daily maximum temperatures and the corresponding days from the parsed JSON response.
- Converts the date string to a
DateTime
object to determine the day of the week. - Builds a formatted string that displays each date, its day of the week, and its corresponding maximum temperature in Celsius.
Sample Output
Toronto Weather Data:
2024-11-08 (Friday): 12.3°C
2024-11-09 (Saturday): 13.5°C
2024-11-10 (Sunday): 14.6°C
2024-11-11 (Monday): 15.2°C
2024-11-12 (Tuesday): 16.1°C
API Details
The service uses the Open-Meteo API to fetch weather data. Specifically, it requests:
- latitude: 43.7 (Toronto's latitude).
- longitude: -79.42 (Toronto's longitude).
- daily:
temperature_2m_max
(daily maximum temperature). - timezone:
America/Toronto
(to get the weather data in the Toronto timezone).
For more information on the Open-Meteo API, visit the Open-Meteo Documentation.
Contributing
Contributions are welcome! If you have suggestions or improvements for this service, feel free to fork this repository and submit a pull request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- Newtonsoft.Json (>= 13.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Latest Version