GuiStracini.HolidayAPI

Logo

The Holiday API .NET client

View the Project on GitHub guibranco/GuiStracini.HolidayAPI

GuiStracini.HolidayAPI

A client wrapper of the Holiday API for .NET projects (both Core & Framewok).

HolidayAPI

CI/CD

Build status GitHub last commit Github last release GitHub license

Code Quality

Codacy Badge Codacy Badge codecov Quality Gate Status Coverage

Maintainability Rating Lines of Code Technical Debt Duplicated Lines (%)

Reliability Rating Security Rating Code Smells Bugs Vulnerabilities


Installation

GuiStracini.HolidayAPI NuGet Version GuiStracini.HolidayAPI NuGet Downloads Github All Releases

Download the latest zip file from the Release pages or simple install from NuGet package manager

NuGet URL: https://www.nuget.org/packages/GuiStracini.HolidayAPI

NuGet installation via Package Manager Console:


Install-Package GuiStracini.HolidayAPI


Features

Implements all features of Holiday API available at HolidayAPI docs


Usage

Get your API key at Holiday API site.


//Http Client - you should use your DI container for it
var client = HttpClientFactory.Create();
client.BaseAddress = new Uri("https://holidayapi.com/");
client.DefaultRequestHeaders.ExpectContinue = false;
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

//Use your API key
var myKey = "00000000-0000-0000-0000-000000000000";

//Instantiate a holidayApi client with your API key (GUID/UUID)
var holidayClient = new HolidayApiClient(myKey, client);

//Getting all holidays in Brazil for the year 2019:
var holidays = await holidayClient.GetHolidaysAsync("BR", 2019, CancellationToken.None);
foreach(var holiday in holidays)
    Console.WriteLine("Holiday: {0} | Date: {1}", holiday.Name, holiday.Date);

//Getting all available countries
var countries = await holidayClient.GetCountriesAsync(CancellationToken.None);
foreach(var country in countries)
    Console.WriteLine("Country: {0} | Code: {1} | Flag: {2}", country.Name, country.Code, country.Flag);

//Getting all available languages
var languages = await holidayClient.GetLanguagesAsync(CancellationToken.None);
foreach(var language in languages)
    Console.WriteLine("Code: {0} | Name: {1}", language.Code, language.Name);

//Getting workday
var workday = await holidayClient.GetWorkdayAsync("BR", "2019-06-23", 10, CancellationToken.None);
Console.WriteLine("Workday: {0}", workday.Date);