initial domain model

This commit is contained in:
femsci 2024-02-21 15:34:45 +01:00
commit 88b851b79a
Signed by: femsci
GPG key ID: 21AC2CC03E5BBCD6
9 changed files with 143 additions and 0 deletions

6
.gitignore vendored Normal file
View file

@ -0,0 +1,6 @@
**/bin/
**/obj/
/packages/
riderModule.iml
/_ReSharper.Caches/
.idea

27
Nyanbyte.PPCheck.sln Normal file
View file

@ -0,0 +1,27 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C3B18ED6-C901-49BD-A417-B28A660CE50A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nyanbyte.PPCheck.Lib", "src\Nyanbyte.PPCheck.Lib\Nyanbyte.PPCheck.Lib.csproj", "{02AFAE01-FBD5-49EE-8D3F-329CDA5FEA79}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{02AFAE01-FBD5-49EE-8D3F-329CDA5FEA79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{02AFAE01-FBD5-49EE-8D3F-329CDA5FEA79}.Debug|Any CPU.Build.0 = Debug|Any CPU
{02AFAE01-FBD5-49EE-8D3F-329CDA5FEA79}.Release|Any CPU.ActiveCfg = Release|Any CPU
{02AFAE01-FBD5-49EE-8D3F-329CDA5FEA79}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{02AFAE01-FBD5-49EE-8D3F-329CDA5FEA79} = {C3B18ED6-C901-49BD-A417-B28A660CE50A}
EndGlobalSection
EndGlobal

5
README.md Normal file
View file

@ -0,0 +1,5 @@
# PPCheck
Background checker integrated with the [National Sex Offenders Registry](https://rps.ms.gov.pl) :3 \
This software performs a bulk check of employees, generating reports for any persons whose records might be within the registry. \
Legal basis: [Dz. U. z 2023 r. poz. 1606](https://www.dziennikustaw.gov.pl/DU/rok/2023/pozycja/1606).

View file

@ -0,0 +1,32 @@
namespace Nyanbyte.PPCheck.Lib;
public class ApiClient : IDisposable
{
internal const string BaseAddr = "https://rps.ms.gov.pl/pl-PL/api/";
private readonly HttpClient _http;
private readonly bool _isHttpExternal;
public ApiClient(HttpClient http)
{
_http = http;
_isHttpExternal = true;
}
public ApiClient()
{
_http = new HttpClient
{
BaseAddress = new Uri(BaseAddr)
};
}
public void Dispose()
{
GC.SuppressFinalize(this);
if (!_isHttpExternal)
{
_http.Dispose();
}
}
}

View file

@ -0,0 +1,30 @@
using System.Text.Json.Serialization;
namespace Nyanbyte.PPCheck.Lib.Models;
public record OffenderInformation
{
public Guid PersonIdentityId { get; set; }
public int AnnotationCount { get; set; }
[JsonPropertyName("persones")]
public ICollection<OffenderPersona> Personas { get; set; } = new List<OffenderPersona>();
}
public record OffenderPersona
{
public Guid Id { get; set; }
public Guid PersonIdentityId { get; set; }
public string FirstName { get; set; } = string.Empty;
public string? SecondName { get; set; }
public string LastName { get; set; }
public string CityOfBirth { get; set; }
public DateTime DateOfBirth { get; set; }
public string FamilyName { get; set; }
public string? FathersName { get; set; }
public string? MothersName { get; set; }
public Sex Sex { get; set; }
public string CountryOfBirth { get; set; }
public string Nationalities { get; set; }
public string DwellingPlace { get; set; }
}

View file

@ -0,0 +1,18 @@
namespace Nyanbyte.PPCheck.Lib.Models;
public record SearchRequest
{
public bool Advanced { get; set; } = false;
public string? FirstName { get; set; }
public string? LastName { get; set; }
public string? Nationality { get; set; }
public string? CityOfBirth { get; set; }
public string? CityOfResidence { get; set; }
public int Page { get; set; } = 0;
public bool ShowYearCal => false;
public string SortColumn => "LastName";
public string SortOrder => "asc";
public int Take => 5;
}

View file

@ -0,0 +1,9 @@
namespace Nyanbyte.PPCheck.Lib.Models;
public record Response
{
public int Total { get; set; }
public bool HasError { get; set; }
public ICollection<OffenderInformation> Data { get; set; } = new List<OffenderInformation>();
}

View file

@ -0,0 +1,7 @@
namespace Nyanbyte.PPCheck.Lib.Models;
public enum Sex : byte
{
Male = (byte)'M',
Female = (byte)'F'
}

View file

@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>