34 Commits

Author SHA1 Message Date
9678659892 Release v1.3.0 2025-12-27 10:05:50 -03:00
87334bb28c Update Directory.Build.props 2025-12-22 09:59:50 -03:00
d26c3bd11a Add support to dotnet standard and framework 2025-12-22 09:51:08 -03:00
e3c42a9911 Update README.md 2025-12-16 19:23:47 -03:00
93301110b7 Update projects 2025-12-16 15:58:29 -03:00
44dc36430a Move flake generator to platform project 2025-12-11 10:16:30 -03:00
765b6319bb Add snowflake generator 2025-12-11 10:14:38 -03:00
1c570ce666 Delete DatabaseSeeder.cs 2025-12-05 11:30:50 -03:00
6238191512 Update database seeder 2025-12-05 10:34:11 -03:00
b6c7166b8e Add repository seeder 2025-12-05 10:17:08 -03:00
92a7bb3252 Update DatabaseConfiguration.cs 2025-12-04 18:31:35 -03:00
32a2a20fb1 Update BaseClassFirstContractResolver.cs 2025-07-08 20:29:51 -03:00
3edec858a8 Update BaseClassFirstContractResolver.cs 2025-07-08 20:26:06 -03:00
936f7f0f5e Update ConfigurationLoader.cs 2025-07-08 20:24:18 -03:00
0a88bf2ac6 Update CustomSerializerSettings.cs 2025-07-07 11:55:42 -03:00
817d89a57a Update CustomSerializerSettings.cs 2025-07-07 11:35:57 -03:00
2b6270264b Update Program.cs 2025-07-07 11:34:37 -03:00
e8d842bf34 Update CustomSerializerSettings 2025-07-07 11:34:36 -03:00
672fe601f7 Add json serialization configs 2025-07-07 11:06:41 -03:00
eda5b1894b Add logger with context object 2025-06-10 11:53:30 -03:00
e4986367e7 Disable ImplicitUsings 2025-06-04 16:55:16 -03:00
58f300e39b Update Program.cs 2025-06-04 07:45:04 -03:00
479f719816 Update Logger.cs 2025-06-03 20:03:23 -03:00
eb9e939fc8 Update log levels 2025-06-03 20:01:16 -03:00
c8bb2d95b5 Update TribufuApi.cs 2025-06-03 19:37:55 -03:00
e63812204d Rename Tribufu.Runtime to Tribufu.Platform 2025-06-02 10:06:03 -03:00
4b694a4031 Update Tribufu.Runtime.csproj 2025-06-02 09:24:13 -03:00
5fdd52265b Revert "Remove net standard support"
This reverts commit f45e827ba4.
2025-06-02 09:23:54 -03:00
f45e827ba4 Remove net standard support 2025-06-02 09:19:21 -03:00
ffc4079881 Update Tribufu.Runtime.csproj 2025-06-02 09:15:38 -03:00
374a634949 Add IsPublishable to all projects 2025-06-02 09:15:00 -03:00
13c5d6a71c Rename ConfigurationLoader 2025-06-02 09:06:21 -03:00
f6c296d9b6 Update READMEs 2025-06-02 09:00:15 -03:00
5b2588b47f Add shared packages 2025-06-02 08:58:34 -03:00
128 changed files with 24573 additions and 16456 deletions

2
.gitignore vendored
View File

@@ -1,7 +1,9 @@
.vs/ .vs/
bin/ bin/
obj/ obj/
releases/*
!releases/.gitkeep
.DS_Store .DS_Store
.env .env
*.filters *.filters

View File

@@ -1,60 +1,67 @@
src/Tribufu.Generated/Api/TribufuGeneratedApi.cs src/Tribufu/Api/TribufuGeneratedApi.cs
src/Tribufu.Generated/Client/ApiClient.cs src/Tribufu/Client/ApiClient.cs
src/Tribufu.Generated/Client/ApiException.cs src/Tribufu/Client/ApiException.cs
src/Tribufu.Generated/Client/ApiResponse.cs src/Tribufu/Client/ApiResponse.cs
src/Tribufu.Generated/Client/ClientUtils.cs src/Tribufu/Client/ClientUtils.cs
src/Tribufu.Generated/Client/Configuration.cs src/Tribufu/Client/Configuration.cs
src/Tribufu.Generated/Client/ExceptionFactory.cs src/Tribufu/Client/ExceptionFactory.cs
src/Tribufu.Generated/Client/GlobalConfiguration.cs src/Tribufu/Client/GlobalConfiguration.cs
src/Tribufu.Generated/Client/HttpMethod.cs src/Tribufu/Client/HttpMethod.cs
src/Tribufu.Generated/Client/IApiAccessor.cs src/Tribufu/Client/IApiAccessor.cs
src/Tribufu.Generated/Client/IAsynchronousClient.cs src/Tribufu/Client/IAsynchronousClient.cs
src/Tribufu.Generated/Client/IReadableConfiguration.cs src/Tribufu/Client/IReadableConfiguration.cs
src/Tribufu.Generated/Client/ISynchronousClient.cs src/Tribufu/Client/ISynchronousClient.cs
src/Tribufu.Generated/Client/Multimap.cs src/Tribufu/Client/Multimap.cs
src/Tribufu.Generated/Client/OpenAPIDateConverter.cs src/Tribufu/Client/OpenAPIDateConverter.cs
src/Tribufu.Generated/Client/RequestOptions.cs src/Tribufu/Client/RequestOptions.cs
src/Tribufu.Generated/Client/RetryConfiguration.cs src/Tribufu/Client/RetryConfiguration.cs
src/Tribufu.Generated/Model/AbstractOpenAPISchema.cs src/Tribufu/Model/AbstractOpenAPISchema.cs
src/Tribufu.Generated/Model/Account.cs src/Tribufu/Model/Account.cs
src/Tribufu.Generated/Model/Application.cs src/Tribufu/Model/Application.cs
src/Tribufu.Generated/Model/ApplicationType.cs src/Tribufu/Model/ApplicationType.cs
src/Tribufu.Generated/Model/AuthorizeRequest.cs src/Tribufu/Model/AuthorizeRequest.cs
src/Tribufu.Generated/Model/CodeChallengeMethod.cs src/Tribufu/Model/ClientInfo.cs
src/Tribufu.Generated/Model/CryptoViewModel.cs src/Tribufu/Model/ClientType.cs
src/Tribufu.Generated/Model/Game.cs src/Tribufu/Model/CodeChallengeMethod.cs
src/Tribufu.Generated/Model/GameServer.cs src/Tribufu/Model/CodeResponse.cs
src/Tribufu.Generated/Model/GameServerCluster.cs src/Tribufu/Model/CreateUser.cs
src/Tribufu.Generated/Model/GrantType.cs src/Tribufu/Model/CryptoViewModel.cs
src/Tribufu.Generated/Model/Group.cs src/Tribufu/Model/Game.cs
src/Tribufu.Generated/Model/GroupGame.cs src/Tribufu/Model/GameServer.cs
src/Tribufu.Generated/Model/GroupMember.cs src/Tribufu/Model/GameServerCluster.cs
src/Tribufu.Generated/Model/GroupRank.cs src/Tribufu/Model/GameServerQuery.cs
src/Tribufu.Generated/Model/HashViewModel.cs src/Tribufu/Model/GameServerStatus.cs
src/Tribufu.Generated/Model/IntrospectRequest.cs src/Tribufu/Model/GrantType.cs
src/Tribufu.Generated/Model/IpAddress.cs src/Tribufu/Model/Group.cs
src/Tribufu.Generated/Model/LeaderboardItem.cs src/Tribufu/Model/GroupApplication.cs
src/Tribufu.Generated/Model/LeaderboardOrder.cs src/Tribufu/Model/GroupMember.cs
src/Tribufu.Generated/Model/LoginProvider.cs src/Tribufu/Model/GroupRank.cs
src/Tribufu.Generated/Model/LoginRequest.cs src/Tribufu/Model/HashViewModel.cs
src/Tribufu.Generated/Model/LoginResponse.cs src/Tribufu/Model/IntrospectRequest.cs
src/Tribufu.Generated/Model/Package.cs src/Tribufu/Model/IntrospectResponse.cs
src/Tribufu.Generated/Model/Profile.cs src/Tribufu/Model/IpAddress.cs
src/Tribufu.Generated/Model/ProfileGame.cs src/Tribufu/Model/LeaderboardItem.cs
src/Tribufu.Generated/Model/ProfileGroup.cs src/Tribufu/Model/LeaderboardOrder.cs
src/Tribufu.Generated/Model/RefreshRequest.cs src/Tribufu/Model/LoginProvider.cs
src/Tribufu.Generated/Model/RegisterRequest.cs src/Tribufu/Model/ModelClient.cs
src/Tribufu.Generated/Model/ResponseType.cs src/Tribufu/Model/Package.cs
src/Tribufu.Generated/Model/RevokeRequest.cs src/Tribufu/Model/PackageRelease.cs
src/Tribufu.Generated/Model/SearchRequest.cs src/Tribufu/Model/Product.cs
src/Tribufu.Generated/Model/SearchType.cs src/Tribufu/Model/ProductPrice.cs
src/Tribufu.Generated/Model/ServerMetrics.cs src/Tribufu/Model/ProductType.cs
src/Tribufu.Generated/Model/ServerStatus.cs src/Tribufu/Model/Profile.cs
src/Tribufu.Generated/Model/Subscription.cs src/Tribufu/Model/ProfileGame.cs
src/Tribufu.Generated/Model/TokenHintType.cs src/Tribufu/Model/ProfileGroup.cs
src/Tribufu.Generated/Model/TokenRequest.cs src/Tribufu/Model/ResponseType.cs
src/Tribufu.Generated/Model/TokenResponse.cs src/Tribufu/Model/RevokeRequest.cs
src/Tribufu.Generated/Model/TokenType.cs src/Tribufu/Model/Search.cs
src/Tribufu.Generated/Model/UpdateProfile.cs src/Tribufu/Model/SearchType.cs
src/Tribufu.Generated/Model/UserInfo.cs src/Tribufu/Model/ServerMetrics.cs
src/Tribufu.Generated/Model/UserType.cs src/Tribufu/Model/StorageFile.cs
src/Tribufu/Model/TokenHintType.cs
src/Tribufu/Model/TokenRequest.cs
src/Tribufu/Model/TokenResponse.cs
src/Tribufu/Model/TokenType.cs
src/Tribufu/Model/UpdateProfile.cs
src/Tribufu/Model/UserInfo.cs
src/Tribufu/Model/UserType.cs

View File

@@ -6,7 +6,7 @@
<PackageLicenseExpression>MIT</PackageLicenseExpression> <PackageLicenseExpression>MIT</PackageLicenseExpression>
<RepositoryType>git</RepositoryType> <RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/tribufu/tribufu-dotnet</RepositoryUrl> <RepositoryUrl>https://github.com/tribufu/tribufu-dotnet</RepositoryUrl>
<Version>1.1.0</Version> <Version>1.3.0</Version>
<AssemblyVersion>$(Version).0</AssemblyVersion> <AssemblyVersion>$(Version).0</AssemblyVersion>
<NoWarn>$(NoWarn);0618;1591;1998;2002;8767</NoWarn> <NoWarn>$(NoWarn);0618;1591;1998;2002;8767</NoWarn>
</PropertyGroup> </PropertyGroup>

View File

@@ -3,11 +3,22 @@
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally> <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageVersion Include="CppAst.CodeGen" Version="0.4.1" />
<PackageVersion Include="dotenv.net" Version="3.2.0" /> <PackageVersion Include="dotenv.net" Version="3.2.0" />
<PackageVersion Include="IdGen" Version="3.0.7" />
<PackageVersion Include="JsonSubTypes" Version="2.0.1" /> <PackageVersion Include="JsonSubTypes" Version="2.0.1" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="8.0.16" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Ini" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" /> <PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
<PackageVersion Include="Polly" Version="8.1.0" /> <PackageVersion Include="Polly" Version="8.1.0" />
<PackageVersion Include="RestSharp" Version="112.1.0" /> <PackageVersion Include="RestSharp" Version="112.1.0" />
<PackageVersion Include="System.ComponentModel.Annotations" Version="5.0.0" /> <PackageVersion Include="System.ComponentModel.Annotations" Version="5.0.0" />
<PackageVersion Include="Tomlyn.Extensions.Configuration" Version="1.0.6" />
<PackageVersion Include="Tomlyn" Version="0.17.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -6,7 +6,7 @@
[![MIT License][mit-badge]][mit-url] [![MIT License][mit-badge]][mit-url]
[![Discord Chat][discord-badge]][discord-url] [![Discord Chat][discord-badge]][discord-url]
[nuget-badge]: https://img.shields.io/nuget/v/tribufu.svg [nuget-badge]: https://img.shields.io/nuget/v/Tribufu.svg
[nuget-url]: https://www.nuget.org/packages/Tribufu [nuget-url]: https://www.nuget.org/packages/Tribufu
[mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg [mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg
[mit-url]: https://github.com/tribufu/tribufu-dotnet/blob/main/LICENSE.txt [mit-url]: https://github.com/tribufu/tribufu-dotnet/blob/main/LICENSE.txt

View File

@@ -3,13 +3,21 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16 # Visual Studio Version 16
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu", "src\Tribufu\Tribufu.csproj", "{7B7890D8-863A-4F1D-98C0-4B7D8C46CB52}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu", "src\Tribufu\Tribufu.csproj", "{7B7890D8-863A-4F1D-98C0-4B7D8C46CB52}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.Generated", "src\Tribufu.Generated\Tribufu.Generated.csproj", "{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.Example", "src\Tribufu.Example\Tribufu.Example.csproj", "{D6392A29-E2DC-4050-B4C1-B279DD2D226D}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.Example", "src\Tribufu.Example\Tribufu.Example.csproj", "{D6392A29-E2DC-4050-B4C1-B279DD2D226D}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.Logging", "src\Tribufu.Logging\Tribufu.Logging.csproj", "{CFD80847-9B98-4991-BADF-8714E7D8D81C}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.SafeCheck", "src\Tribufu.SafeCheck\Tribufu.SafeCheck.csproj", "{B1463692-23C0-435B-A018-B6ED8F305E8D}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.Configuration", "src\Tribufu.Configuration\Tribufu.Configuration.csproj", "{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.Platform", "src\Tribufu.Platform\Tribufu.Platform.csproj", "{26EEB407-733C-4383-9211-B083CD5F593B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.EntityFrameworkCore", "src\Tribufu.EntityFrameworkCore\Tribufu.EntityFrameworkCore.csproj", "{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.Serialization", "src\Tribufu.Serialization\Tribufu.Serialization.csproj", "{D6DAE078-2F80-49DD-97A3-B1223FE04F91}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.ComponentModel", "src\Tribufu.ComponentModel\Tribufu.ComponentModel.csproj", "{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tribufu.AspNetCore", "src\Tribufu.AspNetCore\Tribufu.AspNetCore.csproj", "{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -33,18 +41,6 @@ Global
{7B7890D8-863A-4F1D-98C0-4B7D8C46CB52}.Release|x64.Build.0 = Release|Any CPU {7B7890D8-863A-4F1D-98C0-4B7D8C46CB52}.Release|x64.Build.0 = Release|Any CPU
{7B7890D8-863A-4F1D-98C0-4B7D8C46CB52}.Release|x86.ActiveCfg = Release|Any CPU {7B7890D8-863A-4F1D-98C0-4B7D8C46CB52}.Release|x86.ActiveCfg = Release|Any CPU
{7B7890D8-863A-4F1D-98C0-4B7D8C46CB52}.Release|x86.Build.0 = Release|Any CPU {7B7890D8-863A-4F1D-98C0-4B7D8C46CB52}.Release|x86.Build.0 = Release|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Debug|x64.ActiveCfg = Debug|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Debug|x64.Build.0 = Debug|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Debug|x86.ActiveCfg = Debug|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Debug|x86.Build.0 = Debug|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Release|Any CPU.Build.0 = Release|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Release|x64.ActiveCfg = Release|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Release|x64.Build.0 = Release|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Release|x86.ActiveCfg = Release|Any CPU
{FF9B3170-0FD8-44A5-B6E3-01A8D11D2BEF}.Release|x86.Build.0 = Release|Any CPU
{D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Debug|Any CPU.Build.0 = Debug|Any CPU {D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Debug|x64.ActiveCfg = Debug|Any CPU {D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -57,23 +53,92 @@ Global
{D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Release|x64.Build.0 = Release|Any CPU {D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Release|x64.Build.0 = Release|Any CPU
{D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Release|x86.ActiveCfg = Release|Any CPU {D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Release|x86.ActiveCfg = Release|Any CPU
{D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Release|x86.Build.0 = Release|Any CPU {D6392A29-E2DC-4050-B4C1-B279DD2D226D}.Release|x86.Build.0 = Release|Any CPU
{B1463692-23C0-435B-A018-B6ED8F305E8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CFD80847-9B98-4991-BADF-8714E7D8D81C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B1463692-23C0-435B-A018-B6ED8F305E8D}.Debug|Any CPU.Build.0 = Debug|Any CPU {CFD80847-9B98-4991-BADF-8714E7D8D81C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B1463692-23C0-435B-A018-B6ED8F305E8D}.Debug|x64.ActiveCfg = Debug|Any CPU {CFD80847-9B98-4991-BADF-8714E7D8D81C}.Debug|x64.ActiveCfg = Debug|Any CPU
{B1463692-23C0-435B-A018-B6ED8F305E8D}.Debug|x64.Build.0 = Debug|Any CPU {CFD80847-9B98-4991-BADF-8714E7D8D81C}.Debug|x64.Build.0 = Debug|Any CPU
{B1463692-23C0-435B-A018-B6ED8F305E8D}.Debug|x86.ActiveCfg = Debug|Any CPU {CFD80847-9B98-4991-BADF-8714E7D8D81C}.Debug|x86.ActiveCfg = Debug|Any CPU
{B1463692-23C0-435B-A018-B6ED8F305E8D}.Debug|x86.Build.0 = Debug|Any CPU {CFD80847-9B98-4991-BADF-8714E7D8D81C}.Debug|x86.Build.0 = Debug|Any CPU
{B1463692-23C0-435B-A018-B6ED8F305E8D}.Release|Any CPU.ActiveCfg = Release|Any CPU {CFD80847-9B98-4991-BADF-8714E7D8D81C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B1463692-23C0-435B-A018-B6ED8F305E8D}.Release|Any CPU.Build.0 = Release|Any CPU {CFD80847-9B98-4991-BADF-8714E7D8D81C}.Release|Any CPU.Build.0 = Release|Any CPU
{B1463692-23C0-435B-A018-B6ED8F305E8D}.Release|x64.ActiveCfg = Release|Any CPU {CFD80847-9B98-4991-BADF-8714E7D8D81C}.Release|x64.ActiveCfg = Release|Any CPU
{B1463692-23C0-435B-A018-B6ED8F305E8D}.Release|x64.Build.0 = Release|Any CPU {CFD80847-9B98-4991-BADF-8714E7D8D81C}.Release|x64.Build.0 = Release|Any CPU
{B1463692-23C0-435B-A018-B6ED8F305E8D}.Release|x86.ActiveCfg = Release|Any CPU {CFD80847-9B98-4991-BADF-8714E7D8D81C}.Release|x86.ActiveCfg = Release|Any CPU
{B1463692-23C0-435B-A018-B6ED8F305E8D}.Release|x86.Build.0 = Release|Any CPU {CFD80847-9B98-4991-BADF-8714E7D8D81C}.Release|x86.Build.0 = Release|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Debug|x64.ActiveCfg = Debug|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Debug|x64.Build.0 = Debug|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Debug|x86.ActiveCfg = Debug|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Debug|x86.Build.0 = Debug|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Release|Any CPU.Build.0 = Release|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Release|x64.ActiveCfg = Release|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Release|x64.Build.0 = Release|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Release|x86.ActiveCfg = Release|Any CPU
{C0A841C8-9FC5-4AC0-B9AD-6BBFCEDCBE5F}.Release|x86.Build.0 = Release|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Debug|x64.ActiveCfg = Debug|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Debug|x64.Build.0 = Debug|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Debug|x86.ActiveCfg = Debug|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Debug|x86.Build.0 = Debug|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Release|Any CPU.Build.0 = Release|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Release|x64.ActiveCfg = Release|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Release|x64.Build.0 = Release|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Release|x86.ActiveCfg = Release|Any CPU
{26EEB407-733C-4383-9211-B083CD5F593B}.Release|x86.Build.0 = Release|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Debug|x64.ActiveCfg = Debug|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Debug|x64.Build.0 = Debug|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Debug|x86.ActiveCfg = Debug|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Debug|x86.Build.0 = Debug|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Release|Any CPU.Build.0 = Release|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Release|x64.ActiveCfg = Release|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Release|x64.Build.0 = Release|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Release|x86.ActiveCfg = Release|Any CPU
{E7F9A76F-C087-410B-B4B5-A928A6CDC2BA}.Release|x86.Build.0 = Release|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Debug|x64.ActiveCfg = Debug|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Debug|x64.Build.0 = Debug|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Debug|x86.ActiveCfg = Debug|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Debug|x86.Build.0 = Debug|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Release|Any CPU.Build.0 = Release|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Release|x64.ActiveCfg = Release|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Release|x64.Build.0 = Release|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Release|x86.ActiveCfg = Release|Any CPU
{D6DAE078-2F80-49DD-97A3-B1223FE04F91}.Release|x86.Build.0 = Release|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Debug|x64.ActiveCfg = Debug|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Debug|x64.Build.0 = Debug|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Debug|x86.ActiveCfg = Debug|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Debug|x86.Build.0 = Debug|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Release|Any CPU.Build.0 = Release|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Release|x64.ActiveCfg = Release|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Release|x64.Build.0 = Release|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Release|x86.ActiveCfg = Release|Any CPU
{7CB04FFD-8F4B-4B40-BB4B-2BAA19D783E1}.Release|x86.Build.0 = Release|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Debug|x64.ActiveCfg = Debug|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Debug|x64.Build.0 = Debug|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Debug|x86.ActiveCfg = Debug|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Debug|x86.Build.0 = Debug|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Release|Any CPU.Build.0 = Release|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Release|x64.ActiveCfg = Release|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Release|x64.Build.0 = Release|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Release|x86.ActiveCfg = Release|Any CPU
{B6C47A6C-E389-4132-8E1C-0CBB6C96C205}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
EndGlobalSection EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{B1463692-23C0-435B-A018-B6ED8F305E8D} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
EndGlobalSection
EndGlobal EndGlobal

0
releases/.gitkeep Normal file
View File

View File

@@ -7,6 +7,6 @@ java -jar ./vendor/openapi-generator/openapi-generator-cli.jar generate `
-g csharp ` -g csharp `
-o . ` -o . `
--global-property apis,models,supportingFiles,apiDocs=false,modelDocs=false,apiTests=false,modelTests=false ` --global-property apis,models,supportingFiles,apiDocs=false,modelDocs=false,apiTests=false,modelTests=false `
--additional-properties=packageName=Tribufu.Generated,library=restsharp,zeroBasedEnums=true,nullableReferenceTypes=true ` --additional-properties=packageName=Tribufu,library=restsharp,targetFramework=net47,zeroBasedEnums=true `
--openapi-normalizer SET_TAGS_FOR_ALL_OPERATIONS=TribufuGenerated ` --openapi-normalizer SET_TAGS_FOR_ALL_OPERATIONS=TribufuGenerated `
--skip-validate-spec --skip-validate-spec

7
scripts/package.ps1 Normal file
View File

@@ -0,0 +1,7 @@
#!/usr/bin/env pwsh
Get-ChildItem ./releases -Filter *.nupkg -Recurse -Force | Remove-Item -Force
dotnet clean
dotnet build -c Release
dotnet pack -c Release -o ./releases

View File

@@ -1,3 +0,0 @@
#!/usr/bin/env sh
dotnet pack

View File

@@ -0,0 +1,33 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: UNLICENSED
using Microsoft.AspNetCore.Http;
using System;
using System.Linq;
namespace Tribufu.AspNetCore.Extensions
{
public static class HttpContextExtensions
{
public static string GetIpAddress(this HttpContext context)
{
var headers = context.Request.Headers;
if (headers.TryGetValue("CF-Connecting-IP", out var cfConnectingIp))
{
return cfConnectingIp.FirstOrDefault() ?? "127.0.0.1";
}
if (headers.TryGetValue("X-Forwarded-For", out var xForwardedFor))
{
var forwardedIps = xForwardedFor.ToString().Split(',', StringSplitOptions.RemoveEmptyEntries);
if (forwardedIps.Length > 0)
{
return forwardedIps[0].Trim();
}
}
return context.Connection.RemoteIpAddress?.ToString() ?? "127.0.0.1";
}
}
}

View File

@@ -0,0 +1 @@
# Tribufu AspNetCore

View File

@@ -0,0 +1,28 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.AspNetCore</PackageId>
<Description>Tribufu AspNetCore</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IsPublishable>false</IsPublishable>
<Nullable>enable</Nullable>
<OutputType>Library</OutputType>
<TargetFrameworks>net8.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Tribufu.Configuration\Tribufu.Configuration.csproj" />
<ProjectReference Include="..\Tribufu.Logging\Tribufu.Logging.csproj" />
<ProjectReference Include="..\Tribufu.Platform\Tribufu.Platform.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,30 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using System;
using System.ComponentModel;
using System.Globalization;
using System.Runtime.Serialization;
namespace Tribufu.ComponentModel
{
public class EnumMemberConverter<T> : EnumConverter
{
public EnumMemberConverter(Type type) : base(type) { }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
var type = typeof(T);
foreach (var field in type.GetFields())
{
if (Attribute.GetCustomAttribute(field, typeof(EnumMemberAttribute)) is EnumMemberAttribute attribute && value is string enumValue && attribute.Value == enumValue)
{
return field.GetValue(null);
}
}
return base.ConvertFrom(context, culture, value);
}
}
}

View File

@@ -0,0 +1 @@
# Tribufu ComponentModel

View File

@@ -0,0 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.ComponentModel</PackageId>
<Description>Tribufu ComponentModel</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IsPublishable>false</IsPublishable>
<OutputType>Library</OutputType>
<TargetFrameworks>netstandard2.0;net45;net5.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,50 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Microsoft.Extensions.Configuration;
using System.IO;
using Tomlyn.Extensions.Configuration;
using Tribufu.Logging;
using Tribufu.Platform;
namespace Tribufu.Configuration
{
public static class ConfigurationLoader
{
public static IConfiguration Load(string[] fileNames)
{
var configDirectory = Paths.GetApplicationConfigDirectory();
var configurationBuilder = new ConfigurationBuilder();
configurationBuilder.AddEnvironmentVariables();
foreach (var fileName in fileNames)
{
var fullPath = Path.Combine(configDirectory, fileName);
if (!File.Exists(fullPath))
{
Logger.Debug($"Config file '{fullPath}' not found, skipping.");
continue;
}
var extension = Path.GetExtension(fullPath).ToLowerInvariant();
switch (extension)
{
case ".ini":
configurationBuilder.AddIniFile(fullPath, true, false);
break;
case ".json":
configurationBuilder.AddJsonFile(fullPath, true, false);
break;
case ".toml":
configurationBuilder.AddTomlFile(fullPath, true, false);
break;
default:
Logger.Warn($"Unsupported config file extension: {extension}");
break;
}
}
return configurationBuilder.Build();
}
}
}

View File

@@ -0,0 +1,16 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Microsoft.Extensions.Configuration;
namespace Tribufu.Configuration.Extensions
{
public static class IConfigurationExtensions
{
public static string? Get(this IConfiguration configuration, string prefix, string key)
{
var section = configuration.GetSection(prefix);
return !section.Exists() ? configuration[$"{prefix}_{key}"] : section[key];
}
}
}

View File

@@ -0,0 +1 @@
# Tribufu Configuration

View File

@@ -0,0 +1,32 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.Configuration</PackageId>
<Description>Tribufu Configuration</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IsPublishable>false</IsPublishable>
<Nullable>enable</Nullable>
<OutputType>Library</OutputType>
<TargetFrameworks>net6.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" />
<PackageReference Include="Microsoft.Extensions.Configuration.Ini" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" />
<PackageReference Include="Microsoft.Extensions.Configuration" />
<PackageReference Include="Newtonsoft.Json" />
<PackageReference Include="Tomlyn.Extensions.Configuration" />
<PackageReference Include="Tomlyn" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Tribufu.Logging\Tribufu.Logging.csproj" />
<ProjectReference Include="..\Tribufu.Platform\Tribufu.Platform.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,105 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Microsoft.Extensions.Configuration;
using System;
namespace Tribufu.EntityFrameworkCore
{
public class DatabaseConfiguration
{
public DatabaseDriver Driver { get; set; }
public string? Version { get; set; }
public string? Host { get; set; }
public string? Port { get; set; }
public string? User { get; set; }
public string? Password { get; set; }
public string? Schema { get; set; }
/// <summary>
/// Loads the <see cref="DatabaseConfiguration"/> from the "database" section or from root-level keys prefixed with "database_".
/// </summary>
/// <param name="configuration">The configuration source.</param>
/// <returns>The populated <see cref="DatabaseConfiguration"/> instance.</returns>
public static DatabaseConfiguration Load(IConfiguration configuration)
{
var section = configuration.GetSection("database");
var useRootFallback = !section.Exists();
string? GetConfig(string key) => useRootFallback ? configuration[$"database_{key}"] : section[key];
var driverString = GetConfig("driver") ?? throw new Exception("Missing database driver");
if (!Enum.TryParse<DatabaseDriver>(driverString, true, out var driver))
{
throw new Exception($"Unsupported database driver: {driverString}");
}
return new DatabaseConfiguration
{
Driver = driver,
Version = GetConfig("version"),
Host = GetConfig("host"),
Port = GetConfig("port"),
User = GetConfig("user"),
Password = GetConfig("password"),
Schema = GetConfig("schema")
};
}
/*
services.AddDbContext<DbContext>(options =>
{
switch (dbConfig.Driver)
{
case DatabaseDriver.MySql:
var mysqlConnection = $"Server={dbConfig.Host};Port={dbConfig.Port};Uid={dbConfig.User};Pwd={dbConfig.Password};Database={dbConfig.Schema};ConvertZeroDateTime=True;";
options.UseMySql(mysqlConnection, ServerVersion.Parse(dbConfig.Version ?? "8.0"), mySqlOptions => { });
break;
case DatabaseDriver.Postgres:
var pgsqlConnection = $"Host={dbConfig.Host};Port={dbConfig.Port};Database={dbConfig.Schema};Username={dbConfig.User};Password={dbConfig.Password};";
options.UseNpgsql(pgsqlConnection, npgsqlOptions => { });
break;
case DatabaseDriver.SqlServer:
var sqlServerConnection = $"Server={dbConfig.Host},{dbConfig.Port};Database={dbConfig.Schema};User Id={dbConfig.User};Password={dbConfig.Password};Encrypt=True;TrustServerCertificate=True;";
options.UseSqlServer(sqlServerConnection, sqlOptions => { });
break;
case DatabaseDriver.Oracle:
var oracleConnection = $"User Id={dbConfig.User};Password={dbConfig.Password};Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={dbConfig.Host})(PORT={dbConfig.Port})))(CONNECT_DATA=(SERVICE_NAME={dbConfig.Schema})));";
options.UseOracle(oracleConnection, oracleOptions => { });
break;
case DatabaseDriver.Firebird:
var firebirdConnection = $"User={dbConfig.User};Password={dbConfig.Password};Database={dbConfig.Host}:{dbConfig.Port}/{dbConfig.Schema};Dialect=3;";
options.UseFirebird(firebirdConnection, firebirdOptions => { });
break;
case DatabaseDriver.Sqlite:
var savedDirectory = Paths.GetApplicationSavedDirectory();
if (!Directory.Exists(savedDirectory)) Directory.CreateDirectory(savedDirectory);
var sqliteDatabaseFile = string.IsNullOrEmpty(dbConfig.Schema) ? "default.db" : $"{dbConfig.Schema}.db";
var sqliteDatabasePath = Path.Combine(savedDirectory, sqliteDatabaseFile);
options.UseSqlite($"Data Source={sqliteDatabasePath}", sqliteOptions => { });
break;
case DatabaseDriver.MongoDb:
var mongoUriBuilder = new MongoUrlBuilder
{
Server = new MongoServerAddress(dbConfig.Host, int.Parse(dbConfig.Port ?? "27017")),
Username = dbConfig.User,
Password = dbConfig.Password,
DatabaseName = dbConfig.Schema
};
var mongoClient = new MongoClient(mongoUriBuilder.ToMongoUrl());
var mongoDatabase = mongoClient.GetDatabase(dbConfig.Schema ?? "default");
options.UseMongoDB(mongoDatabase.Client, mongoDatabase.DatabaseNamespace.DatabaseName);
break;
default:
throw new NotSupportedException($"Unsupported database driver: {dbConfig.Driver}");
}
});
*/
}
}

