Skip to content

cillierscharl/forecast.io-csharp

Repository files navigation

.NET NuGet

forecast.io-csharp

C# Wrapper Library For Forecast.io


Install

Install-Package Forecast.io

Usage

using ForecastIO;
// API key, Lat, Long, Unit

var request = new ForecastIORequest(key, 37.8267f, -122.423f, Unit.si);
var response = request.Get();

var request = new ForecastIORequest(key, 43.4499376f, -79.7880999f, Unit.si);
var response = await request.GetAsync();

Returns the complete object :

Including the date

using ForecastIO;

var request = new ForecastIORequest("YOUR API KEY", 37.8267f, -122.423f, DateTime.Now, Unit.si);
var response = request.Get();
Using date/time extensions
using ForecastIO;
using ForecastIO.Extensions;

var request = new ForecastIORequest("YOUR API KEY", 37.8267f, -122.423f, DateTime.Now, Unit.si);
var response = request.Get();

// Date/Time is represented by a Unix Timestamp
var currentTime = response.currently.time;

// Return a .NET DateTime object (UTC) using an extension (Notice the additional 'using' statement)
var _currentTime = currentTime.ToDateTime();

// Return a local .NET DateTime object
var _localCurrentTime = currentTime.ToDateTime().ToLocalTime();

Include extra data - (Currently only hourly is supported by the API) Returns hourly data for the next seven days, rather than the next two.

Please note that you cannot specify a date (TimeMachine request) as the extend parameter will be ignored.
using ForecastIO;

var extendBlocks = new Extend[]
{
    Extend.hourly
};

var request = new ForecastIORequest("YOUR API KEY", 37.8267f, -122.423f, Unit.si, extendBlocks);
var response = request.Get();

Exclude certain objects (returned as null)

using ForecastIO;

var excludeBlocks = new Exclude[]
{
    Exclude.alerts,
    Exclude.currently
};

var request = new ForecastIORequest("YOUR API KEY", 37.8267f, -122.423f, DateTime.Now, Unit.si, null, excludeBlocks);
var response = request.Get();

Request Metadata

Once a request has been made with Get() two properties namely ApiResponseTime and ApiCallsMade will be accesible on the request object. Please note that if a request has not yet been made an exception will be thrown.

Please note:

  • You will require your own forecast.io API Key
  • Not all regions return forecasts by all periods (Daily, Minutely etc.)
  • Not all regions return all flags.