akamsteeg / AtleX.HaveIBeenPwned

A fully async .NET Standard client library for the API of HaveIBeenPwned.com
https://www.nuget.org/packages/AtleX.HaveIBeenPwned/
MIT License
5 stars 0 forks source link

Move common classes to separate package/assembly #9

Closed akamsteeg closed 5 years ago

akamsteeg commented 5 years ago

Currently, all interfaces and common classes live in the main AtleX.HaveIBeenPwned library. Anyone wishing to, for example, create custom IHaveIBeenPwnedClient implementations has to take a hard dependency on it and that's not an ideal situation. It should be possible to move the interfaces and common classes (must be stable in a major version of AtleX.HaveIBeenPwned) to a separate library which is versioned with major versions only.

Any custom IHaveIBeenPwnedClient takes a dependency on for example v3.0.0 of the common library, and any v3.* version of AtleX.HaveIBeenPwned should be able to work with those custom implementations.

We must move the following classes and interfaces to a new AtleX.HaveIBeenPwned.Common library:

  1. IHaveIBeenPwnedClient
  2. HaveIBeenPwnedClientException
  3. BreachMode
  4. Breach
  5. Paste

Also, remember to update the namespaces of those classes.

This library must be distributed as NuGet package. Remember to use SourceLink and a .snupkg (see #8) too.

akamsteeg commented 5 years ago

Closing this as wont fix. It's too much work for the rare cases that anyone wants to create a 'real' implementation of IHaveIBeenPwnedClient and not just a mock one for testing.