View File

@@ -0,0 +1,12 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
namespace Tribufu.EntityFrameworkCore
{
public static class DatabaseConstants
{
public const uint DEFAULT_PAGINATION = 20;
public const uint MAX_PAGINATION = 100;
}
}

View File

@@ -0,0 +1,22 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
namespace Tribufu.EntityFrameworkCore
{
public enum DatabaseDriver : byte
{
MySql = 0,
Postgres = 1,
SqlServer = 2,
Oracle = 3,
Firebird = 4,
Sqlite = 5,
MongoDb = 6,
}
}

View File

@@ -0,0 +1 @@
# Tribufu EntityFrameworkCore

View File

@@ -0,0 +1,41 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Tribufu.EntityFrameworkCore.Repositories
{
public interface IRepository<T, K> where T : class
{
Task SeedAsync();
IList<T> GetAll();
Task<IList<T>> GetAllAsync();
IList<T> GetPage(uint page, uint limit);
Task<IList<T>> GetPageAsync(uint page, uint limit);
T? GetOne(K key);
Task<T?> GetOneAsync(K key);
T? Create(T entity);
Task<T?> CreateAsync(T entity);
T? Update(T entity);
Task<T?> UpdateAsync(T entity);
void Delete(K key);
Task DeleteAsync(K key);
void Delete(T entity);
Task DeleteAsync(T entity);
}
}

View File

@@ -0,0 +1,117 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Tribufu.EntityFrameworkCore.Repositories
{
public class Repository<C, T, K> : IRepository<T, K> where C : DbContext where T : class
{
protected readonly C _context;
protected readonly DbSet<T> _dbSet;
public Repository(C context)
{
_context = context ?? throw new ArgumentNullException(nameof(context));
_dbSet = context.Set<T>();
}
public virtual async Task SeedAsync()
{
}
public virtual IList<T> GetAll()
{
return [.. _dbSet];
}
public virtual async Task<IList<T>> GetAllAsync()
{
return await _dbSet.ToListAsync();
}
public virtual IList<T> GetPage(uint page, uint limit)
{
return _dbSet.Skip((int)((page < 1 ? 0 : page - 1) * limit)).Take((int)limit).ToList();
}
public virtual async Task<IList<T>> GetPageAsync(uint page, uint limit)
{
return await _dbSet.Skip((int)((page < 1 ? 0 : page - 1) * limit)).Take((int)limit).ToListAsync();
}
public virtual T? GetOne(K key)
{
return _dbSet.Find(key);
}
public virtual async Task<T?> GetOneAsync(K key)
{
return await _dbSet.FindAsync(key);
}
public virtual T? Create(T entity)
{
_dbSet.Add(entity);
var result = _context.SaveChanges();
return result > 0 ? entity : null;
}
public virtual async Task<T?> CreateAsync(T entity)
{
await _dbSet.AddAsync(entity);
var result = await _context.SaveChangesAsync();
return result > 0 ? entity : null;
}
public virtual T? Update(T entity)
{
_dbSet.Update(entity);
var result = _context.SaveChanges();
return result > 0 ? entity : null;
}
public virtual async Task<T?> UpdateAsync(T entity)
{
_dbSet.Update(entity);
var result = await _context.SaveChangesAsync();
return result > 0 ? entity : null;
}
public virtual void Delete(K key)
{
var entity = _dbSet.Find(key);
if (entity != null)
{
Delete(entity);
}
}
public virtual async Task DeleteAsync(K key)
{
var entity = await _dbSet.FindAsync(key);
if (entity != null)
{
await DeleteAsync(entity);
}
}
public virtual void Delete(T entity)
{
_dbSet.Remove(entity);
_context.SaveChanges();
}
public virtual async Task DeleteAsync(T entity)
{
_dbSet.Remove(entity);
await _context.SaveChangesAsync();
}
}
}

View File

@@ -0,0 +1,26 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.EntityFrameworkCore</PackageId>
<Description>Tribufu EntityFrameworkCore</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IsPublishable>false</IsPublishable>
<Nullable>enable</Nullable>
<OutputType>Library</OutputType>
<TargetFrameworks>net8.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Tribufu.Configuration\Tribufu.Configuration.csproj" />
<ProjectReference Include="..\Tribufu.Logging\Tribufu.Logging.csproj" />
<ProjectReference Include="..\Tribufu.Platform\Tribufu.Platform.csproj" />
</ItemGroup>
</Project>

View File

