https://github.com/fablecode/ygo-scheduled-tasks
A set of scheduled tasks for a amalgamating Yu-Gi-Oh related data from various sources
https://github.com/fablecode/ygo-scheduled-tasks
dotnet-framework scheduled-tasks topshelf tpl-dataflow windows-service ygo-scheduled-tasks
Last synced: 7 months ago
JSON representation
A set of scheduled tasks for a amalgamating Yu-Gi-Oh related data from various sources
- Host: GitHub
- URL: https://github.com/fablecode/ygo-scheduled-tasks
- Owner: fablecode
- License: mit
- Created: 2017-09-14T17:41:13.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-04-05T16:13:35.000Z (over 6 years ago)
- Last Synced: 2025-05-17T21:35:16.239Z (8 months ago)
- Topics: dotnet-framework, scheduled-tasks, topshelf, tpl-dataflow, windows-service, ygo-scheduled-tasks
- Language: C#
- Size: 422 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# Ygo-scheduled-tasks
A set of scheduled tasks for aggregate Yu-Gi-Oh related data from various sources.
## Why?
To provide access to the latest [Yu-Gi-Oh](http://www.yugioh-card.com/uk/) banlist & card errata in a simple JSON format, via [ygo-api](https://github.com/fablecode/ygo-api).
## Prerequisite
1. Setup the [Ygo database](https://github.com/fablecode/ygo-database)
2. For the web api, download and run [Ygo-api](https://github.com/fablecode/ygo-api)
## Installing
```
$ https://github.com/fablecode/ygo-scheduled-tasks.git
```
## ApiUrl
Modify the **apiUrl** in the app.config.You can get the web api url by running the solution in *Prerequisite* **step 2**.
## Built With
* [Visual Studio 2017](https://www.visualstudio.com/downloads/)
* [.NET 4.6.2](https://www.microsoft.com/en-gb/download/details.aspx?id=53345)
* [Onion Architecture](http://jeffreypalermo.com/blog/the-onion-architecture-part-1/) and [CQRS](https://martinfowler.com/bliki/CQRS.html)
* [Topshelf](https://github.com/Topshelf/Topshelf)
* [Structuremap](https://github.com/structuremap/structuremap)
* [Topshelf.StructureMap](https://github.com/swimtver/Topshelf.StructureMap)
* [Quartz](https://www.nuget.org/packages/Quartz/)
* [Topshelf.Quartz](https://www.nuget.org/packages/Topshelf.Quartz/)
* [Topshelf.Quartz.StructureMap](https://www.nuget.org/packages/Topshelf.Quartz.StructureMap/)
* [TPL Dataflow Library](https://www.nuget.org/packages/Microsoft.Tpl.Dataflow/) for message passing **dataflow** and **pipelining**.
* [Mediatr](https://www.nuget.org/packages/MediatR/) for CQRS and the Mediator Design Pattern. Mediator design pattern defines how a set of objects interact with each other. You can think of a Mediator object as a kind of traffic-coordinator, it directs traffic to appropriate parties.
* [Wikia](https://github.com/fablecode/wikia)
* [Fluent Validations](https://www.nuget.org/packages/FluentValidation)
* [Fluent Assertions](https://www.nuget.org/packages/FluentAssertions)
* [NUnit](https://github.com/nunit/nunit)
* [System.Net.Http.Formatting.Extension](https://www.nuget.org/packages/System.Net.Http.Formatting.Extension/) for **HttpClient** extension methods like PostAsJsonAsync etc.
* [Visual Studio Team Services](https://www.visualstudio.com/team-services/release-management/) for CI and deployment.
## TPL Dataflow flow
Below is a TPL dataflow pipeline for processing **Articles Batches**

The solution will have a single point of input. **Article Batch Processor** to processor the batches and place article in queue. Depending on the article category, one of the **Processors** will process the article. Lastly, article data is then persisted to storage (SQL Server).
## License
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE) file for details.