https://github.com/guibranco/guistracini.holidayapi
:calendar: :gear: Holiday API .NET SDK (API Client)
https://github.com/guibranco/guistracini.holidayapi
api client-wrapper csharp dotnet dotnet-core dotnet-framework hacktoberfest holiday holiday-api holidayapi holidayapi-nuget nuget sdk
Last synced: 7 months ago
JSON representation
:calendar: :gear: Holiday API .NET SDK (API Client)
- Host: GitHub
- URL: https://github.com/guibranco/guistracini.holidayapi
- Owner: guibranco
- License: mit
- Created: 2016-09-19T17:43:23.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2024-04-08T04:54:14.000Z (over 1 year ago)
- Last Synced: 2024-04-08T05:29:11.544Z (over 1 year ago)
- Topics: api, client-wrapper, csharp, dotnet, dotnet-core, dotnet-framework, hacktoberfest, holiday, holiday-api, holidayapi, holidayapi-nuget, nuget, sdk
- Language: C#
- Homepage: https://guibranco.github.io/GuiStracini.HolidayAPI/
- Size: 381 KB
- Stars: 5
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GuiStracini.HolidayAPI
A client wrapper of the [Holiday API](https://holidayapi.com/) for .NET projects (both Core & Framewok).
[](https://github.com/guibranco/GuiStracini.HolidayAPI)
[](https://wakatime.com/badge/github/guibranco/GuiStracini.HolidayAPI)
## CI/CD
| Build status | Last commit | Tests | Coverage | Code Smells | LoC |
|--------------|-------------|-------|----------|-------------|-----|
| [](https://ci.appveyor.com/project/guibranco/guistracini-holidayapi/branch/main) | [](https://github.com/guibranco/GuiStracini.HolidayAPI) | [](https://ci.appveyor.com/project/guibranco/guistracini-holidayapi/branch/main) | [](https://sonarcloud.io/dashboard?id=guibranco_GuiStracini.HolidayAPI) | [](https://sonarcloud.io/dashboard?id=guibranco_GuiStracini.HolidayAPI) | [](https://sonarcloud.io/dashboard?id=guibranco_GuiStracini.HolidayAPI)## Code Quality
[](https://www.codacy.com/gh/guibranco/GuiStracini.HolidayAPI/dashboard)
[](https://www.codacy.com/gh/guibranco/GuiStracini.HolidayAPI/dashboard)[](https://codecov.io/gh/guibranco/GuiStracini.HolidayAPI)
[](https://www.codefactor.io/repository/github/guibranco/GuiStracini.HolidayAPI)[](https://codeclimate.com/github/guibranco/GuiStracini.HolidayAPI/maintainability)
[](https://codeclimate.com/github/guibranco/GuiStracini.HolidayAPI/test_coverage)[](https://sonarcloud.io/dashboard?id=guibranco_GuiStracini.HolidayAPI)
[](https://sonarcloud.io/dashboard?id=guibranco_GuiStracini.HolidayAPI)[](https://sonarcloud.io/dashboard?id=guibranco_GuiStracini.HolidayAPI)
[](https://sonarcloud.io/dashboard?id=guibranco_GuiStracini.HolidayAPI)[](https://sonarcloud.io/dashboard?id=guibranco_GuiStracini.HolidayAPI)
[](https://sonarcloud.io/dashboard?id=guibranco_GuiStracini.HolidayAPI)[](https://sonarcloud.io/dashboard?id=guibranco_GuiStracini.HolidayAPI)
[](https://sonarcloud.io/dashboard?id=guibranco_GuiStracini.HolidayAPI)[](https://app.deepsource.com/gh/guibranco/GuiStracini.HolidayAPI/?ref=repository-badge)
## Installation
### Github Releases
[](https://github.com/guibranco/GuiStracini.HolidayAPI) [](https://github.com/guibranco/GuiStracini.HolidayAPI)
Download the latest zip file from the [Release](https://github.com/GuiBranco/GuiStracini.HolidayAPI/releases) page.
### Nuget package manager
| Package | Version | Downloads |
|------------------|:-------:|:-------:|
| **GuiStracini.HolidayAPI** | [](https://www.nuget.org/packages/GuiStracini.HolidayAPI/) | [](https://www.nuget.org/packages/GuiStracini.HolidayAPI/) |---
## Features
Implements all features of Holiday API available at [HolidayAPI docs](https://holidayapi.com/)
- Get holidays list (country code and year required)
- Get filtered holidays (day, month, public, upcoming, previous, subdivisions, switch response language, search parameter)
- Get countries list
- Get filtered countries (search parameter)
- Get languages list
- Get filtered languages (search parameter)
- Get workday
- Get workdays---
## Usage
Get your API key at [Holiday API site](https://holidayapi.com/).
```cs
//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);//Getting workdays between two dates
var workdays = await holidayClient.GetWorkdaysAsync("BR", "2021-01-01", "2021-06-01", CancellationToken.None);
Console.WriteLine("Workdays: {0}". workdays.Days);```