@@ -1,9 +1,11 @@
// Copyright (c) Tribufu. All Rights Reserved. // Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: UNLICENSED // SPDX-License-Identifier: MIT
using dotenv.net; using dotenv.net;
using Tribufu.Generated.Client; using System;
using Tribufu.SafeCheck; using System.Threading.Tasks;
using Tribufu.Client;
using Tribufu.Logging;
namespace Tribufu.Test namespace Tribufu.Test
{ {
@@ -11,23 +13,23 @@ namespace Tribufu.Test
{ {
public static async Task Main(string[] args) public static async Task Main(string[] args)
{ {
Logger.Initialize(LogLevel.Trace);
DotEnv.Load(new DotEnvOptions(ignoreExceptions: true, envFilePaths: [".env", "../../.env"])); DotEnv.Load(new DotEnvOptions(ignoreExceptions: true, envFilePaths: [".env", "../../.env"]));
var apiKey = Environment.GetEnvironmentVariable("TRIBUFU_API_KEY"); var apiKey = Environment.GetEnvironmentVariable("TRIBUFU_API_KEY");
var tribufu = new TribufuApi(apiKey ?? ""); var tribufu = new TribufuApi(apiKey ?? "");
Console.WriteLine(TribufuApi.GetVersion()); Logger.Debug(TribufuApi.GetUserAgent());
try try
{ {
//var result = await tribufu.GetUserInfoAsync(); var result = await tribufu.GetUserInfoAsync();
var safecheck = new TribufuSafeCheck(apiKey, "http://localhost:5100"); Logger.Debug(result.ToString());
var result = await safecheck.CheckImageAsync("");
Console.WriteLine(result);
} }
catch (ApiException e) catch (ApiException e)
{ {
Console.WriteLine(e.Message); Logger.Debug(e.Message);
} }
} }
} }

View File

@@ -1,6 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<ImplicitUsings>enable</ImplicitUsings> <IsPackable>false</IsPackable>
<IsPublishable>false</IsPublishable>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
@@ -9,7 +10,7 @@
<PackageReference Include="dotenv.net" /> <PackageReference Include="dotenv.net" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Tribufu.Logging\Tribufu.Logging.csproj" />
<ProjectReference Include="..\Tribufu\Tribufu.csproj" /> <ProjectReference Include="..\Tribufu\Tribufu.csproj" />
<ProjectReference Include="..\Tribufu.SafeCheck\Tribufu.SafeCheck.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

File diff suppressed because it is too large Load Diff

View File

@@ -1,110 +0,0 @@
/*
* Tribufu API
*
* REST API to access Tribufu services.
*
* The version of the OpenAPI document: 1.1.0
* Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model
{
/// <summary>
/// LoginResponse
/// </summary>
[DataContract(Name = "LoginResponse")]
public partial class LoginResponse : IValidatableObject
{
/// <summary>
/// Initializes a new instance of the <see cref="LoginResponse" /> class.
/// </summary>
/// <param name="user">user.</param>
/// <param name="accessToken">accessToken.</param>
/// <param name="refreshToken">refreshToken.</param>
/// <param name="expiresIn">expiresIn.</param>
public LoginResponse(UserInfo user = default(UserInfo), string accessToken = default(string), string refreshToken = default(string), long expiresIn = default(long))
{
this.User = user;
this.AccessToken = accessToken;
this.RefreshToken = refreshToken;
this.ExpiresIn = expiresIn;
}
/// <summary>
/// Gets or Sets User
/// </summary>
[DataMember(Name = "user", EmitDefaultValue = false)]
public UserInfo User { get; set; }
/// <summary>
/// Gets or Sets AccessToken
/// </summary>
[DataMember(Name = "access_token", EmitDefaultValue = true)]
public string AccessToken { get; set; }
/// <summary>
/// Gets or Sets RefreshToken
/// </summary>
[DataMember(Name = "refresh_token", EmitDefaultValue = true)]
public string RefreshToken { get; set; }
/// <summary>
/// Gets or Sets ExpiresIn
/// </summary>
[DataMember(Name = "expires_in", EmitDefaultValue = false)]
public long ExpiresIn { get; set; }
/// <summary>
/// Returns the string presentation of the object
/// </summary>
/// <returns>String presentation of the object</returns>
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append("class LoginResponse {\n");
sb.Append(" User: ").Append(User).Append("\n");
sb.Append(" AccessToken: ").Append(AccessToken).Append("\n");
sb.Append(" RefreshToken: ").Append(RefreshToken).Append("\n");
sb.Append(" ExpiresIn: ").Append(ExpiresIn).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
/// <summary>
/// Returns the JSON string presentation of the object
/// </summary>
/// <returns>JSON string presentation of the object</returns>
public virtual string ToJson()
{
return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
}
/// <summary>
/// To validate all properties of the instance
/// </summary>
/// <param name="validationContext">Validation context</param>
/// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
yield break;
}
}
}

View File

@@ -1,83 +0,0 @@
/*
* Tribufu API
*
* REST API to access Tribufu services.
*
* The version of the OpenAPI document: 1.1.0
* Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model
{
/// <summary>
/// RefreshRequest
/// </summary>
[DataContract(Name = "RefreshRequest")]
public partial class RefreshRequest : IValidatableObject
{
/// <summary>
/// Initializes a new instance of the <see cref="RefreshRequest" /> class.
/// </summary>
/// <param name="refreshToken">refreshToken.</param>
public RefreshRequest(string refreshToken = default(string))
{
this.RefreshToken = refreshToken;
}
/// <summary>
/// Gets or Sets RefreshToken
/// </summary>
[DataMember(Name = "refresh_token", EmitDefaultValue = true)]
public string RefreshToken { get; set; }
/// <summary>
/// Returns the string presentation of the object
/// </summary>
/// <returns>String presentation of the object</returns>
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append("class RefreshRequest {\n");
sb.Append(" RefreshToken: ").Append(RefreshToken).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
/// <summary>
/// Returns the JSON string presentation of the object
/// </summary>
/// <returns>JSON string presentation of the object</returns>
public virtual string ToJson()
{
return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
}
/// <summary>
/// To validate all properties of the instance
/// </summary>
/// <param name="validationContext">Validation context</param>
/// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
yield break;
}
}
}

View File

@@ -1 +0,0 @@
# Tribufu

View File

@@ -1,26 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.Generated</PackageId>
<Description>Tribufu .NET SDK</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>annotations</Nullable>
<OutputType>Library</OutputType>
<TargetFrameworks>net6.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="JsonSubTypes" />
<PackageReference Include="Newtonsoft.Json" />
<PackageReference Include="Polly" />
<PackageReference Include="RestSharp" />
<PackageReference Include="System.ComponentModel.Annotations" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,20 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
namespace Tribufu.Logging
{
public enum LogLevel : byte
{
Off = 0,
Error = 1,
Warn = 2,
Info = 3,
Debug = 4,
Trace = 5,
}
}

View File

@@ -0,0 +1,79 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using System;
namespace Tribufu.Logging
{
public static class Logger
{
private static LogLevel _level = LogLevel.Off;
public static void Initialize(LogLevel level = LogLevel.Off)
{
_level = level;
}
public static void Info(object context, string message)
{
Info($"({context.GetType().Name}) {message}");
}
public static void Warn(object context, string message)
{
Warn($"({context.GetType().Name}) {message}");
}
public static void Error(object context, string message)
{
Error($"({context.GetType().Name}) {message}");
}
public static void Debug(object context, string message)
{
Debug($"({context.GetType().Name}) {message}");
}
public static void Trace(object context, string message)
{
Trace($"({context.GetType().Name}) {message}");
}
public static void Info(string message)
{
Log(LogLevel.Info, message, ConsoleColor.Green);
}
public static void Warn(string message)
{
Log(LogLevel.Warn, message, ConsoleColor.Yellow);
}
public static void Error(string message)
{
Log(LogLevel.Error, message, ConsoleColor.Red);
}
public static void Debug(string message)
{
Log(LogLevel.Debug, message, ConsoleColor.White);
}
public static void Trace(string message)
{
Log(LogLevel.Trace, message, ConsoleColor.DarkGray);
}
private static void Log(LogLevel level, string message, ConsoleColor color)
{
if (level <= _level)
{
var defaultColor = Console.ForegroundColor;
Console.ForegroundColor = color;
var timestamp = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss");
Console.WriteLine($"[{timestamp}] [{level.ToString().ToUpper()}]: {message}");
Console.ForegroundColor = defaultColor;
}
}
}
}

View File

@@ -0,0 +1 @@
# Tribufu Logging

View File

@@ -0,0 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.Logging</PackageId>
<Description>Tribufu Logging</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IsPublishable>false</IsPublishable>
<OutputType>Library</OutputType>
<TargetFrameworks>netstandard2.0;net45;net5.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,45 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: UNLICENSED
using IdGen;
using System;
namespace Tribufu.Platform
{
public static class FlakeGenerator
{
public static readonly DateTime EPOCH = new(2016, 1, 1, 0, 0, 0, DateTimeKind.Utc);
private static readonly IdStructure _structure = new(41, 10, 12);
private static readonly IdGeneratorOptions _options = new(_structure, new DefaultTimeSource(EPOCH));
private static readonly IdGenerator _generator = new(0, _options);
public static ulong New()
{
//Console.WriteLine("Max. generators : {0}", _structure.MaxGenerators);
//Console.WriteLine("Id's/ms per generator : {0}", _structure.MaxSequenceIds);
//Console.WriteLine("Id's/ms total : {0}", _structure.MaxGenerators * _structure.MaxSequenceIds);
//Console.WriteLine("Wraparound interval : {0}", _structure.WraparoundInterval(_generator.Options.TimeSource));
//Console.WriteLine("Wraparound date : {0}", _structure.WraparoundDate(_generator.Options.TimeSource.Epoch, _generator.Options.TimeSource).ToString("O"));
return (ulong)_generator.CreateId();
}
public static ulong FromTimestamp(DateTime timestamp, ushort sequence = 0)
{
var diff = (long)(timestamp - EPOCH).TotalMilliseconds;
if (diff < 0 || diff > (1L << 41) - 1)
{
throw new ArgumentOutOfRangeException(nameof(timestamp), "Timestamp out of range for flake.");
}
ulong timestampPart = (ulong)diff << 22; // 41 bits << (10+12)
ulong generatorPart = 0ul << 12; // Always 0
ulong sequencePart = (ulong)(sequence & 0xFFF); // 12 bits
return timestampPart | generatorPart | sequencePart;
}
}
}

View File

@@ -0,0 +1,122 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using System;
using System.IO;
using System.Runtime.InteropServices;
using Tribufu.Logging;
namespace Tribufu.Platform
{
/// <summary>
/// Provides standardized access to important directories, such as config, saved data, logs, and platform-specific binaries.
/// This is especially useful for abstracting file path logic across environments (development, production, etc).
/// </summary>
public static class Paths
{
/// <summary>
/// Gets the root base directory of the application.
/// </summary>
/// <remarks>
/// - In development, this resolves to the root of the repository (five levels above bin/Debug or bin/Release).
/// - In production, it resolves to two levels above the binary location.
/// - It uses case-insensitive checks and runtime heuristics to improve accuracy.
/// </remarks>
/// <returns>The absolute path to the base directory.</returns>
public static string GetApplicationDirectory()
{
try
{
string baseDirectory;
string defaultBaseDirectory = AppContext.BaseDirectory;
bool isDevelopment = defaultBaseDirectory.ToLowerInvariant().Contains("debug");
if (isDevelopment)
{
// Go 5 levels up to simulate project root
baseDirectory = Path.Combine(defaultBaseDirectory, "..", "..", "..", "..", "..");
}
else
{
baseDirectory = Path.Combine(defaultBaseDirectory, "..", "..");
}
return Path.GetFullPath(baseDirectory);
}
catch (Exception ex)
{
Logger.Warn($"(Paths) Failed to resolve base directory: {ex.Message}");
return AppContext.BaseDirectory;
}
}
/// <summary>
/// Gets the path to the platform-specific binary directory.
/// </summary>
/// <returns>
/// The absolute path to <c>bin/&lt;runtime-identifier&gt;</c> if available,
/// otherwise falls back to <c>bin/dotnet</c>.
/// </returns>
public static string GetApplicationBinDirectory()
{
var binDirectory = Path.Combine(GetApplicationDirectory(), "bin");
if (!string.IsNullOrEmpty(RuntimeInformation.RuntimeIdentifier))
{
binDirectory = Path.Combine(binDirectory, RuntimeInformation.RuntimeIdentifier);
}
else
{
binDirectory = Path.Combine(binDirectory, "dotnet");
}
return binDirectory;
}
/// <summary>
/// Gets the path to the configuration directory.
/// </summary>
/// <returns>The absolute path to the <c>config</c> directory.</returns>
public static string GetApplicationConfigDirectory()
{
return Path.Combine(GetApplicationDirectory(), "config");
}
/// <summary>
/// Gets the path to the assets directory.
/// </summary>
/// <returns>The absolute path to the <c>assets</c> directory.</returns>
public static string GetApplicationAssetsDirectory()
{
return Path.Combine(GetApplicationDirectory(), "assets");
}
/// <summary>
/// Gets the path to the saved data directory.
/// </summary>
/// <returns>The absolute path to the <c>saved</c> directory.</returns>
public static string GetApplicationSavedDirectory()
{
return Path.Combine(GetApplicationDirectory(), "saved");
}
/// <summary>
/// Gets the path to the cache directory inside <c>saved</c>.
/// </summary>
/// <returns>The absolute path to the <c>saved/cache</c> directory.</returns>
public static string GetApplicationCacheDirectory()
{
return Path.Combine(GetApplicationSavedDirectory(), "cache");
}
/// <summary>
/// Gets the path to the logs directory inside <c>saved</c>.
/// </summary>
/// <returns>The absolute path to the <c>saved/logs</c> directory.</returns>
public static string GetApplicationLogsDirectory()
{
return Path.Combine(GetApplicationSavedDirectory(), "logs");
}
}
}

View File

@@ -0,0 +1 @@
# Tribufu Runtime

View File

@@ -0,0 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.Platform</PackageId>
<Description>Tribufu Platform</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IsPublishable>false</IsPublishable>
<OutputType>Library</OutputType>
<TargetFrameworks>net5.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="IdGen" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Tribufu.ComponentModel\Tribufu.ComponentModel.csproj" />
<ProjectReference Include="..\Tribufu.Logging\Tribufu.Logging.csproj" />
</ItemGroup>
</Project>

View File

@@ -1 +0,0 @@
# Tribufu

View File

@@ -1,25 +0,0 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Newtonsoft.Json;
namespace Tribufu.SafeCheck
{
public class SafeCheckDetections
{
[JsonProperty("sexy")]
public double Sexy { get; set; }
[JsonProperty("porn")]
public double Porn { get; set; }
[JsonProperty("neutral")]
public double Neutral { get; set; }
[JsonProperty("hentai")]
public double Hentai { get; set; }
[JsonProperty("drawing")]
public double Drawing { get; set; }
}
}

View File

@@ -1,18 +0,0 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Newtonsoft.Json;
namespace Tribufu.SafeCheck
{
public class SafeCheckRequest
{
[JsonProperty("image_url")]
public string ImageUrl { get; set; }
public SafeCheckRequest(string imageUrl)
{
ImageUrl = imageUrl;
}
}
}

View File

@@ -1,19 +0,0 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Newtonsoft.Json;
namespace Tribufu.SafeCheck
{
public class SafecheckResponse
{
[JsonProperty("safe")]
public bool Safe { get; set; }
[JsonProperty("reason")]
public string? Reason { get; set; }
[JsonProperty("detections")]
public SafeCheckDetections? Detections { get; set; }
}
}

View File

@@ -1,27 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.SafeCheck</PackageId>
<Description>Tribufu SafeCheck</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<OutputType>Library</OutputType>
<TargetFrameworks>net6.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" />
<PackageReference Include="RestSharp" />
<PackageReference Include="System.ComponentModel.Annotations" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Tribufu\Tribufu.csproj" />
</ItemGroup>
</Project>

View File

@@ -1,56 +0,0 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Newtonsoft.Json;
using RestSharp;
namespace Tribufu.SafeCheck
{
public sealed class TribufuSafeCheck
{
private readonly RestClient _client;
private readonly string? _apiKey;
public const string DefaultBaseUrl = "https://safecheck.tribufu.com";
public TribufuSafeCheck(string? apiKey = null, string baseUrl = DefaultBaseUrl)
{
var options = new RestClientOptions(baseUrl)
{
UserAgent = TribufuApi.GetUserAgent(),
};
_client = new RestClient(options);
_apiKey = apiKey;
}
public async Task<bool> CheckImageAsync(string imageUrl)
{
if (string.IsNullOrWhiteSpace(imageUrl))
{
throw new ArgumentException("Image URL cannot be null or empty.", nameof(imageUrl));
}
var request = new RestRequest("/image", Method.Post);
request.AddHeader("Content-Type", "application/json");
if (!string.IsNullOrEmpty(_apiKey))
{
request.AddHeader("Authorization", $"ApiKey {_apiKey}");
}
var requestBody = new SafeCheckRequest(imageUrl);
request.AddStringBody(JsonConvert.SerializeObject(requestBody), DataFormat.Json);
var response = await _client.ExecuteAsync(request);
if (!response.IsSuccessful)
{
throw new Exception($"Request failed: {response.StatusCode} - {response.Content}");
}
var result = JsonConvert.DeserializeObject<SafecheckResponse>(response.Content!);
return result?.Safe ?? false;
}
}
}

View File

@@ -0,0 +1,20 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: UNLICENSED
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Tribufu.Serialization
{
public class BaseClassFirstContractResolver : DefaultContractResolver
{
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
var props = base.CreateProperties(type, memberSerialization);
return props.OrderBy(p => { return p.DeclaringType == type ? 1 : 0; }).ToList();
}
}
}

View File

@@ -0,0 +1,35 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
namespace Tribufu.Serialization
{
public static class CustomSerializerSettings
{
public static JsonSerializerSettings GetNewtonsoftJson()
{
var settings = new JsonSerializerSettings();
SetNewtonsoftJson(settings);
return settings;
}
public static void SetNewtonsoftJson(JsonSerializerSettings settings)
{
settings.ContractResolver = new BaseClassFirstContractResolver
{
NamingStrategy = new SnakeCaseNamingStrategy()
};
settings.Converters.Add(new DecimalNullableStringConverter());
settings.Converters.Add(new DecimalStringConverter());
settings.Converters.Add(new ULongNullableStringConverter());
settings.Converters.Add(new ULongStringConverter());
settings.Converters.Add(new StringEnumConverter(new SnakeCaseNamingStrategy(), false));
settings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
}
}
}

View File

@@ -0,0 +1,46 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Newtonsoft.Json;
using System;
using System.Globalization;
namespace Tribufu.Serialization
{
public class DecimalNullableStringConverter : JsonConverter<decimal?>
{
public override decimal? ReadJson(JsonReader reader, Type objectType, decimal? existingValue, bool hasExistingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.Null)
{
return null;
}
if (reader.TokenType == JsonToken.String || reader.TokenType == JsonToken.Integer)
{
string value = reader.Value?.ToString();
if (string.IsNullOrWhiteSpace(value))
{
return null;
}
return decimal.Parse(value);
}
throw new JsonSerializationException($"Unexpected token {reader.TokenType} when parsing decimal?.");
}
public override void WriteJson(JsonWriter writer, decimal? value, JsonSerializer serializer)
{
if (value.HasValue)
{
writer.WriteValue(value.Value.ToString(CultureInfo.InvariantCulture));
}
else
{
writer.WriteNull();
}
}
}
}

View File

@@ -0,0 +1,32 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Newtonsoft.Json;
using System;
using System.Globalization;
namespace Tribufu.Serialization
{
public class DecimalStringConverter : JsonConverter<decimal>
{
public override decimal ReadJson(JsonReader reader, Type objectType, decimal existingValue, bool hasExistingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.String && decimal.TryParse(reader.Value?.ToString(), out var result))
{
return result;
}
if (reader.TokenType == JsonToken.Integer)
{
return Convert.ToUInt64(reader.Value);
}
throw new JsonSerializationException($"Unexpected token {reader.TokenType} when parsing decimal.");
}
public override void WriteJson(JsonWriter writer, decimal value, JsonSerializer serializer)
{
writer.WriteValue(value.ToString(CultureInfo.InvariantCulture));
}
}
}

View File

@@ -0,0 +1,35 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Newtonsoft.Json.Serialization;
using System.Text.RegularExpressions;
namespace Tribufu.Serialization
{
public class NetworkAwareSnakeCaseNamingStrategy : SnakeCaseNamingStrategy
{
private static readonly string[] KnownAcronyms = new string[] { "IPv4", "IPv6" };
protected override string ResolvePropertyName(string name)
{
if (string.IsNullOrEmpty(name))
{
return name;
}
foreach (var acr in KnownAcronyms)
{
name = Regex.Replace(name, acr, acr.ToLower());
}
var snake = base.ResolvePropertyName(name);
foreach (var acr in KnownAcronyms)
{
var lower = acr.ToLower();
snake = snake.Replace(lower.Replace("_", ""), lower);
}
return snake;
}
}
}

View File

@@ -0,0 +1 @@
# Tribufu Serialization

View File

@@ -0,0 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Tribufu.Serialization</PackageId>
<Description>Tribufu Serialization</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IsPublishable>false</IsPublishable>
<OutputType>Library</OutputType>
<TargetFrameworks>netstandard2.0;net45;net5.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,45 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Newtonsoft.Json;
using System;
namespace Tribufu.Serialization
{
public class ULongNullableStringConverter : JsonConverter<ulong?>
{
public override ulong? ReadJson(JsonReader reader, Type objectType, ulong? existingValue, bool hasExistingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.Null)
{
return null;
}
if (reader.TokenType == JsonToken.String || reader.TokenType == JsonToken.Integer)
{
string value = reader.Value?.ToString();
if (string.IsNullOrWhiteSpace(value))
{
return null;
}
return ulong.Parse(value);
}
throw new JsonSerializationException($"Unexpected token {reader.TokenType} when parsing ulong?.");
}
public override void WriteJson(JsonWriter writer, ulong? value, JsonSerializer serializer)
{
if (value.HasValue)
{
writer.WriteValue(value.Value.ToString());
}
else
{
writer.WriteNull();
}
}
}
}

View File

@@ -0,0 +1,31 @@
// Copyright (c) Tribufu. All Rights Reserved.
// SPDX-License-Identifier: MIT
using Newtonsoft.Json;
using System;
namespace Tribufu.Serialization
{
public class ULongStringConverter : JsonConverter<ulong>
{
public override ulong ReadJson(JsonReader reader, Type objectType, ulong existingValue, bool hasExistingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.String && ulong.TryParse(reader.Value?.ToString(), out var result))
{
return result;
}
if (reader.TokenType == JsonToken.Integer)
{
return Convert.ToUInt64(reader.Value);
}
throw new JsonSerializationException($"Unexpected token {reader.TokenType} when parsing ulong.");
}
public override void WriteJson(JsonWriter writer, ulong value, JsonSerializer serializer)
{
writer.WriteValue(value.ToString());
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -23,6 +23,7 @@ using System.Text;
using System.Threading; using System.Threading;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Web;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Serialization; using Newtonsoft.Json.Serialization;
using RestSharp; using RestSharp;
@@ -30,9 +31,9 @@ using RestSharp.Serializers;
using RestSharpMethod = RestSharp.Method; using RestSharpMethod = RestSharp.Method;
using FileIO = System.IO.File; using FileIO = System.IO.File;
using Polly; using Polly;
using Tribufu.Generated.Model; using Tribufu.Model;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Allows RestSharp to Serialize/Deserialize JSON using our custom logic, but only when ContentType is JSON. /// Allows RestSharp to Serialize/Deserialize JSON using our custom logic, but only when ContentType is JSON.

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -11,7 +11,7 @@
using System; using System;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// API Exception /// API Exception

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -13,7 +13,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Net; using System.Net;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Provides a non-generic contract for the ApiResponse wrapper. /// Provides a non-generic contract for the ApiResponse wrapper.

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -19,7 +19,7 @@ using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Utility functions providing some benefit to API client consumers. /// Utility functions providing some benefit to API client consumers.
@@ -101,12 +101,6 @@ namespace Tribufu.Generated.Client
// https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Anchor_8 // https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Anchor_8
// For example: 2009-06-15T13:45:30.0000000 // For example: 2009-06-15T13:45:30.0000000
return dateTimeOffset.ToString((configuration ?? GlobalConfiguration.Instance).DateTimeFormat); return dateTimeOffset.ToString((configuration ?? GlobalConfiguration.Instance).DateTimeFormat);
if (obj is DateOnly dateOnly)
// Return a formatted date string - Can be customized with Configuration.DateTimeFormat
// Defaults to an ISO 8601, using the known as a Round-trip date/time pattern ("o")
// https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx#Anchor_8
// For example: 2009-06-15
return dateOnly.ToString((configuration ?? GlobalConfiguration.Instance).DateTimeFormat);
if (obj is bool boolean) if (obj is bool boolean)
return boolean ? "true" : "false"; return boolean ? "true" : "false";
if (obj is ICollection collection) { if (obj is ICollection collection) {

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -21,7 +21,7 @@ using System.Text;
using System.Net.Http; using System.Net.Http;
using System.Net.Security; using System.Net.Security;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Represents a set of configuration settings /// Represents a set of configuration settings
@@ -537,10 +537,10 @@ namespace Tribufu.Generated.Client
/// </summary> /// </summary>
public static string ToDebugReport() public static string ToDebugReport()
{ {
string report = "C# SDK (Tribufu.Generated) Debug Report:\n"; string report = "C# SDK (Tribufu) Debug Report:\n";
report += " OS: " + System.Environment.OSVersion + "\n"; report += " OS: " + System.Environment.OSVersion + "\n";
report += " .NET Framework Version: " + System.Environment.Version + "\n"; report += " .NET Framework Version: " + System.Environment.Version + "\n";
report += " Version of the API: 1.1.0\n"; report += " Version of the API: 1.3.0\n";
report += " SDK Package Version: 1.0.0\n"; report += " SDK Package Version: 1.0.0\n";
return report; return report;

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -11,7 +11,7 @@
using System; using System;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// A delegate to ExceptionFactory method /// A delegate to ExceptionFactory method

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -11,7 +11,7 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// <see cref="GlobalConfiguration"/> provides a compile-time extension point for globally configuring /// <see cref="GlobalConfiguration"/> provides a compile-time extension point for globally configuring

View File

@@ -1,15 +1,15 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Http methods supported by swagger /// Http methods supported by swagger

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -11,7 +11,7 @@
using System; using System;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Represents configuration aspects required to interact with the API endpoints. /// Represents configuration aspects required to interact with the API endpoints.

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -12,7 +12,7 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Contract for Asynchronous RESTful API interactions. /// Contract for Asynchronous RESTful API interactions.

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -15,7 +15,7 @@ using System.Net;
using System.Net.Security; using System.Net.Security;
using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.X509Certificates;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Represents a readable-only configuration contract. /// Represents a readable-only configuration contract.

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -12,7 +12,7 @@
using System; using System;
using System.IO; using System.IO;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Contract for Synchronous RESTful API interactions. /// Contract for Synchronous RESTful API interactions.

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -13,7 +13,7 @@ using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// A dictionary in which one key has many associated values. /// A dictionary in which one key has many associated values.

View File

@@ -1,16 +1,16 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Formatter for 'date' openapi formats ss defined by full-date - RFC3339 /// Formatter for 'date' openapi formats ss defined by full-date - RFC3339

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -14,7 +14,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Net; using System.Net;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// A container for generalized request inputs. This type allows consumers to extend the request functionality /// A container for generalized request inputs. This type allows consumers to extend the request functionality

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -12,7 +12,7 @@
using Polly; using Polly;
using RestSharp; using RestSharp;
namespace Tribufu.Generated.Client namespace Tribufu.Client
{ {
/// <summary> /// <summary>
/// Configuration class to set the polly retry policies to be applied to the requests. /// Configuration class to set the polly retry policies to be applied to the requests.

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -13,7 +13,7 @@ using System;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Serialization; using Newtonsoft.Json.Serialization;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Abstract base class for oneOf, anyOf schemas in the OpenAPI specification /// Abstract base class for oneOf, anyOf schemas in the OpenAPI specification

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Account /// Account
@@ -36,24 +36,34 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Provider /// Gets or Sets Provider
/// </summary> /// </summary>
[DataMember(Name = "provider", EmitDefaultValue = false)] [DataMember(Name = "provider", IsRequired = true, EmitDefaultValue = true)]
public LoginProvider? Provider { get; set; } public LoginProvider Provider { get; set; }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Account" /> class. /// Initializes a new instance of the <see cref="Account" /> class.
/// </summary> /// </summary>
/// <param name="id">id.</param> [JsonConstructorAttribute]
protected Account() { }
/// <summary>
/// Initializes a new instance of the <see cref="Account" /> class.
/// </summary>
/// <param name="id">id (required).</param>
/// <param name="name">name.</param> /// <param name="name">name.</param>
/// <param name="provider">provider.</param> /// <param name="provider">provider (required).</param>
/// <param name="userId">userId.</param> /// <param name="userId">userId.</param>
/// <param name="authorized">authorized.</param> /// <param name="authorized">authorized.</param>
/// <param name="fields">fields.</param> /// <param name="fields">fields.</param>
/// <param name="created">created.</param> /// <param name="created">created.</param>
/// <param name="updated">updated.</param> /// <param name="updated">updated.</param>
public Account(string id = default(string), string name = default(string), LoginProvider? provider = default(LoginProvider?), string userId = default(string), bool authorized = default(bool), Object fields = default(Object), DateTime created = default(DateTime), DateTime? updated = default(DateTime?)) public Account(string id = default(string), string name = default(string), LoginProvider provider = default(LoginProvider), string userId = default(string), bool authorized = default(bool), Object fields = default(Object), DateTime created = default(DateTime), DateTime? updated = default(DateTime?))
{ {
// to ensure "id" is required (not null)
if (id == null)
{
throw new ArgumentNullException("id is a required property for Account and cannot be null");
}
this.Id = id; this.Id = id;
this.Name = name;
this.Provider = provider; this.Provider = provider;
this.Name = name;
this.UserId = userId; this.UserId = userId;
this.Authorized = authorized; this.Authorized = authorized;
this.Fields = fields; this.Fields = fields;
@@ -64,7 +74,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Id /// Gets or Sets Id
/// </summary> /// </summary>
[DataMember(Name = "id", EmitDefaultValue = true)] [DataMember(Name = "id", IsRequired = true, EmitDefaultValue = true)]
public string Id { get; set; } public string Id { get; set; }
/// <summary> /// <summary>

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Application /// Application
@@ -41,8 +41,13 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Application" /> class. /// Initializes a new instance of the <see cref="Application" /> class.
/// </summary> /// </summary>
[JsonConstructorAttribute]
protected Application() { }
/// <summary>
/// Initializes a new instance of the <see cref="Application" /> class.
/// </summary>
/// <param name="id">id.</param> /// <param name="id">id.</param>
/// <param name="name">name.</param> /// <param name="name">name (required).</param>
/// <param name="description">description.</param> /// <param name="description">description.</param>
/// <param name="type">type.</param> /// <param name="type">type.</param>
/// <param name="organizationId">organizationId.</param> /// <param name="organizationId">organizationId.</param>
@@ -50,21 +55,18 @@ namespace Tribufu.Generated.Model
/// <param name="bannerUrl">bannerUrl.</param> /// <param name="bannerUrl">bannerUrl.</param>
/// <param name="capsuleImageUrl">capsuleImageUrl.</param> /// <param name="capsuleImageUrl">capsuleImageUrl.</param>
/// <param name="libraryImageUrl">libraryImageUrl.</param> /// <param name="libraryImageUrl">libraryImageUrl.</param>
/// <param name="parentId">parentId.</param>
/// <param name="slug">slug.</param> /// <param name="slug">slug.</param>
/// <param name="visibility">visibility.</param>
/// <param name="password">password.</param>
/// <param name="primary">primary.</param>
/// <param name="userCount">userCount.</param>
/// <param name="achievementCount">achievementCount.</param>
/// <param name="badgeCount">badgeCount.</param>
/// <param name="downloadCount">downloadCount.</param>
/// <param name="created">created.</param> /// <param name="created">created.</param>
/// <param name="updated">updated.</param> /// <param name="updated">updated.</param>
public Application(string id = default(string), string name = default(string), string description = default(string), ApplicationType? type = default(ApplicationType?), string organizationId = default(string), string iconUrl = default(string), string bannerUrl = default(string), string capsuleImageUrl = default(string), string libraryImageUrl = default(string), string parentId = default(string), string slug = default(string), int visibility = default(int), string password = default(string), int primary = default(int), int userCount = default(int), int achievementCount = default(int), int? badgeCount = default(int?), int downloadCount = default(int), DateTime created = default(DateTime), DateTime? updated = default(DateTime?)) public Application(string id = default(string), string name = default(string), string description = default(string), ApplicationType? type = default(ApplicationType?), string organizationId = default(string), string iconUrl = default(string), string bannerUrl = default(string), string capsuleImageUrl = default(string), string libraryImageUrl = default(string), string slug = default(string), DateTime created = default(DateTime), DateTime? updated = default(DateTime?))
{ {
this.Id = id; // to ensure "name" is required (not null)
if (name == null)
{
throw new ArgumentNullException("name is a required property for Application and cannot be null");
}
this.Name = name; this.Name = name;
this.Id = id;
this.Description = description; this.Description = description;
this.Type = type; this.Type = type;
this.OrganizationId = organizationId; this.OrganizationId = organizationId;
@@ -72,15 +74,7 @@ namespace Tribufu.Generated.Model
this.BannerUrl = bannerUrl; this.BannerUrl = bannerUrl;
this.CapsuleImageUrl = capsuleImageUrl; this.CapsuleImageUrl = capsuleImageUrl;
this.LibraryImageUrl = libraryImageUrl; this.LibraryImageUrl = libraryImageUrl;
this.ParentId = parentId;
this.Slug = slug; this.Slug = slug;
this.Visibility = visibility;
this.Password = password;
this.Primary = primary;
this.UserCount = userCount;
this.AchievementCount = achievementCount;
this.BadgeCount = badgeCount;
this.DownloadCount = downloadCount;
this.Created = created; this.Created = created;
this.Updated = updated; this.Updated = updated;
} }
@@ -94,7 +88,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Name /// Gets or Sets Name
/// </summary> /// </summary>
[DataMember(Name = "name", EmitDefaultValue = true)] [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; } public string Name { get; set; }
/// <summary> /// <summary>
@@ -133,60 +127,12 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "library_image_url", EmitDefaultValue = true)] [DataMember(Name = "library_image_url", EmitDefaultValue = true)]
public string LibraryImageUrl { get; set; } public string LibraryImageUrl { get; set; }
/// <summary>
/// Gets or Sets ParentId
/// </summary>
[DataMember(Name = "parent_id", EmitDefaultValue = true)]
public string ParentId { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Slug /// Gets or Sets Slug
/// </summary> /// </summary>
[DataMember(Name = "slug", EmitDefaultValue = true)] [DataMember(Name = "slug", EmitDefaultValue = true)]
public string Slug { get; set; } public string Slug { get; set; }
/// <summary>
/// Gets or Sets Visibility
/// </summary>
[DataMember(Name = "visibility", EmitDefaultValue = false)]
public int Visibility { get; set; }
/// <summary>
/// Gets or Sets Password
/// </summary>
[DataMember(Name = "password", EmitDefaultValue = true)]
public string Password { get; set; }
/// <summary>
/// Gets or Sets Primary
/// </summary>
[DataMember(Name = "primary", EmitDefaultValue = false)]
public int Primary { get; set; }
/// <summary>
/// Gets or Sets UserCount
/// </summary>
[DataMember(Name = "user_count", EmitDefaultValue = false)]
public int UserCount { get; set; }
/// <summary>
/// Gets or Sets AchievementCount
/// </summary>
[DataMember(Name = "achievement_count", EmitDefaultValue = false)]
public int AchievementCount { get; set; }
/// <summary>
/// Gets or Sets BadgeCount
/// </summary>
[DataMember(Name = "badge_count", EmitDefaultValue = true)]
public int? BadgeCount { get; set; }
/// <summary>
/// Gets or Sets DownloadCount
/// </summary>
[DataMember(Name = "download_count", EmitDefaultValue = false)]
public int DownloadCount { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Created /// Gets or Sets Created
/// </summary> /// </summary>
@@ -216,15 +162,7 @@ namespace Tribufu.Generated.Model
sb.Append(" BannerUrl: ").Append(BannerUrl).Append("\n"); sb.Append(" BannerUrl: ").Append(BannerUrl).Append("\n");
sb.Append(" CapsuleImageUrl: ").Append(CapsuleImageUrl).Append("\n"); sb.Append(" CapsuleImageUrl: ").Append(CapsuleImageUrl).Append("\n");
sb.Append(" LibraryImageUrl: ").Append(LibraryImageUrl).Append("\n"); sb.Append(" LibraryImageUrl: ").Append(LibraryImageUrl).Append("\n");
sb.Append(" ParentId: ").Append(ParentId).Append("\n");
sb.Append(" Slug: ").Append(Slug).Append("\n"); sb.Append(" Slug: ").Append(Slug).Append("\n");
sb.Append(" Visibility: ").Append(Visibility).Append("\n");
sb.Append(" Password: ").Append(Password).Append("\n");
sb.Append(" Primary: ").Append(Primary).Append("\n");
sb.Append(" UserCount: ").Append(UserCount).Append("\n");
sb.Append(" AchievementCount: ").Append(AchievementCount).Append("\n");
sb.Append(" BadgeCount: ").Append(BadgeCount).Append("\n");
sb.Append(" DownloadCount: ").Append(DownloadCount).Append("\n");
sb.Append(" Created: ").Append(Created).Append("\n"); sb.Append(" Created: ").Append(Created).Append("\n");
sb.Append(" Updated: ").Append(Updated).Append("\n"); sb.Append(" Updated: ").Append(Updated).Append("\n");
sb.Append("}\n"); sb.Append("}\n");
@@ -277,6 +215,12 @@ namespace Tribufu.Generated.Model
yield return new ValidationResult("Invalid value for LibraryImageUrl, length must be less than 255.", new [] { "LibraryImageUrl" }); yield return new ValidationResult("Invalid value for LibraryImageUrl, length must be less than 255.", new [] { "LibraryImageUrl" });
} }
// Slug (string) maxLength
if (this.Slug != null && this.Slug.Length > 75)
{
yield return new ValidationResult("Invalid value for Slug, length must be less than 75.", new [] { "Slug" });
}
yield break; yield break;
} }
} }

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Defines ApplicationType /// Defines ApplicationType

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// AuthorizeRequest /// AuthorizeRequest
@@ -47,20 +47,35 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="AuthorizeRequest" /> class. /// Initializes a new instance of the <see cref="AuthorizeRequest" /> class.
/// </summary> /// </summary>
[JsonConstructorAttribute]
protected AuthorizeRequest() { }
/// <summary>
/// Initializes a new instance of the <see cref="AuthorizeRequest" /> class.
/// </summary>
/// <param name="responseType">responseType.</param> /// <param name="responseType">responseType.</param>
/// <param name="clientId">clientId.</param> /// <param name="clientId">clientId (required).</param>
/// <param name="codeChallenge">codeChallenge.</param> /// <param name="codeChallenge">codeChallenge.</param>
/// <param name="codeChallengeMethod">codeChallengeMethod.</param> /// <param name="codeChallengeMethod">codeChallengeMethod.</param>
/// <param name="redirectUri">redirectUri.</param> /// <param name="redirectUri">redirectUri (required).</param>
/// <param name="scope">scope.</param> /// <param name="scope">scope.</param>
/// <param name="state">state.</param> /// <param name="state">state.</param>
public AuthorizeRequest(ResponseType? responseType = default(ResponseType?), string clientId = default(string), string codeChallenge = default(string), CodeChallengeMethod? codeChallengeMethod = default(CodeChallengeMethod?), string redirectUri = default(string), string scope = default(string), string state = default(string)) public AuthorizeRequest(ResponseType? responseType = default(ResponseType?), string clientId = default(string), string codeChallenge = default(string), CodeChallengeMethod? codeChallengeMethod = default(CodeChallengeMethod?), string redirectUri = default(string), string scope = default(string), string state = default(string))
{ {
this.ResponseType = responseType; // to ensure "clientId" is required (not null)
if (clientId == null)
{
throw new ArgumentNullException("clientId is a required property for AuthorizeRequest and cannot be null");
}
this.ClientId = clientId; this.ClientId = clientId;
// to ensure "redirectUri" is required (not null)
if (redirectUri == null)
{
throw new ArgumentNullException("redirectUri is a required property for AuthorizeRequest and cannot be null");
}
this.RedirectUri = redirectUri;
this.ResponseType = responseType;
this.CodeChallenge = codeChallenge; this.CodeChallenge = codeChallenge;
this.CodeChallengeMethod = codeChallengeMethod; this.CodeChallengeMethod = codeChallengeMethod;
this.RedirectUri = redirectUri;
this.Scope = scope; this.Scope = scope;
this.State = state; this.State = state;
} }
@@ -68,7 +83,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets ClientId /// Gets or Sets ClientId
/// </summary> /// </summary>
[DataMember(Name = "client_id", EmitDefaultValue = true)] [DataMember(Name = "client_id", IsRequired = true, EmitDefaultValue = true)]
public string ClientId { get; set; } public string ClientId { get; set; }
/// <summary> /// <summary>
@@ -80,7 +95,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets RedirectUri /// Gets or Sets RedirectUri
/// </summary> /// </summary>
[DataMember(Name = "redirect_uri", EmitDefaultValue = true)] [DataMember(Name = "redirect_uri", IsRequired = true, EmitDefaultValue = true)]
public string RedirectUri { get; set; } public string RedirectUri { get; set; }
/// <summary> /// <summary>

View File

@@ -0,0 +1,129 @@
/*
* Tribufu API
*
* API to access Tribufu services.
*
* The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Model
{
/// <summary>
/// ClientInfo
/// </summary>
[DataContract(Name = "ClientInfo")]
public partial class ClientInfo : IValidatableObject
{
/// <summary>
/// Gets or Sets Type
/// </summary>
[DataMember(Name = "type", EmitDefaultValue = false)]
public ClientType? Type { get; set; }
/// <summary>
/// Initializes a new instance of the <see cref="ClientInfo" /> class.
/// </summary>
[JsonConstructorAttribute]
protected ClientInfo() { }
/// <summary>
/// Initializes a new instance of the <see cref="ClientInfo" /> class.
/// </summary>
/// <param name="id">id.</param>
/// <param name="name">name (required).</param>
/// <param name="type">type.</param>
/// <param name="photoUrl">photoUrl.</param>
/// <param name="permissions">permissions.</param>
public ClientInfo(string id = default(string), string name = default(string), ClientType? type = default(ClientType?), string photoUrl = default(string), List<string> permissions = default(List<string>))
{
// to ensure "name" is required (not null)
if (name == null)
{
throw new ArgumentNullException("name is a required property for ClientInfo and cannot be null");
}
this.Name = name;
this.Id = id;
this.Type = type;
this.PhotoUrl = photoUrl;
this.Permissions = permissions;
}
/// <summary>
/// Gets or Sets Id
/// </summary>
[DataMember(Name = "id", EmitDefaultValue = false)]
public string Id { get; set; }
/// <summary>
/// Gets or Sets Name
/// </summary>
[DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; }
/// <summary>
/// Gets or Sets PhotoUrl
/// </summary>
[DataMember(Name = "photo_url", EmitDefaultValue = true)]
public string PhotoUrl { get; set; }
/// <summary>
/// Gets or Sets Permissions
/// </summary>
[DataMember(Name = "permissions", EmitDefaultValue = true)]
public List<string> Permissions { get; set; }
/// <summary>
/// Returns the string presentation of the object
/// </summary>
/// <returns>String presentation of the object</returns>
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append("class ClientInfo {\n");
sb.Append(" Id: ").Append(Id).Append("\n");
sb.Append(" Name: ").Append(Name).Append("\n");
sb.Append(" Type: ").Append(Type).Append("\n");
sb.Append(" PhotoUrl: ").Append(PhotoUrl).Append("\n");
sb.Append(" Permissions: ").Append(Permissions).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
/// <summary>
/// Returns the JSON string presentation of the object
/// </summary>
/// <returns>JSON string presentation of the object</returns>
public virtual string ToJson()
{
return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
}
/// <summary>
/// To validate all properties of the instance
/// </summary>
/// <param name="validationContext">Validation context</param>
/// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
yield break;
}
}
}

View File

@@ -0,0 +1,54 @@
/*
* Tribufu API
*
* API to access Tribufu services.
*
* The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Model
{
/// <summary>
/// Defines ClientType
/// </summary>
[JsonConverter(typeof(StringEnumConverter))]
public enum ClientType
{
/// <summary>
/// Enum Web for value: web
/// </summary>
[EnumMember(Value = "web")]
Web,
/// <summary>
/// Enum Desktop for value: desktop
/// </summary>
[EnumMember(Value = "desktop")]
Desktop,
/// <summary>
/// Enum Mobile for value: mobile
/// </summary>
[EnumMember(Value = "mobile")]
Mobile
}
}

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Defines CodeChallengeMethod /// Defines CodeChallengeMethod

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,38 +22,48 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// LoginRequest /// CodeResponse
/// </summary> /// </summary>
[DataContract(Name = "LoginRequest")] [DataContract(Name = "CodeResponse")]
public partial class LoginRequest : IValidatableObject public partial class CodeResponse : IValidatableObject
{ {
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="LoginRequest" /> class. /// Initializes a new instance of the <see cref="CodeResponse" /> class.
/// </summary> /// </summary>
/// <param name="login">login.</param> [JsonConstructorAttribute]
/// <param name="password">password.</param> protected CodeResponse() { }
public LoginRequest(string login = default(string), string password = default(string)) /// <summary>
/// Initializes a new instance of the <see cref="CodeResponse" /> class.
/// </summary>
/// <param name="code">code (required).</param>
/// <param name="state">state.</param>
public CodeResponse(string code = default(string), string state = default(string))
{ {
this.Login = login; // to ensure "code" is required (not null)
this.Password = password; if (code == null)
{
throw new ArgumentNullException("code is a required property for CodeResponse and cannot be null");
}
this.Code = code;
this.State = state;
} }
/// <summary> /// <summary>
/// Gets or Sets Login /// Gets or Sets Code
/// </summary> /// </summary>
[DataMember(Name = "login", EmitDefaultValue = true)] [DataMember(Name = "code", IsRequired = true, EmitDefaultValue = true)]
public string Login { get; set; } public string Code { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Password /// Gets or Sets State
/// </summary> /// </summary>
[DataMember(Name = "password", EmitDefaultValue = true)] [DataMember(Name = "state", EmitDefaultValue = true)]
public string Password { get; set; } public string State { get; set; }
/// <summary> /// <summary>
/// Returns the string presentation of the object /// Returns the string presentation of the object
@@ -62,9 +72,9 @@ namespace Tribufu.Generated.Model
public override string ToString() public override string ToString()
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.Append("class LoginRequest {\n"); sb.Append("class CodeResponse {\n");
sb.Append(" Login: ").Append(Login).Append("\n"); sb.Append(" Code: ").Append(Code).Append("\n");
sb.Append(" Password: ").Append(Password).Append("\n"); sb.Append(" State: ").Append(State).Append("\n");
sb.Append("}\n"); sb.Append("}\n");
return sb.ToString(); return sb.ToString();
} }

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,44 +22,49 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// RegisterRequest /// CreateUser
/// </summary> /// </summary>
[DataContract(Name = "RegisterRequest")] [DataContract(Name = "CreateUser")]
public partial class RegisterRequest : IValidatableObject public partial class CreateUser : IValidatableObject
{ {
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="RegisterRequest" /> class. /// Initializes a new instance of the <see cref="CreateUser" /> class.
/// </summary> /// </summary>
[JsonConstructorAttribute] [JsonConstructorAttribute]
protected RegisterRequest() { } protected CreateUser() { }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="RegisterRequest" /> class. /// Initializes a new instance of the <see cref="CreateUser" /> class.
/// </summary> /// </summary>
/// <param name="uuid">uuid.</param> /// <param name="uuid">uuid.</param>
/// <param name="name">name (required).</param> /// <param name="name">name (required).</param>
/// <param name="displayName">displayName.</param>
/// <param name="email">email.</param> /// <param name="email">email.</param>
/// <param name="password">password (required).</param> /// <param name="password">password.</param>
public RegisterRequest(Guid? uuid = default(Guid?), string name = default(string), string email = default(string), string password = default(string)) /// <param name="language">language.</param>
/// <param name="timezone">timezone.</param>
/// <param name="currency">currency.</param>
/// <param name="ipAddress">ipAddress.</param>
public CreateUser(Guid? uuid = default(Guid?), string name = default(string), string displayName = default(string), string email = default(string), string password = default(string), string language = default(string), string timezone = default(string), string currency = default(string), string ipAddress = default(string))
{ {
// to ensure "name" is required (not null) // to ensure "name" is required (not null)
if (name == null) if (name == null)
{ {
throw new ArgumentNullException("name is a required property for RegisterRequest and cannot be null"); throw new ArgumentNullException("name is a required property for CreateUser and cannot be null");
} }
this.Name = name; this.Name = name;
// to ensure "password" is required (not null)
if (password == null)
{
throw new ArgumentNullException("password is a required property for RegisterRequest and cannot be null");
}
this.Password = password;
this.Uuid = uuid; this.Uuid = uuid;
this.DisplayName = displayName;
this.Email = email; this.Email = email;
this.Password = password;
this.Language = language;
this.Timezone = timezone;
this.Currency = currency;
this.IpAddress = ipAddress;
} }
/// <summary> /// <summary>
@@ -74,6 +79,12 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)] [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; } public string Name { get; set; }
/// <summary>
/// Gets or Sets DisplayName
/// </summary>
[DataMember(Name = "display_name", EmitDefaultValue = true)]
public string DisplayName { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Email /// Gets or Sets Email
/// </summary> /// </summary>
@@ -83,9 +94,33 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Password /// Gets or Sets Password
/// </summary> /// </summary>
[DataMember(Name = "password", IsRequired = true, EmitDefaultValue = true)] [DataMember(Name = "password", EmitDefaultValue = true)]
public string Password { get; set; } public string Password { get; set; }
/// <summary>
/// Gets or Sets Language
/// </summary>
[DataMember(Name = "language", EmitDefaultValue = true)]
public string Language { get; set; }
/// <summary>
/// Gets or Sets Timezone
/// </summary>
[DataMember(Name = "timezone", EmitDefaultValue = true)]
public string Timezone { get; set; }
/// <summary>
/// Gets or Sets Currency
/// </summary>
[DataMember(Name = "currency", EmitDefaultValue = true)]
public string Currency { get; set; }
/// <summary>
/// Gets or Sets IpAddress
/// </summary>
[DataMember(Name = "ip_address", EmitDefaultValue = true)]
public string IpAddress { get; set; }
/// <summary> /// <summary>
/// Returns the string presentation of the object /// Returns the string presentation of the object
/// </summary> /// </summary>
@@ -93,11 +128,16 @@ namespace Tribufu.Generated.Model
public override string ToString() public override string ToString()
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.Append("class RegisterRequest {\n"); sb.Append("class CreateUser {\n");
sb.Append(" Uuid: ").Append(Uuid).Append("\n"); sb.Append(" Uuid: ").Append(Uuid).Append("\n");
sb.Append(" Name: ").Append(Name).Append("\n"); sb.Append(" Name: ").Append(Name).Append("\n");
sb.Append(" DisplayName: ").Append(DisplayName).Append("\n");
sb.Append(" Email: ").Append(Email).Append("\n"); sb.Append(" Email: ").Append(Email).Append("\n");
sb.Append(" Password: ").Append(Password).Append("\n"); sb.Append(" Password: ").Append(Password).Append("\n");
sb.Append(" Language: ").Append(Language).Append("\n");
sb.Append(" Timezone: ").Append(Timezone).Append("\n");
sb.Append(" Currency: ").Append(Currency).Append("\n");
sb.Append(" IpAddress: ").Append(IpAddress).Append("\n");
sb.Append("}\n"); sb.Append("}\n");
return sb.ToString(); return sb.ToString();
} }
@@ -125,9 +165,9 @@ namespace Tribufu.Generated.Model
} }
// Name (string) minLength // Name (string) minLength
if (this.Name != null && this.Name.Length < 3) if (this.Name != null && this.Name.Length < 1)
{ {
yield return new ValidationResult("Invalid value for Name, length must be greater than 3.", new [] { "Name" }); yield return new ValidationResult("Invalid value for Name, length must be greater than 1.", new [] { "Name" });
} }
if (this.Name != null) { if (this.Name != null) {
@@ -139,25 +179,43 @@ namespace Tribufu.Generated.Model
} }
} }
// DisplayName (string) maxLength
if (this.DisplayName != null && this.DisplayName.Length > 45)
{
yield return new ValidationResult("Invalid value for DisplayName, length must be less than 45.", new [] { "DisplayName" });
}
if (this.DisplayName != null) {
// DisplayName (string) pattern
Regex regexDisplayName = new Regex(@"^[a-zA-Z0-9-_ ]*$", RegexOptions.CultureInvariant);
if (!regexDisplayName.Match(this.DisplayName).Success)
{
yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for DisplayName, must match a pattern of " + regexDisplayName, new [] { "DisplayName" });
}
}
// Email (string) maxLength // Email (string) maxLength
if (this.Email != null && this.Email.Length > 255) if (this.Email != null && this.Email.Length > 255)
{ {
yield return new ValidationResult("Invalid value for Email, length must be less than 255.", new [] { "Email" }); yield return new ValidationResult("Invalid value for Email, length must be less than 255.", new [] { "Email" });
} }
if (this.Email != null) { // Language (string) maxLength
// Email (string) pattern if (this.Language != null && this.Language.Length > 5)
Regex regexEmail = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$", RegexOptions.CultureInvariant); {
if (!regexEmail.Match(this.Email).Success) yield return new ValidationResult("Invalid value for Language, length must be less than 5.", new [] { "Language" });
{
yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Email, must match a pattern of " + regexEmail, new [] { "Email" });
}
} }
// Password (string) minLength // Currency (string) maxLength
if (this.Password != null && this.Password.Length < 1) if (this.Currency != null && this.Currency.Length > 3)
{ {
yield return new ValidationResult("Invalid value for Password, length must be greater than 1.", new [] { "Password" }); yield return new ValidationResult("Invalid value for Currency, length must be less than 3.", new [] { "Currency" });
}
// IpAddress (string) maxLength
if (this.IpAddress != null && this.IpAddress.Length > 255)
{
yield return new ValidationResult("Invalid value for IpAddress, length must be less than 255.", new [] { "IpAddress" });
} }
yield break; yield break;

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// CryptoViewModel /// CryptoViewModel

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Game /// Game
@@ -41,19 +41,13 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Game" /> class. /// Initializes a new instance of the <see cref="Game" /> class.
/// </summary> /// </summary>
/// <param name="gamePort">gamePort.</param> [JsonConstructorAttribute]
/// <param name="queryPort">queryPort.</param> protected Game() { }
/// <param name="rconPort">rconPort.</param> /// <summary>
/// <param name="serverCount">serverCount.</param> /// Initializes a new instance of the <see cref="Game" /> class.
/// <param name="steamAppId">steamAppId.</param> /// </summary>
/// <param name="steamServerAppId">steamServerAppId.</param>
/// <param name="enableServers">enableServers.</param>
/// <param name="rustGamedigId">rustGamedigId.</param>
/// <param name="nodeGamedigId">nodeGamedigId.</param>
/// <param name="serverConnectUrl">serverConnectUrl.</param>
/// <param name="serverTags">serverTags.</param>
/// <param name="id">id.</param> /// <param name="id">id.</param>
/// <param name="name">name.</param> /// <param name="name">name (required).</param>
/// <param name="description">description.</param> /// <param name="description">description.</param>
/// <param name="type">type.</param> /// <param name="type">type.</param>
/// <param name="organizationId">organizationId.</param> /// <param name="organizationId">organizationId.</param>
@@ -61,32 +55,25 @@ namespace Tribufu.Generated.Model
/// <param name="bannerUrl">bannerUrl.</param> /// <param name="bannerUrl">bannerUrl.</param>
/// <param name="capsuleImageUrl">capsuleImageUrl.</param> /// <param name="capsuleImageUrl">capsuleImageUrl.</param>
/// <param name="libraryImageUrl">libraryImageUrl.</param> /// <param name="libraryImageUrl">libraryImageUrl.</param>
/// <param name="parentId">parentId.</param>
/// <param name="slug">slug.</param> /// <param name="slug">slug.</param>
/// <param name="visibility">visibility.</param>
/// <param name="password">password.</param>
/// <param name="primary">primary.</param>
/// <param name="userCount">userCount.</param>
/// <param name="achievementCount">achievementCount.</param>
/// <param name="badgeCount">badgeCount.</param>
/// <param name="downloadCount">downloadCount.</param>
/// <param name="created">created.</param> /// <param name="created">created.</param>
/// <param name="updated">updated.</param> /// <param name="updated">updated.</param>
public Game(int? gamePort = default(int?), int? queryPort = default(int?), int? rconPort = default(int?), int serverCount = default(int), int? steamAppId = default(int?), int? steamServerAppId = default(int?), bool enableServers = default(bool), string rustGamedigId = default(string), string nodeGamedigId = default(string), string serverConnectUrl = default(string), string serverTags = default(string), string id = default(string), string name = default(string), string description = default(string), ApplicationType? type = default(ApplicationType?), string organizationId = default(string), string iconUrl = default(string), string bannerUrl = default(string), string capsuleImageUrl = default(string), string libraryImageUrl = default(string), string parentId = default(string), string slug = default(string), int visibility = default(int), string password = default(string), int primary = default(int), int userCount = default(int), int achievementCount = default(int), int? badgeCount = default(int?), int downloadCount = default(int), DateTime created = default(DateTime), DateTime? updated = default(DateTime?)) /// <param name="enableServers">enableServers.</param>
/// <param name="gamePort">gamePort.</param>
/// <param name="queryPort">queryPort.</param>
/// <param name="rconPort">rconPort.</param>
/// <param name="gamedigId">gamedigId.</param>
/// <param name="steamAppId">steamAppId.</param>
/// <param name="steamServerAppId">steamServerAppId.</param>
public Game(string id = default(string), string name = default(string), string description = default(string), ApplicationType? type = default(ApplicationType?), string organizationId = default(string), string iconUrl = default(string), string bannerUrl = default(string), string capsuleImageUrl = default(string), string libraryImageUrl = default(string), string slug = default(string), DateTime created = default(DateTime), DateTime? updated = default(DateTime?), bool enableServers = default(bool), int? gamePort = default(int?), int? queryPort = default(int?), int? rconPort = default(int?), string gamedigId = default(string), int? steamAppId = default(int?), int? steamServerAppId = default(int?))
{ {
this.GamePort = gamePort; // to ensure "name" is required (not null)
this.QueryPort = queryPort; if (name == null)
this.RconPort = rconPort; {
this.ServerCount = serverCount; throw new ArgumentNullException("name is a required property for Game and cannot be null");
this.SteamAppId = steamAppId; }
this.SteamServerAppId = steamServerAppId;
this.EnableServers = enableServers;
this.RustGamedigId = rustGamedigId;
this.NodeGamedigId = nodeGamedigId;
this.ServerConnectUrl = serverConnectUrl;
this.ServerTags = serverTags;
this.Id = id;
this.Name = name; this.Name = name;
this.Id = id;
this.Description = description; this.Description = description;
this.Type = type; this.Type = type;
this.OrganizationId = organizationId; this.OrganizationId = organizationId;
@@ -94,85 +81,18 @@ namespace Tribufu.Generated.Model
this.BannerUrl = bannerUrl; this.BannerUrl = bannerUrl;
this.CapsuleImageUrl = capsuleImageUrl; this.CapsuleImageUrl = capsuleImageUrl;
this.LibraryImageUrl = libraryImageUrl; this.LibraryImageUrl = libraryImageUrl;
this.ParentId = parentId;
this.Slug = slug; this.Slug = slug;
this.Visibility = visibility;
this.Password = password;
this.Primary = primary;
this.UserCount = userCount;
this.AchievementCount = achievementCount;
this.BadgeCount = badgeCount;
this.DownloadCount = downloadCount;
this.Created = created; this.Created = created;
this.Updated = updated; this.Updated = updated;
this.EnableServers = enableServers;
this.GamePort = gamePort;
this.QueryPort = queryPort;
this.RconPort = rconPort;
this.GamedigId = gamedigId;
this.SteamAppId = steamAppId;
this.SteamServerAppId = steamServerAppId;
} }
/// <summary>
/// Gets or Sets GamePort
/// </summary>
[DataMember(Name = "game_port", EmitDefaultValue = true)]
public int? GamePort { get; set; }
/// <summary>
/// Gets or Sets QueryPort
/// </summary>
[DataMember(Name = "query_port", EmitDefaultValue = true)]
public int? QueryPort { get; set; }
/// <summary>
/// Gets or Sets RconPort
/// </summary>
[DataMember(Name = "rcon_port", EmitDefaultValue = true)]
public int? RconPort { get; set; }
/// <summary>
/// Gets or Sets ServerCount
/// </summary>
[DataMember(Name = "server_count", EmitDefaultValue = false)]
public int ServerCount { get; set; }
/// <summary>
/// Gets or Sets SteamAppId
/// </summary>
[DataMember(Name = "steam_app_id", EmitDefaultValue = true)]
public int? SteamAppId { get; set; }
/// <summary>
/// Gets or Sets SteamServerAppId
/// </summary>
[DataMember(Name = "steam_server_app_id", EmitDefaultValue = true)]
public int? SteamServerAppId { get; set; }
/// <summary>
/// Gets or Sets EnableServers
/// </summary>
[DataMember(Name = "enable_servers", EmitDefaultValue = true)]
public bool EnableServers { get; set; }
/// <summary>
/// Gets or Sets RustGamedigId
/// </summary>
[DataMember(Name = "rust_gamedig_id", EmitDefaultValue = true)]
public string RustGamedigId { get; set; }
/// <summary>
/// Gets or Sets NodeGamedigId
/// </summary>
[DataMember(Name = "node_gamedig_id", EmitDefaultValue = true)]
public string NodeGamedigId { get; set; }
/// <summary>
/// Gets or Sets ServerConnectUrl
/// </summary>
[DataMember(Name = "server_connect_url", EmitDefaultValue = true)]
public string ServerConnectUrl { get; set; }
/// <summary>
/// Gets or Sets ServerTags
/// </summary>
[DataMember(Name = "server_tags", EmitDefaultValue = true)]
public string ServerTags { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Id /// Gets or Sets Id
/// </summary> /// </summary>
@@ -182,7 +102,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Name /// Gets or Sets Name
/// </summary> /// </summary>
[DataMember(Name = "name", EmitDefaultValue = true)] [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; } public string Name { get; set; }
/// <summary> /// <summary>
@@ -221,60 +141,12 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "library_image_url", EmitDefaultValue = true)] [DataMember(Name = "library_image_url", EmitDefaultValue = true)]
public string LibraryImageUrl { get; set; } public string LibraryImageUrl { get; set; }
/// <summary>
/// Gets or Sets ParentId
/// </summary>
[DataMember(Name = "parent_id", EmitDefaultValue = true)]
public string ParentId { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Slug /// Gets or Sets Slug
/// </summary> /// </summary>
[DataMember(Name = "slug", EmitDefaultValue = true)] [DataMember(Name = "slug", EmitDefaultValue = true)]
public string Slug { get; set; } public string Slug { get; set; }
/// <summary>
/// Gets or Sets Visibility
/// </summary>
[DataMember(Name = "visibility", EmitDefaultValue = false)]
public int Visibility { get; set; }
/// <summary>
/// Gets or Sets Password
/// </summary>
[DataMember(Name = "password", EmitDefaultValue = true)]
public string Password { get; set; }
/// <summary>
/// Gets or Sets Primary
/// </summary>
[DataMember(Name = "primary", EmitDefaultValue = false)]
public int Primary { get; set; }
/// <summary>
/// Gets or Sets UserCount
/// </summary>
[DataMember(Name = "user_count", EmitDefaultValue = false)]
public int UserCount { get; set; }
/// <summary>
/// Gets or Sets AchievementCount
/// </summary>
[DataMember(Name = "achievement_count", EmitDefaultValue = false)]
public int AchievementCount { get; set; }
/// <summary>
/// Gets or Sets BadgeCount
/// </summary>
[DataMember(Name = "badge_count", EmitDefaultValue = true)]
public int? BadgeCount { get; set; }
/// <summary>
/// Gets or Sets DownloadCount
/// </summary>
[DataMember(Name = "download_count", EmitDefaultValue = false)]
public int DownloadCount { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Created /// Gets or Sets Created
/// </summary> /// </summary>
@@ -287,6 +159,48 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "updated", EmitDefaultValue = true)] [DataMember(Name = "updated", EmitDefaultValue = true)]
public DateTime? Updated { get; set; } public DateTime? Updated { get; set; }
/// <summary>
/// Gets or Sets EnableServers
/// </summary>
[DataMember(Name = "enable_servers", EmitDefaultValue = true)]
public bool EnableServers { get; set; }
/// <summary>
/// Gets or Sets GamePort
/// </summary>
[DataMember(Name = "game_port", EmitDefaultValue = true)]
public int? GamePort { get; set; }
/// <summary>
/// Gets or Sets QueryPort
/// </summary>
[DataMember(Name = "query_port", EmitDefaultValue = true)]
public int? QueryPort { get; set; }
/// <summary>
/// Gets or Sets RconPort
/// </summary>
[DataMember(Name = "rcon_port", EmitDefaultValue = true)]
public int? RconPort { get; set; }
/// <summary>
/// Gets or Sets GamedigId
/// </summary>
[DataMember(Name = "gamedig_id", EmitDefaultValue = true)]
public string GamedigId { get; set; }
/// <summary>
/// Gets or Sets SteamAppId
/// </summary>
[DataMember(Name = "steam_app_id", EmitDefaultValue = true)]
public int? SteamAppId { get; set; }
/// <summary>
/// Gets or Sets SteamServerAppId
/// </summary>
[DataMember(Name = "steam_server_app_id", EmitDefaultValue = true)]
public int? SteamServerAppId { get; set; }
/// <summary> /// <summary>
/// Returns the string presentation of the object /// Returns the string presentation of the object
/// </summary> /// </summary>
@@ -295,17 +209,6 @@ namespace Tribufu.Generated.Model
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.Append("class Game {\n"); sb.Append("class Game {\n");
sb.Append(" GamePort: ").Append(GamePort).Append("\n");
sb.Append(" QueryPort: ").Append(QueryPort).Append("\n");
sb.Append(" RconPort: ").Append(RconPort).Append("\n");
sb.Append(" ServerCount: ").Append(ServerCount).Append("\n");
sb.Append(" SteamAppId: ").Append(SteamAppId).Append("\n");
sb.Append(" SteamServerAppId: ").Append(SteamServerAppId).Append("\n");
sb.Append(" EnableServers: ").Append(EnableServers).Append("\n");
sb.Append(" RustGamedigId: ").Append(RustGamedigId).Append("\n");
sb.Append(" NodeGamedigId: ").Append(NodeGamedigId).Append("\n");
sb.Append(" ServerConnectUrl: ").Append(ServerConnectUrl).Append("\n");
sb.Append(" ServerTags: ").Append(ServerTags).Append("\n");
sb.Append(" Id: ").Append(Id).Append("\n"); sb.Append(" Id: ").Append(Id).Append("\n");
sb.Append(" Name: ").Append(Name).Append("\n"); sb.Append(" Name: ").Append(Name).Append("\n");
sb.Append(" Description: ").Append(Description).Append("\n"); sb.Append(" Description: ").Append(Description).Append("\n");
@@ -315,17 +218,16 @@ namespace Tribufu.Generated.Model
sb.Append(" BannerUrl: ").Append(BannerUrl).Append("\n"); sb.Append(" BannerUrl: ").Append(BannerUrl).Append("\n");
sb.Append(" CapsuleImageUrl: ").Append(CapsuleImageUrl).Append("\n"); sb.Append(" CapsuleImageUrl: ").Append(CapsuleImageUrl).Append("\n");
sb.Append(" LibraryImageUrl: ").Append(LibraryImageUrl).Append("\n"); sb.Append(" LibraryImageUrl: ").Append(LibraryImageUrl).Append("\n");
sb.Append(" ParentId: ").Append(ParentId).Append("\n");
sb.Append(" Slug: ").Append(Slug).Append("\n"); sb.Append(" Slug: ").Append(Slug).Append("\n");
sb.Append(" Visibility: ").Append(Visibility).Append("\n");
sb.Append(" Password: ").Append(Password).Append("\n");
sb.Append(" Primary: ").Append(Primary).Append("\n");
sb.Append(" UserCount: ").Append(UserCount).Append("\n");
sb.Append(" AchievementCount: ").Append(AchievementCount).Append("\n");
sb.Append(" BadgeCount: ").Append(BadgeCount).Append("\n");
sb.Append(" DownloadCount: ").Append(DownloadCount).Append("\n");
sb.Append(" Created: ").Append(Created).Append("\n"); sb.Append(" Created: ").Append(Created).Append("\n");
sb.Append(" Updated: ").Append(Updated).Append("\n"); sb.Append(" Updated: ").Append(Updated).Append("\n");
sb.Append(" EnableServers: ").Append(EnableServers).Append("\n");
sb.Append(" GamePort: ").Append(GamePort).Append("\n");
sb.Append(" QueryPort: ").Append(QueryPort).Append("\n");
sb.Append(" RconPort: ").Append(RconPort).Append("\n");
sb.Append(" GamedigId: ").Append(GamedigId).Append("\n");
sb.Append(" SteamAppId: ").Append(SteamAppId).Append("\n");
sb.Append(" SteamServerAppId: ").Append(SteamServerAppId).Append("\n");
sb.Append("}\n"); sb.Append("}\n");
return sb.ToString(); return sb.ToString();
} }
@@ -346,24 +248,6 @@ namespace Tribufu.Generated.Model
/// <returns>Validation Result</returns> /// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext) IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{ {
// RustGamedigId (string) maxLength
if (this.RustGamedigId != null && this.RustGamedigId.Length > 45)
{
yield return new ValidationResult("Invalid value for RustGamedigId, length must be less than 45.", new [] { "RustGamedigId" });
}
// NodeGamedigId (string) maxLength
if (this.NodeGamedigId != null && this.NodeGamedigId.Length > 45)
{
yield return new ValidationResult("Invalid value for NodeGamedigId, length must be less than 45.", new [] { "NodeGamedigId" });
}
// ServerConnectUrl (string) maxLength
if (this.ServerConnectUrl != null && this.ServerConnectUrl.Length > 255)
{
yield return new ValidationResult("Invalid value for ServerConnectUrl, length must be less than 255.", new [] { "ServerConnectUrl" });
}
// Name (string) maxLength // Name (string) maxLength
if (this.Name != null && this.Name.Length > 75) if (this.Name != null && this.Name.Length > 75)
{ {
@@ -394,6 +278,18 @@ namespace Tribufu.Generated.Model
yield return new ValidationResult("Invalid value for LibraryImageUrl, length must be less than 255.", new [] { "LibraryImageUrl" }); yield return new ValidationResult("Invalid value for LibraryImageUrl, length must be less than 255.", new [] { "LibraryImageUrl" });
} }
// Slug (string) maxLength
if (this.Slug != null && this.Slug.Length > 75)
{
yield return new ValidationResult("Invalid value for Slug, length must be less than 75.", new [] { "Slug" });
}
// GamedigId (string) maxLength
if (this.GamedigId != null && this.GamedigId.Length > 45)
{
yield return new ValidationResult("Invalid value for GamedigId, length must be less than 45.", new [] { "GamedigId" });
}
yield break; yield break;
} }
} }

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// GameServer /// GameServer
@@ -32,77 +32,66 @@ namespace Tribufu.Generated.Model
[DataContract(Name = "GameServer")] [DataContract(Name = "GameServer")]
public partial class GameServer : IValidatableObject public partial class GameServer : IValidatableObject
{ {
/// <summary> /// <summary>
/// Gets or Sets Status /// Initializes a new instance of the <see cref="GameServer" /> class.
/// </summary> /// </summary>
[DataMember(Name = "status", EmitDefaultValue = false)] [JsonConstructorAttribute]
public ServerStatus? Status { get; set; } protected GameServer() { }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="GameServer" /> class. /// Initializes a new instance of the <see cref="GameServer" /> class.
/// </summary> /// </summary>
/// <param name="id">id.</param> /// <param name="id">id.</param>
/// <param name="name">name.</param> /// <param name="name">name (required).</param>
/// <param name="description">description.</param> /// <param name="description">description.</param>
/// <param name="address">address.</param> /// <param name="ownerId">ownerId.</param>
/// <param name="address">address (required).</param>
/// <param name="queryPort">queryPort (required).</param>
/// <param name="gamePort">gamePort.</param> /// <param name="gamePort">gamePort.</param>
/// <param name="queryPort">queryPort.</param> /// <param name="map">map.</param>
/// <param name="varVersion">varVersion.</param>
/// <param name="gameId">gameId.</param> /// <param name="gameId">gameId.</param>
/// <param name="gameIconUrl">gameIconUrl.</param> /// <param name="gameIconUrl">gameIconUrl.</param>
/// <param name="varVersion">varVersion.</param>
/// <param name="featured">featured.</param>
/// <param name="clusterId">clusterId.</param> /// <param name="clusterId">clusterId.</param>
/// <param name="websiteUrl">websiteUrl.</param> /// <param name="websiteUrl">websiteUrl.</param>
/// <param name="bannerUrl">bannerUrl.</param> /// <param name="bannerUrl">bannerUrl.</param>
/// <param name="ownerId">ownerId.</param>
/// <param name="uptime">uptime.</param> /// <param name="uptime">uptime.</param>
/// <param name="status">status.</param>
/// <param name="ping">ping.</param>
/// <param name="map">map.</param>
/// <param name="usedSlots">usedSlots.</param>
/// <param name="maxSlots">maxSlots.</param>
/// <param name="motd">motd.</param>
/// <param name="players">players.</param>
/// <param name="lastOnline">lastOnline.</param>
/// <param name="country">country.</param> /// <param name="country">country.</param>
/// <param name="steam">steam.</param> /// <param name="steam">steam.</param>
/// <param name="discordServerId">discordServerId.</param> /// <param name="discordServerId">discordServerId.</param>
/// <param name="youtubeVideoUrl">youtubeVideoUrl.</param> /// <param name="youtubeVideoUrl">youtubeVideoUrl.</param>
/// <param name="tags">tags.</param>
/// <param name="commentCount">commentCount.</param>
/// <param name="created">created.</param> /// <param name="created">created.</param>
/// <param name="updated">updated.</param> /// <param name="updated">updated.</param>
public GameServer(string id = default(string), string name = default(string), string description = default(string), string address = default(string), int? gamePort = default(int?), int queryPort = default(int), string gameId = default(string), string gameIconUrl = default(string), string varVersion = default(string), bool featured = default(bool), string clusterId = default(string), string websiteUrl = default(string), string bannerUrl = default(string), string ownerId = default(string), double uptime = default(double), ServerStatus? status = default(ServerStatus?), int? ping = default(int?), string map = default(string), int? usedSlots = default(int?), int? maxSlots = default(int?), string motd = default(string), string players = default(string), DateTime? lastOnline = default(DateTime?), string country = default(string), bool steam = default(bool), string discordServerId = default(string), string youtubeVideoUrl = default(string), string tags = default(string), int commentCount = default(int), DateTime created = default(DateTime), DateTime? updated = default(DateTime?)) public GameServer(string id = default(string), string name = default(string), string description = default(string), string ownerId = default(string), string address = default(string), int queryPort = default(int), int? gamePort = default(int?), string map = default(string), string varVersion = default(string), string gameId = default(string), string gameIconUrl = default(string), string clusterId = default(string), string websiteUrl = default(string), string bannerUrl = default(string), double uptime = default(double), string country = default(string), bool steam = default(bool), string discordServerId = default(string), string youtubeVideoUrl = default(string), DateTime created = default(DateTime), DateTime? updated = default(DateTime?))
{ {
this.Id = id; // to ensure "name" is required (not null)
if (name == null)
{
throw new ArgumentNullException("name is a required property for GameServer and cannot be null");
}
this.Name = name; this.Name = name;
this.Description = description; // to ensure "address" is required (not null)
if (address == null)
{
throw new ArgumentNullException("address is a required property for GameServer and cannot be null");
}
this.Address = address; this.Address = address;
this.GamePort = gamePort;
this.QueryPort = queryPort; this.QueryPort = queryPort;
this.Id = id;
this.Description = description;
this.OwnerId = ownerId;
this.GamePort = gamePort;
this.Map = map;
this.VarVersion = varVersion;
this.GameId = gameId; this.GameId = gameId;
this.GameIconUrl = gameIconUrl; this.GameIconUrl = gameIconUrl;
this.VarVersion = varVersion;
this.Featured = featured;
this.ClusterId = clusterId; this.ClusterId = clusterId;
this.WebsiteUrl = websiteUrl; this.WebsiteUrl = websiteUrl;
this.BannerUrl = bannerUrl; this.BannerUrl = bannerUrl;
this.OwnerId = ownerId;
this.Uptime = uptime; this.Uptime = uptime;
this.Status = status;
this.Ping = ping;
this.Map = map;
this.UsedSlots = usedSlots;
this.MaxSlots = maxSlots;
this.Motd = motd;
this.Players = players;
this.LastOnline = lastOnline;
this.Country = country; this.Country = country;
this.Steam = steam; this.Steam = steam;
this.DiscordServerId = discordServerId; this.DiscordServerId = discordServerId;
this.YoutubeVideoUrl = youtubeVideoUrl; this.YoutubeVideoUrl = youtubeVideoUrl;
this.Tags = tags;
this.CommentCount = commentCount;
this.Created = created; this.Created = created;
this.Updated = updated; this.Updated = updated;
} }
@@ -116,7 +105,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Name /// Gets or Sets Name
/// </summary> /// </summary>
[DataMember(Name = "name", EmitDefaultValue = true)] [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; } public string Name { get; set; }
/// <summary> /// <summary>
@@ -125,12 +114,24 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "description", EmitDefaultValue = true)] [DataMember(Name = "description", EmitDefaultValue = true)]
public string Description { get; set; } public string Description { get; set; }
/// <summary>
/// Gets or Sets OwnerId
/// </summary>
[DataMember(Name = "owner_id", EmitDefaultValue = true)]
public string OwnerId { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Address /// Gets or Sets Address
/// </summary> /// </summary>
[DataMember(Name = "address", EmitDefaultValue = true)] [DataMember(Name = "address", IsRequired = true, EmitDefaultValue = true)]
public string Address { get; set; } public string Address { get; set; }
/// <summary>
/// Gets or Sets QueryPort
/// </summary>
[DataMember(Name = "query_port", IsRequired = true, EmitDefaultValue = true)]
public int QueryPort { get; set; }
/// <summary> /// <summary>
/// Gets or Sets GamePort /// Gets or Sets GamePort
/// </summary> /// </summary>
@@ -138,10 +139,16 @@ namespace Tribufu.Generated.Model
public int? GamePort { get; set; } public int? GamePort { get; set; }
/// <summary> /// <summary>
/// Gets or Sets QueryPort /// Gets or Sets Map
/// </summary> /// </summary>
[DataMember(Name = "query_port", EmitDefaultValue = false)] [DataMember(Name = "map", EmitDefaultValue = true)]
public int QueryPort { get; set; } public string Map { get; set; }
/// <summary>
/// Gets or Sets VarVersion
/// </summary>
[DataMember(Name = "version", EmitDefaultValue = true)]
public string VarVersion { get; set; }
/// <summary> /// <summary>
/// Gets or Sets GameId /// Gets or Sets GameId
@@ -155,18 +162,6 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "game_icon_url", EmitDefaultValue = true)] [DataMember(Name = "game_icon_url", EmitDefaultValue = true)]
public string GameIconUrl { get; set; } public string GameIconUrl { get; set; }
/// <summary>
/// Gets or Sets VarVersion
/// </summary>
[DataMember(Name = "version", EmitDefaultValue = true)]
public string VarVersion { get; set; }
/// <summary>
/// Gets or Sets Featured
/// </summary>
[DataMember(Name = "featured", EmitDefaultValue = true)]
public bool Featured { get; set; }
/// <summary> /// <summary>
/// Gets or Sets ClusterId /// Gets or Sets ClusterId
/// </summary> /// </summary>
@@ -185,60 +180,12 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "banner_url", EmitDefaultValue = true)] [DataMember(Name = "banner_url", EmitDefaultValue = true)]
public string BannerUrl { get; set; } public string BannerUrl { get; set; }
/// <summary>
/// Gets or Sets OwnerId
/// </summary>
[DataMember(Name = "owner_id", EmitDefaultValue = true)]
public string OwnerId { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Uptime /// Gets or Sets Uptime
/// </summary> /// </summary>
[DataMember(Name = "uptime", EmitDefaultValue = false)] [DataMember(Name = "uptime", EmitDefaultValue = false)]
public double Uptime { get; set; } public double Uptime { get; set; }
/// <summary>
/// Gets or Sets Ping
/// </summary>
[DataMember(Name = "ping", EmitDefaultValue = true)]
public int? Ping { get; set; }
/// <summary>
/// Gets or Sets Map
/// </summary>
[DataMember(Name = "map", EmitDefaultValue = true)]
public string Map { get; set; }
/// <summary>
/// Gets or Sets UsedSlots
/// </summary>
[DataMember(Name = "used_slots", EmitDefaultValue = true)]
public int? UsedSlots { get; set; }
/// <summary>
/// Gets or Sets MaxSlots
/// </summary>
[DataMember(Name = "max_slots", EmitDefaultValue = true)]
public int? MaxSlots { get; set; }
/// <summary>
/// Gets or Sets Motd
/// </summary>
[DataMember(Name = "motd", EmitDefaultValue = true)]
public string Motd { get; set; }
/// <summary>
/// Gets or Sets Players
/// </summary>
[DataMember(Name = "players", EmitDefaultValue = true)]
public string Players { get; set; }
/// <summary>
/// Gets or Sets LastOnline
/// </summary>
[DataMember(Name = "last_online", EmitDefaultValue = true)]
public DateTime? LastOnline { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Country /// Gets or Sets Country
/// </summary> /// </summary>
@@ -263,18 +210,6 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "youtube_video_url", EmitDefaultValue = true)] [DataMember(Name = "youtube_video_url", EmitDefaultValue = true)]
public string YoutubeVideoUrl { get; set; } public string YoutubeVideoUrl { get; set; }
/// <summary>
/// Gets or Sets Tags
/// </summary>
[DataMember(Name = "tags", EmitDefaultValue = true)]
public string Tags { get; set; }
/// <summary>
/// Gets or Sets CommentCount
/// </summary>
[DataMember(Name = "comment_count", EmitDefaultValue = false)]
public int CommentCount { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Created /// Gets or Sets Created
/// </summary> /// </summary>
@@ -298,32 +233,22 @@ namespace Tribufu.Generated.Model
sb.Append(" Id: ").Append(Id).Append("\n"); sb.Append(" Id: ").Append(Id).Append("\n");
sb.Append(" Name: ").Append(Name).Append("\n"); sb.Append(" Name: ").Append(Name).Append("\n");
sb.Append(" Description: ").Append(Description).Append("\n"); sb.Append(" Description: ").Append(Description).Append("\n");
sb.Append(" OwnerId: ").Append(OwnerId).Append("\n");
sb.Append(" Address: ").Append(Address).Append("\n"); sb.Append(" Address: ").Append(Address).Append("\n");
sb.Append(" GamePort: ").Append(GamePort).Append("\n");
sb.Append(" QueryPort: ").Append(QueryPort).Append("\n"); sb.Append(" QueryPort: ").Append(QueryPort).Append("\n");
sb.Append(" GamePort: ").Append(GamePort).Append("\n");
sb.Append(" Map: ").Append(Map).Append("\n");
sb.Append(" VarVersion: ").Append(VarVersion).Append("\n");
sb.Append(" GameId: ").Append(GameId).Append("\n"); sb.Append(" GameId: ").Append(GameId).Append("\n");
sb.Append(" GameIconUrl: ").Append(GameIconUrl).Append("\n"); sb.Append(" GameIconUrl: ").Append(GameIconUrl).Append("\n");
sb.Append(" VarVersion: ").Append(VarVersion).Append("\n");
sb.Append(" Featured: ").Append(Featured).Append("\n");
sb.Append(" ClusterId: ").Append(ClusterId).Append("\n"); sb.Append(" ClusterId: ").Append(ClusterId).Append("\n");
sb.Append(" WebsiteUrl: ").Append(WebsiteUrl).Append("\n"); sb.Append(" WebsiteUrl: ").Append(WebsiteUrl).Append("\n");
sb.Append(" BannerUrl: ").Append(BannerUrl).Append("\n"); sb.Append(" BannerUrl: ").Append(BannerUrl).Append("\n");
sb.Append(" OwnerId: ").Append(OwnerId).Append("\n");
sb.Append(" Uptime: ").Append(Uptime).Append("\n"); sb.Append(" Uptime: ").Append(Uptime).Append("\n");
sb.Append(" Status: ").Append(Status).Append("\n");
sb.Append(" Ping: ").Append(Ping).Append("\n");
sb.Append(" Map: ").Append(Map).Append("\n");
sb.Append(" UsedSlots: ").Append(UsedSlots).Append("\n");
sb.Append(" MaxSlots: ").Append(MaxSlots).Append("\n");
sb.Append(" Motd: ").Append(Motd).Append("\n");
sb.Append(" Players: ").Append(Players).Append("\n");
sb.Append(" LastOnline: ").Append(LastOnline).Append("\n");
sb.Append(" Country: ").Append(Country).Append("\n"); sb.Append(" Country: ").Append(Country).Append("\n");
sb.Append(" Steam: ").Append(Steam).Append("\n"); sb.Append(" Steam: ").Append(Steam).Append("\n");
sb.Append(" DiscordServerId: ").Append(DiscordServerId).Append("\n"); sb.Append(" DiscordServerId: ").Append(DiscordServerId).Append("\n");
sb.Append(" YoutubeVideoUrl: ").Append(YoutubeVideoUrl).Append("\n"); sb.Append(" YoutubeVideoUrl: ").Append(YoutubeVideoUrl).Append("\n");
sb.Append(" Tags: ").Append(Tags).Append("\n");
sb.Append(" CommentCount: ").Append(CommentCount).Append("\n");
sb.Append(" Created: ").Append(Created).Append("\n"); sb.Append(" Created: ").Append(Created).Append("\n");
sb.Append(" Updated: ").Append(Updated).Append("\n"); sb.Append(" Updated: ").Append(Updated).Append("\n");
sb.Append("}\n"); sb.Append("}\n");
@@ -358,6 +283,12 @@ namespace Tribufu.Generated.Model
yield return new ValidationResult("Invalid value for Address, length must be less than 255.", new [] { "Address" }); yield return new ValidationResult("Invalid value for Address, length must be less than 255.", new [] { "Address" });
} }
// Map (string) maxLength
if (this.Map != null && this.Map.Length > 255)
{
yield return new ValidationResult("Invalid value for Map, length must be less than 255.", new [] { "Map" });
}
// VarVersion (string) maxLength // VarVersion (string) maxLength
if (this.VarVersion != null && this.VarVersion.Length > 45) if (this.VarVersion != null && this.VarVersion.Length > 45)
{ {
@@ -376,18 +307,6 @@ namespace Tribufu.Generated.Model
yield return new ValidationResult("Invalid value for BannerUrl, length must be less than 255.", new [] { "BannerUrl" }); yield return new ValidationResult("Invalid value for BannerUrl, length must be less than 255.", new [] { "BannerUrl" });
} }
// Map (string) maxLength
if (this.Map != null && this.Map.Length > 45)
{
yield return new ValidationResult("Invalid value for Map, length must be less than 45.", new [] { "Map" });
}
// Motd (string) maxLength
if (this.Motd != null && this.Motd.Length > 255)
{
yield return new ValidationResult("Invalid value for Motd, length must be less than 255.", new [] { "Motd" });
}
// Country (string) maxLength // Country (string) maxLength
if (this.Country != null && this.Country.Length > 2) if (this.Country != null && this.Country.Length > 2)
{ {

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// GameServerCluster /// GameServerCluster
@@ -32,11 +32,16 @@ namespace Tribufu.Generated.Model
[DataContract(Name = "GameServerCluster")] [DataContract(Name = "GameServerCluster")]
public partial class GameServerCluster : IValidatableObject public partial class GameServerCluster : IValidatableObject
{ {
/// <summary>
/// Initializes a new instance of the <see cref="GameServerCluster" /> class.
/// </summary>
[JsonConstructorAttribute]
protected GameServerCluster() { }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="GameServerCluster" /> class. /// Initializes a new instance of the <see cref="GameServerCluster" /> class.
/// </summary> /// </summary>
/// <param name="id">id.</param> /// <param name="id">id.</param>
/// <param name="name">name.</param> /// <param name="name">name (required).</param>
/// <param name="description">description.</param> /// <param name="description">description.</param>
/// <param name="gameId">gameId.</param> /// <param name="gameId">gameId.</param>
/// <param name="websiteUrl">websiteUrl.</param> /// <param name="websiteUrl">websiteUrl.</param>
@@ -51,8 +56,13 @@ namespace Tribufu.Generated.Model
/// <param name="updated">updated.</param> /// <param name="updated">updated.</param>
public GameServerCluster(string id = default(string), string name = default(string), string description = default(string), string gameId = default(string), string websiteUrl = default(string), string bannerUrl = default(string), string ownerId = default(string), string discordServerId = default(string), string youtubeVideoUrl = default(string), string tags = default(string), int commentCount = default(int), int serverCount = default(int), DateTime created = default(DateTime), DateTime? updated = default(DateTime?)) public GameServerCluster(string id = default(string), string name = default(string), string description = default(string), string gameId = default(string), string websiteUrl = default(string), string bannerUrl = default(string), string ownerId = default(string), string discordServerId = default(string), string youtubeVideoUrl = default(string), string tags = default(string), int commentCount = default(int), int serverCount = default(int), DateTime created = default(DateTime), DateTime? updated = default(DateTime?))
{ {
this.Id = id; // to ensure "name" is required (not null)
if (name == null)
{
throw new ArgumentNullException("name is a required property for GameServerCluster and cannot be null");
}
this.Name = name; this.Name = name;
this.Id = id;
this.Description = description; this.Description = description;
this.GameId = gameId; this.GameId = gameId;
this.WebsiteUrl = websiteUrl; this.WebsiteUrl = websiteUrl;
@@ -76,7 +86,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Name /// Gets or Sets Name
/// </summary> /// </summary>
[DataMember(Name = "name", EmitDefaultValue = true)] [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; } public string Name { get; set; }
/// <summary> /// <summary>

View File

@@ -0,0 +1,152 @@
/*
* Tribufu API
*
* API to access Tribufu services.
*
* The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Model
{
/// <summary>
/// GameServerQuery
/// </summary>
[DataContract(Name = "GameServerQuery")]
public partial class GameServerQuery : IValidatableObject
{
/// <summary>
/// Gets or Sets Status
/// </summary>
[DataMember(Name = "status", EmitDefaultValue = false)]
public GameServerStatus? Status { get; set; }
/// <summary>
/// Initializes a new instance of the <see cref="GameServerQuery" /> class.
/// </summary>
/// <param name="id">id.</param>
/// <param name="serverId">serverId.</param>
/// <param name="status">status.</param>
/// <param name="ping">ping.</param>
/// <param name="currentPlayers">currentPlayers.</param>
/// <param name="maxPlayers">maxPlayers.</param>
/// <param name="motd">motd.</param>
/// <param name="created">created.</param>
public GameServerQuery(string id = default(string), string serverId = default(string), GameServerStatus? status = default(GameServerStatus?), int ping = default(int), int currentPlayers = default(int), int maxPlayers = default(int), string motd = default(string), DateTime created = default(DateTime))
{
this.Id = id;
this.ServerId = serverId;
this.Status = status;
this.Ping = ping;
this.CurrentPlayers = currentPlayers;
this.MaxPlayers = maxPlayers;
this.Motd = motd;
this.Created = created;
}
/// <summary>
/// Gets or Sets Id
/// </summary>
[DataMember(Name = "id", EmitDefaultValue = false)]
public string Id { get; set; }
/// <summary>
/// Gets or Sets ServerId
/// </summary>
[DataMember(Name = "server_id", EmitDefaultValue = false)]
public string ServerId { get; set; }
/// <summary>
/// Gets or Sets Ping
/// </summary>
[DataMember(Name = "ping", EmitDefaultValue = false)]
public int Ping { get; set; }
/// <summary>
/// Gets or Sets CurrentPlayers
/// </summary>
[DataMember(Name = "current_players", EmitDefaultValue = false)]
public int CurrentPlayers { get; set; }
/// <summary>
/// Gets or Sets MaxPlayers
/// </summary>
[DataMember(Name = "max_players", EmitDefaultValue = false)]
public int MaxPlayers { get; set; }
/// <summary>
/// Gets or Sets Motd
/// </summary>
[DataMember(Name = "motd", EmitDefaultValue = true)]
public string Motd { get; set; }
/// <summary>
/// Gets or Sets Created
/// </summary>
[DataMember(Name = "created", EmitDefaultValue = false)]
public DateTime Created { get; set; }
/// <summary>
/// Returns the string presentation of the object
/// </summary>
/// <returns>String presentation of the object</returns>
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append("class GameServerQuery {\n");
sb.Append(" Id: ").Append(Id).Append("\n");
sb.Append(" ServerId: ").Append(ServerId).Append("\n");
sb.Append(" Status: ").Append(Status).Append("\n");
sb.Append(" Ping: ").Append(Ping).Append("\n");
sb.Append(" CurrentPlayers: ").Append(CurrentPlayers).Append("\n");
sb.Append(" MaxPlayers: ").Append(MaxPlayers).Append("\n");
sb.Append(" Motd: ").Append(Motd).Append("\n");
sb.Append(" Created: ").Append(Created).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
/// <summary>
/// Returns the JSON string presentation of the object
/// </summary>
/// <returns>JSON string presentation of the object</returns>
public virtual string ToJson()
{
return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
}
/// <summary>
/// To validate all properties of the instance
/// </summary>
/// <param name="validationContext">Validation context</param>
/// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
// Motd (string) maxLength
if (this.Motd != null && this.Motd.Length > 255)
{
yield return new ValidationResult("Invalid value for Motd, length must be less than 255.", new [] { "Motd" });
}
yield break;
}
}
}

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,15 +22,15 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Defines ServerStatus /// Defines GameServerStatus
/// </summary> /// </summary>
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public enum ServerStatus public enum GameServerStatus
{ {
/// <summary> /// <summary>
/// Enum Unknown for value: unknown /// Enum Unknown for value: unknown

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Defines GrantType /// Defines GrantType

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Group /// Group
@@ -32,12 +32,17 @@ namespace Tribufu.Generated.Model
[DataContract(Name = "Group")] [DataContract(Name = "Group")]
public partial class Group : IValidatableObject public partial class Group : IValidatableObject
{ {
/// <summary>
/// Initializes a new instance of the <see cref="Group" /> class.
/// </summary>
[JsonConstructorAttribute]
protected Group() { }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Group" /> class. /// Initializes a new instance of the <see cref="Group" /> class.
/// </summary> /// </summary>
/// <param name="id">id.</param> /// <param name="id">id.</param>
/// <param name="uuid">uuid.</param> /// <param name="uuid">uuid.</param>
/// <param name="name">name.</param> /// <param name="name">name (required).</param>
/// <param name="tag">tag.</param> /// <param name="tag">tag.</param>
/// <param name="description">description.</param> /// <param name="description">description.</param>
/// <param name="type">type.</param> /// <param name="type">type.</param>
@@ -53,9 +58,14 @@ namespace Tribufu.Generated.Model
/// <param name="updated">updated.</param> /// <param name="updated">updated.</param>
public Group(string id = default(string), Guid uuid = default(Guid), string name = default(string), string tag = default(string), string description = default(string), int type = default(int), int privacy = default(int), string ownerId = default(string), bool verified = default(bool), string photoUrl = default(string), string bannerUrl = default(string), int memberCount = default(int), int followerCount = default(int), int viewCount = default(int), DateTime created = default(DateTime), DateTime? updated = default(DateTime?)) public Group(string id = default(string), Guid uuid = default(Guid), string name = default(string), string tag = default(string), string description = default(string), int type = default(int), int privacy = default(int), string ownerId = default(string), bool verified = default(bool), string photoUrl = default(string), string bannerUrl = default(string), int memberCount = default(int), int followerCount = default(int), int viewCount = default(int), DateTime created = default(DateTime), DateTime? updated = default(DateTime?))
{ {
// to ensure "name" is required (not null)
if (name == null)
{
throw new ArgumentNullException("name is a required property for Group and cannot be null");
}
this.Name = name;
this.Id = id; this.Id = id;
this.Uuid = uuid; this.Uuid = uuid;
this.Name = name;
this.Tag = tag; this.Tag = tag;
this.Description = description; this.Description = description;
this.Type = type; this.Type = type;
@@ -86,7 +96,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Name /// Gets or Sets Name
/// </summary> /// </summary>
[DataMember(Name = "name", EmitDefaultValue = true)] [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
public string Name { get; set; } public string Name { get; set; }
/// <summary> /// <summary>
@@ -211,6 +221,12 @@ namespace Tribufu.Generated.Model
/// <returns>Validation Result</returns> /// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext) IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{ {
// Name (string) maxLength
if (this.Name != null && this.Name.Length > 75)
{
yield return new ValidationResult("Invalid value for Name, length must be less than 75.", new [] { "Name" });
}
yield break; yield break;
} }
} }

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,28 +22,38 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// GroupGame /// GroupApplication
/// </summary> /// </summary>
[DataContract(Name = "GroupGame")] [DataContract(Name = "GroupApplication")]
public partial class GroupGame : IValidatableObject public partial class GroupApplication : IValidatableObject
{ {
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="GroupGame" /> class. /// Initializes a new instance of the <see cref="GroupApplication" /> class.
/// </summary> /// </summary>
/// <param name="groupId">groupId.</param> [JsonConstructorAttribute]
protected GroupApplication() { }
/// <summary>
/// Initializes a new instance of the <see cref="GroupApplication" /> class.
/// </summary>
/// <param name="groupId">groupId (required).</param>
/// <param name="group">group.</param> /// <param name="group">group.</param>
/// <param name="applicationId">applicationId.</param> /// <param name="applicationId">applicationId.</param>
/// <param name="application">application.</param> /// <param name="application">application.</param>
/// <param name="stats">stats.</param> /// <param name="stats">stats.</param>
/// <param name="acquired">acquired.</param> /// <param name="acquired">acquired.</param>
/// <param name="lastUsed">lastUsed.</param> /// <param name="lastUsed">lastUsed.</param>
public GroupGame(string groupId = default(string), Group group = default(Group), string applicationId = default(string), Application application = default(Application), Object stats = default(Object), DateTime acquired = default(DateTime), DateTime? lastUsed = default(DateTime?)) public GroupApplication(string groupId = default(string), Group group = default(Group), string applicationId = default(string), Application application = default(Application), Object stats = default(Object), DateTime acquired = default(DateTime), DateTime? lastUsed = default(DateTime?))
{ {
// to ensure "groupId" is required (not null)
if (groupId == null)
{
throw new ArgumentNullException("groupId is a required property for GroupApplication and cannot be null");
}
this.GroupId = groupId; this.GroupId = groupId;
this.Group = group; this.Group = group;
this.ApplicationId = applicationId; this.ApplicationId = applicationId;
@@ -56,7 +66,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets GroupId /// Gets or Sets GroupId
/// </summary> /// </summary>
[DataMember(Name = "group_id", EmitDefaultValue = false)] [DataMember(Name = "group_id", IsRequired = true, EmitDefaultValue = true)]
public string GroupId { get; set; } public string GroupId { get; set; }
/// <summary> /// <summary>
@@ -102,7 +112,7 @@ namespace Tribufu.Generated.Model
public override string ToString() public override string ToString()
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.Append("class GroupGame {\n"); sb.Append("class GroupApplication {\n");
sb.Append(" GroupId: ").Append(GroupId).Append("\n"); sb.Append(" GroupId: ").Append(GroupId).Append("\n");
sb.Append(" Group: ").Append(Group).Append("\n"); sb.Append(" Group: ").Append(Group).Append("\n");
sb.Append(" ApplicationId: ").Append(ApplicationId).Append("\n"); sb.Append(" ApplicationId: ").Append(ApplicationId).Append("\n");

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// GroupMember /// GroupMember

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// Defines GroupRank /// Defines GroupRank

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// HashViewModel /// HashViewModel
@@ -35,16 +35,26 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="HashViewModel" /> class. /// Initializes a new instance of the <see cref="HashViewModel" /> class.
/// </summary> /// </summary>
/// <param name="value">value.</param> [JsonConstructorAttribute]
protected HashViewModel() { }
/// <summary>
/// Initializes a new instance of the <see cref="HashViewModel" /> class.
/// </summary>
/// <param name="value">value (required).</param>
public HashViewModel(string value = default(string)) public HashViewModel(string value = default(string))
{ {
// to ensure "value" is required (not null)
if (value == null)
{
throw new ArgumentNullException("value is a required property for HashViewModel and cannot be null");
}
this.Value = value; this.Value = value;
} }
/// <summary> /// <summary>
/// Gets or Sets Value /// Gets or Sets Value
/// </summary> /// </summary>
[DataMember(Name = "value", EmitDefaultValue = true)] [DataMember(Name = "value", IsRequired = true, EmitDefaultValue = true)]
public string Value { get; set; } public string Value { get; set; }
/// <summary> /// <summary>

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// IntrospectRequest /// IntrospectRequest
@@ -36,15 +36,25 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets TokenTypeHint /// Gets or Sets TokenTypeHint
/// </summary> /// </summary>
[DataMember(Name = "token_type_hint", EmitDefaultValue = false)] [DataMember(Name = "token_type_hint", IsRequired = true, EmitDefaultValue = true)]
public TokenHintType? TokenTypeHint { get; set; } public TokenHintType TokenTypeHint { get; set; }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="IntrospectRequest" /> class. /// Initializes a new instance of the <see cref="IntrospectRequest" /> class.
/// </summary> /// </summary>
/// <param name="token">token.</param> [JsonConstructorAttribute]
/// <param name="tokenTypeHint">tokenTypeHint.</param> protected IntrospectRequest() { }
public IntrospectRequest(string token = default(string), TokenHintType? tokenTypeHint = default(TokenHintType?)) /// <summary>
/// Initializes a new instance of the <see cref="IntrospectRequest" /> class.
/// </summary>
/// <param name="token">token (required).</param>
/// <param name="tokenTypeHint">tokenTypeHint (required).</param>
public IntrospectRequest(string token = default(string), TokenHintType tokenTypeHint = default(TokenHintType))
{ {
// to ensure "token" is required (not null)
if (token == null)
{
throw new ArgumentNullException("token is a required property for IntrospectRequest and cannot be null");
}
this.Token = token; this.Token = token;
this.TokenTypeHint = tokenTypeHint; this.TokenTypeHint = tokenTypeHint;
} }
@@ -52,7 +62,7 @@ namespace Tribufu.Generated.Model
/// <summary> /// <summary>
/// Gets or Sets Token /// Gets or Sets Token
/// </summary> /// </summary>
[DataMember(Name = "token", EmitDefaultValue = true)] [DataMember(Name = "token", IsRequired = true, EmitDefaultValue = true)]
public string Token { get; set; } public string Token { get; set; }
/// <summary> /// <summary>

View File

@@ -0,0 +1,182 @@
/*
* Tribufu API
*
* API to access Tribufu services.
*
* The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Model
{
/// <summary>
/// IntrospectResponse
/// </summary>
[DataContract(Name = "IntrospectResponse")]
public partial class IntrospectResponse : IValidatableObject
{
/// <summary>
/// Initializes a new instance of the <see cref="IntrospectResponse" /> class.
/// </summary>
/// <param name="jti">jti.</param>
/// <param name="active">active.</param>
/// <param name="tokenType">tokenType.</param>
/// <param name="clientId">clientId.</param>
/// <param name="sub">sub.</param>
/// <param name="username">username.</param>
/// <param name="scope">scope.</param>
/// <param name="iss">iss.</param>
/// <param name="aud">aud.</param>
/// <param name="iat">iat.</param>
/// <param name="exp">exp.</param>
/// <param name="nbf">nbf.</param>
public IntrospectResponse(string jti = default(string), bool active = default(bool), string tokenType = default(string), string clientId = default(string), string sub = default(string), string username = default(string), string scope = default(string), string iss = default(string), string aud = default(string), long? iat = default(long?), long? exp = default(long?), long? nbf = default(long?))
{
this.Jti = jti;
this.Active = active;
this.TokenType = tokenType;
this.ClientId = clientId;
this.Sub = sub;
this.Username = username;
this.Scope = scope;
this.Iss = iss;
this.Aud = aud;
this.Iat = iat;
this.Exp = exp;
this.Nbf = nbf;
}
/// <summary>
/// Gets or Sets Jti
/// </summary>
[DataMember(Name = "jti", EmitDefaultValue = true)]
public string Jti { get; set; }
/// <summary>
/// Gets or Sets Active
/// </summary>
[DataMember(Name = "active", EmitDefaultValue = true)]
public bool Active { get; set; }
/// <summary>
/// Gets or Sets TokenType
/// </summary>
[DataMember(Name = "token_type", EmitDefaultValue = true)]
public string TokenType { get; set; }
/// <summary>
/// Gets or Sets ClientId
/// </summary>
[DataMember(Name = "client_id", EmitDefaultValue = true)]
public string ClientId { get; set; }
/// <summary>
/// Gets or Sets Sub
/// </summary>
[DataMember(Name = "sub", EmitDefaultValue = true)]
public string Sub { get; set; }
/// <summary>
/// Gets or Sets Username
/// </summary>
[DataMember(Name = "username", EmitDefaultValue = true)]
public string Username { get; set; }
/// <summary>
/// Gets or Sets Scope
/// </summary>
[DataMember(Name = "scope", EmitDefaultValue = true)]
public string Scope { get; set; }
/// <summary>
/// Gets or Sets Iss
/// </summary>
[DataMember(Name = "iss", EmitDefaultValue = true)]
public string Iss { get; set; }
/// <summary>
/// Gets or Sets Aud
/// </summary>
[DataMember(Name = "aud", EmitDefaultValue = true)]
public string Aud { get; set; }
/// <summary>
/// Gets or Sets Iat
/// </summary>
[DataMember(Name = "iat", EmitDefaultValue = true)]
public long? Iat { get; set; }
/// <summary>
/// Gets or Sets Exp
/// </summary>
[DataMember(Name = "exp", EmitDefaultValue = true)]
public long? Exp { get; set; }
/// <summary>
/// Gets or Sets Nbf
/// </summary>
[DataMember(Name = "nbf", EmitDefaultValue = true)]
public long? Nbf { get; set; }
/// <summary>
/// Returns the string presentation of the object
/// </summary>
/// <returns>String presentation of the object</returns>
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append("class IntrospectResponse {\n");
sb.Append(" Jti: ").Append(Jti).Append("\n");
sb.Append(" Active: ").Append(Active).Append("\n");
sb.Append(" TokenType: ").Append(TokenType).Append("\n");
sb.Append(" ClientId: ").Append(ClientId).Append("\n");
sb.Append(" Sub: ").Append(Sub).Append("\n");
sb.Append(" Username: ").Append(Username).Append("\n");
sb.Append(" Scope: ").Append(Scope).Append("\n");
sb.Append(" Iss: ").Append(Iss).Append("\n");
sb.Append(" Aud: ").Append(Aud).Append("\n");
sb.Append(" Iat: ").Append(Iat).Append("\n");
sb.Append(" Exp: ").Append(Exp).Append("\n");
sb.Append(" Nbf: ").Append(Nbf).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
/// <summary>
/// Returns the JSON string presentation of the object
/// </summary>
/// <returns>JSON string presentation of the object</returns>
public virtual string ToJson()
{
return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
}
/// <summary>
/// To validate all properties of the instance
/// </summary>
/// <param name="validationContext">Validation context</param>
/// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
yield break;
}
}
}

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// IpAddress /// IpAddress
@@ -39,11 +39,12 @@ namespace Tribufu.Generated.Model
/// <param name="varVersion">varVersion.</param> /// <param name="varVersion">varVersion.</param>
/// <param name="network">network.</param> /// <param name="network">network.</param>
/// <param name="reserved">reserved.</param> /// <param name="reserved">reserved.</param>
/// <param name="banned">banned.</param>
/// <param name="asn">asn.</param> /// <param name="asn">asn.</param>
/// <param name="isp">isp.</param> /// <param name="isp">isp.</param>
/// <param name="continent">continent.</param> /// <param name="continent">continent.</param>
/// <param name="country">country.</param> /// <param name="country">country.</param>
/// <param name="region">region.</param> /// <param name="province">province.</param>
/// <param name="city">city.</param> /// <param name="city">city.</param>
/// <param name="postalCode">postalCode.</param> /// <param name="postalCode">postalCode.</param>
/// <param name="callingCode">callingCode.</param> /// <param name="callingCode">callingCode.</param>
@@ -53,17 +54,18 @@ namespace Tribufu.Generated.Model
/// <param name="currency">currency.</param> /// <param name="currency">currency.</param>
/// <param name="latitude">latitude.</param> /// <param name="latitude">latitude.</param>
/// <param name="longitude">longitude.</param> /// <param name="longitude">longitude.</param>
public IpAddress(string address = default(string), int varVersion = default(int), string network = default(string), bool reserved = default(bool), string asn = default(string), string isp = default(string), string continent = default(string), string country = default(string), string region = default(string), string city = default(string), string postalCode = default(string), string callingCode = default(string), string tld = default(string), string language = default(string), string timezone = default(string), string currency = default(string), float? latitude = default(float?), float? longitude = default(float?)) public IpAddress(string address = default(string), int varVersion = default(int), string network = default(string), bool reserved = default(bool), bool banned = default(bool), string asn = default(string), string isp = default(string), string continent = default(string), string country = default(string), string province = default(string), string city = default(string), string postalCode = default(string), string callingCode = default(string), string tld = default(string), string language = default(string), string timezone = default(string), string currency = default(string), float? latitude = default(float?), float? longitude = default(float?))
{ {
this.Address = address; this.Address = address;
this.VarVersion = varVersion; this.VarVersion = varVersion;
this.Network = network; this.Network = network;
this.Reserved = reserved; this.Reserved = reserved;
this.Banned = banned;
this.Asn = asn; this.Asn = asn;
this.Isp = isp; this.Isp = isp;
this.Continent = continent; this.Continent = continent;
this.Country = country; this.Country = country;
this.Region = region; this.Province = province;
this.City = city; this.City = city;
this.PostalCode = postalCode; this.PostalCode = postalCode;
this.CallingCode = callingCode; this.CallingCode = callingCode;
@@ -99,6 +101,12 @@ namespace Tribufu.Generated.Model
[DataMember(Name = "reserved", EmitDefaultValue = true)] [DataMember(Name = "reserved", EmitDefaultValue = true)]
public bool Reserved { get; set; } public bool Reserved { get; set; }
/// <summary>
/// Gets or Sets Banned
/// </summary>
[DataMember(Name = "banned", EmitDefaultValue = true)]
public bool Banned { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Asn /// Gets or Sets Asn
/// </summary> /// </summary>
@@ -124,10 +132,10 @@ namespace Tribufu.Generated.Model
public string Country { get; set; } public string Country { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Region /// Gets or Sets Province
/// </summary> /// </summary>
[DataMember(Name = "region", EmitDefaultValue = true)] [DataMember(Name = "province", EmitDefaultValue = true)]
public string Region { get; set; } public string Province { get; set; }
/// <summary> /// <summary>
/// Gets or Sets City /// Gets or Sets City
@@ -195,11 +203,12 @@ namespace Tribufu.Generated.Model
sb.Append(" VarVersion: ").Append(VarVersion).Append("\n"); sb.Append(" VarVersion: ").Append(VarVersion).Append("\n");
sb.Append(" Network: ").Append(Network).Append("\n"); sb.Append(" Network: ").Append(Network).Append("\n");
sb.Append(" Reserved: ").Append(Reserved).Append("\n"); sb.Append(" Reserved: ").Append(Reserved).Append("\n");
sb.Append(" Banned: ").Append(Banned).Append("\n");
sb.Append(" Asn: ").Append(Asn).Append("\n"); sb.Append(" Asn: ").Append(Asn).Append("\n");
sb.Append(" Isp: ").Append(Isp).Append("\n"); sb.Append(" Isp: ").Append(Isp).Append("\n");
sb.Append(" Continent: ").Append(Continent).Append("\n"); sb.Append(" Continent: ").Append(Continent).Append("\n");
sb.Append(" Country: ").Append(Country).Append("\n"); sb.Append(" Country: ").Append(Country).Append("\n");
sb.Append(" Region: ").Append(Region).Append("\n"); sb.Append(" Province: ").Append(Province).Append("\n");
sb.Append(" City: ").Append(City).Append("\n"); sb.Append(" City: ").Append(City).Append("\n");
sb.Append(" PostalCode: ").Append(PostalCode).Append("\n"); sb.Append(" PostalCode: ").Append(PostalCode).Append("\n");
sb.Append(" CallingCode: ").Append(CallingCode).Append("\n"); sb.Append(" CallingCode: ").Append(CallingCode).Append("\n");
@@ -265,10 +274,10 @@ namespace Tribufu.Generated.Model
yield return new ValidationResult("Invalid value for Country, length must be less than 2.", new [] { "Country" }); yield return new ValidationResult("Invalid value for Country, length must be less than 2.", new [] { "Country" });
} }
// Region (string) maxLength // Province (string) maxLength
if (this.Region != null && this.Region.Length > 255) if (this.Province != null && this.Province.Length > 255)
{ {
yield return new ValidationResult("Invalid value for Region, length must be less than 255.", new [] { "Region" }); yield return new ValidationResult("Invalid value for Province, length must be less than 255.", new [] { "Province" });
} }
// City (string) maxLength // City (string) maxLength

View File

@@ -1,9 +1,9 @@
/* /*
* Tribufu API * Tribufu API
* *
* REST API to access Tribufu services. * API to access Tribufu services.
* *
* The version of the OpenAPI document: 1.1.0 * The version of the OpenAPI document: 1.3.0
* Contact: contact@tribufu.com * Contact: contact@tribufu.com
* Generated by: https://github.com/openapitools/openapi-generator.git * Generated by: https://github.com/openapitools/openapi-generator.git
*/ */
@@ -22,9 +22,9 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = Tribufu.Generated.Client.OpenAPIDateConverter; using OpenAPIDateConverter = Tribufu.Client.OpenAPIDateConverter;
namespace Tribufu.Generated.Model namespace Tribufu.Model
{ {
/// <summary> /// <summary>
/// LeaderboardItem /// LeaderboardItem

Some files were not shown because too many files have changed in this diff Show More