added validators in project

This commit is contained in:
2026-03-10 09:52:31 +01:00
parent 2e7b9e5154
commit 9f858df5f8
17 changed files with 558 additions and 188 deletions

View File

@@ -6,191 +6,23 @@
</component>
<component name="ChangeListManager">
<list default="true" id="4c0ad985-5b6e-4587-85a5-1b48273bdb1d" name="Changes" comment="">
<change afterPath="$PROJECT_DIR$/BookHive/Migrations/20260310073123_AddedData.Designer.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/Migrations/20260310073123_AddedData.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/BookHive" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/obj/BookHive.csproj.EntityFrameworkCore.targets" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/Validators/Authors/CreateAuthorDtoValidator.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/Validators/Authors/GetAuthorDtoValidator.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/Validators/Authors/UpdateAuthorDtoValidator.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/Validators/Books/CreateBookDtoValidator.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/Validators/Books/GetBookDtoValidator.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/Validators/Books/UpdateBookDtoValidator.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/Validators/CustomValidators.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/Validators/Loans/CreateLoanDtoValidator.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/Validators/Loans/PatchLoanDtoValidator.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/Validators/Loans/UpdateLoanDtoValidator.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/Validators/Members/CreateMemberDtoValidator.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/Validators/Members/UpdateMemberDtoValidator.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/Validators/Reviews/CreateReviewDtoValidator.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/BookHive/Validators/Reviews/UpdateReviewDtoValidator.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.idea.BookHive/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.BookHive/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/BookHiveDbContext.cs" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/BookHiveDbContext.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/Migrations/BookHiveDbContextModelSnapshot.cs" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/Migrations/BookHiveDbContextModelSnapshot.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/Program.cs" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/Program.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Ardalis.Specification.EntityFrameworkCore.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Ardalis.Specification.EntityFrameworkCore.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Ardalis.Specification.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Ardalis.Specification.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/AutoMapper.Collection.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/AutoMapper.Collection.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/AutoMapper.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/AutoMapper.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Azure.Core.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Azure.Core.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Azure.Identity.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Azure.Identity.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/BookHive.deps.json" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/BookHive.deps.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/BookHive.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/BookHive.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/BookHive.pdb" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/BookHive.pdb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FastEndpoints.Attributes.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FastEndpoints.Attributes.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FastEndpoints.Core.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FastEndpoints.Core.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FastEndpoints.JobQueues.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FastEndpoints.JobQueues.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FastEndpoints.Messaging.Core.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FastEndpoints.Messaging.Core.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FastEndpoints.Messaging.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FastEndpoints.Messaging.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FastEndpoints.Security.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FastEndpoints.Security.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FastEndpoints.Swagger.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FastEndpoints.Swagger.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FastEndpoints.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FastEndpoints.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FluentValidation.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/FluentValidation.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Humanizer.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Humanizer.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.AspNetCore.OpenApi.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.AspNetCore.OpenApi.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.Bcl.AsyncInterfaces.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.Bcl.AsyncInterfaces.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.Bcl.Cryptography.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.Bcl.Cryptography.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.Build.Framework.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.Build.Framework.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.CodeAnalysis.CSharp.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.CodeAnalysis.CSharp.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.CodeAnalysis.Workspaces.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.CodeAnalysis.Workspaces.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.CodeAnalysis.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.CodeAnalysis.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.Data.SqlClient.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.Data.SqlClient.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.EntityFrameworkCore.Abstractions.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.EntityFrameworkCore.Abstractions.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.EntityFrameworkCore.Design.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.EntityFrameworkCore.Design.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.EntityFrameworkCore.Relational.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.EntityFrameworkCore.Relational.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.EntityFrameworkCore.SqlServer.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.EntityFrameworkCore.SqlServer.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.EntityFrameworkCore.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.EntityFrameworkCore.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.Extensions.DependencyModel.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.Extensions.DependencyModel.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.Identity.Client.Extensions.Msal.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.Identity.Client.Extensions.Msal.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.Identity.Client.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.Identity.Client.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.IdentityModel.Abstractions.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.IdentityModel.Abstractions.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.IdentityModel.JsonWebTokens.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.IdentityModel.JsonWebTokens.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.IdentityModel.Logging.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.IdentityModel.Logging.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.IdentityModel.Protocols.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.IdentityModel.Protocols.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.IdentityModel.Tokens.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.IdentityModel.Tokens.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.OpenApi.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.OpenApi.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.SqlServer.Server.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.SqlServer.Server.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.VisualStudio.SolutionPersistence.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Microsoft.VisualStudio.SolutionPersistence.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Mono.TextTemplating.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Mono.TextTemplating.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NJsonSchema.Annotations.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NJsonSchema.Annotations.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NJsonSchema.NewtonsoftJson.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NJsonSchema.NewtonsoftJson.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NJsonSchema.Yaml.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NJsonSchema.Yaml.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NJsonSchema.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NJsonSchema.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NSwag.Annotations.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NSwag.Annotations.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NSwag.AspNetCore.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NSwag.AspNetCore.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NSwag.Core.Yaml.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NSwag.Core.Yaml.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NSwag.Core.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NSwag.Core.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NSwag.Generation.AspNetCore.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NSwag.Generation.AspNetCore.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NSwag.Generation.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/NSwag.Generation.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Namotion.Reflection.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Namotion.Reflection.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Newtonsoft.Json.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Newtonsoft.Json.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Plainquire.Filter.Abstractions.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Plainquire.Filter.Abstractions.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Plainquire.Page.Abstractions.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Plainquire.Page.Abstractions.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Plainquire.Page.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/Plainquire.Page.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.ClientModel.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.ClientModel.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.CodeDom.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.CodeDom.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.Composition.AttributedModel.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.Composition.AttributedModel.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.Composition.Convention.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.Composition.Convention.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.Composition.Hosting.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.Composition.Hosting.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.Composition.Runtime.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.Composition.Runtime.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.Composition.TypedParts.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.Composition.TypedParts.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.Configuration.ConfigurationManager.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.Configuration.ConfigurationManager.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.IdentityModel.Tokens.Jwt.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.IdentityModel.Tokens.Jwt.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.Memory.Data.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.Memory.Data.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.Security.Cryptography.ProtectedData.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/System.Security.Cryptography.ProtectedData.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/YamlDotNet.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/YamlDotNet.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/cs/Microsoft.CodeAnalysis.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/cs/Microsoft.CodeAnalysis.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/cs/Microsoft.Data.SqlClient.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/cs/Microsoft.Data.SqlClient.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/de/Microsoft.CodeAnalysis.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/de/Microsoft.CodeAnalysis.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/de/Microsoft.CodeAnalysis.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/de/Microsoft.CodeAnalysis.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/de/Microsoft.Data.SqlClient.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/de/Microsoft.Data.SqlClient.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/es/Microsoft.CodeAnalysis.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/es/Microsoft.CodeAnalysis.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/es/Microsoft.CodeAnalysis.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/es/Microsoft.CodeAnalysis.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/es/Microsoft.Data.SqlClient.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/es/Microsoft.Data.SqlClient.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/fr/Microsoft.CodeAnalysis.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/fr/Microsoft.CodeAnalysis.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/fr/Microsoft.Data.SqlClient.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/fr/Microsoft.Data.SqlClient.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/it/Microsoft.CodeAnalysis.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/it/Microsoft.CodeAnalysis.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/it/Microsoft.CodeAnalysis.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/it/Microsoft.CodeAnalysis.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/it/Microsoft.Data.SqlClient.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/it/Microsoft.Data.SqlClient.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ja/Microsoft.CodeAnalysis.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ja/Microsoft.CodeAnalysis.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ja/Microsoft.Data.SqlClient.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ja/Microsoft.Data.SqlClient.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ko/Microsoft.CodeAnalysis.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ko/Microsoft.CodeAnalysis.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ko/Microsoft.Data.SqlClient.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ko/Microsoft.Data.SqlClient.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pl/Microsoft.CodeAnalysis.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pl/Microsoft.CodeAnalysis.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pl/Microsoft.Data.SqlClient.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pl/Microsoft.Data.SqlClient.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pt-BR/Microsoft.CodeAnalysis.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pt-BR/Microsoft.CodeAnalysis.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pt-BR/Microsoft.Data.SqlClient.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/pt-BR/Microsoft.Data.SqlClient.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ru/Microsoft.CodeAnalysis.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ru/Microsoft.CodeAnalysis.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ru/Microsoft.Data.SqlClient.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/ru/Microsoft.Data.SqlClient.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/tr/Microsoft.CodeAnalysis.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/tr/Microsoft.CodeAnalysis.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/tr/Microsoft.Data.SqlClient.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/tr/Microsoft.Data.SqlClient.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hans/Microsoft.Data.SqlClient.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hans/Microsoft.Data.SqlClient.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hant/Microsoft.Data.SqlClient.resources.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/bin/Debug/net10.0/zh-Hant/Microsoft.Data.SqlClient.resources.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/BookHive.csproj.nuget.dgspec.json" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/BookHive.csproj.nuget.dgspec.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/BookHive.csproj.nuget.g.targets" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/BookHive.csproj.nuget.g.targets" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/BookHive.AssemblyInfo.cs" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/BookHive.AssemblyInfo.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/BookHive.AssemblyInfoInputs.cache" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/BookHive.AssemblyInfoInputs.cache" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/BookHive.assets.cache" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/BookHive.assets.cache" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/BookHive.csproj.CoreCompileInputs.cache" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/BookHive.csproj.CoreCompileInputs.cache" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/BookHive.csproj.FileListAbsolute.txt" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/BookHive.csproj.FileListAbsolute.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/BookHive.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/BookHive.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/BookHive.genruntimeconfig.cache" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/BookHive.genruntimeconfig.cache" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/BookHive.pdb" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/BookHive.pdb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/ref/BookHive.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/ref/BookHive.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/refint/BookHive.dll" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/refint/BookHive.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/rjsmcshtml.dswa.cache.json" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/rjsmcshtml.dswa.cache.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/rjsmrazor.dswa.cache.json" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/rjsmrazor.dswa.cache.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/rpswa.dswa.cache.json" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/Debug/net10.0/rpswa.dswa.cache.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/project.assets.json" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/project.assets.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/project.nuget.cache" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/project.nuget.cache" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/obj/rider.project.model.nuget.info" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/obj/rider.project.model.nuget.info" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/DTO/Book/GetBookDto.cs" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/DTO/Book/GetBookDto.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/BookHive/MappingProfiles/EntityToDtoMappings.cs" beforeDir="false" afterPath="$PROJECT_DIR$/BookHive/MappingProfiles/EntityToDtoMappings.cs" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -213,6 +45,20 @@
<setting file="file://$PROJECT_DIR$/BookHive/Endpoints/Reviews/CreateReviewEndpoint.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/BookHive/Specifications/Loans/GetAvailableBookByIdSpec.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/BookHive/Specifications/Reviews/GetReviewByCriteriaSpec.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/BookHive/Validators/Authors/CreateAuthorDtoValidator.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/BookHive/Validators/Authors/GetAuthorDtoValidator.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/BookHive/Validators/Authors/UpdateAuthorDtoValidator.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/BookHive/Validators/Books/CreateBookDtoValidator.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/BookHive/Validators/Books/GetBookDtoValidator.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/BookHive/Validators/Books/UpdateBookDtoValidator.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/BookHive/Validators/CustomValidators.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/BookHive/Validators/Loans/CreateLoanDtoValidator.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/BookHive/Validators/Loans/PatchLoanDtoValidator.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/BookHive/Validators/Loans/UpdateLoanDtoValidator.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/BookHive/Validators/Members/CreateMemberDtoValidator.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/BookHive/Validators/Members/UpdateMemberDtoValidator.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/BookHive/Validators/Reviews/CreateReviewDtoValidator.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/BookHive/Validators/Reviews/UpdateReviewDtoValidator.cs" root0="FORCE_HIGHLIGHTING" />
</component>
<component name="MetaFilesCheckinStateConfiguration" checkMetaFiles="true" />
<component name="ProblemsViewState">
@@ -284,7 +130,7 @@
<updated>1773087844958</updated>
<workItem from="1773087846465" duration="527000" />
<workItem from="1773088517368" duration="6491000" />
<workItem from="1773126764051" duration="1365000" />
<workItem from="1773126764051" duration="5972000" />
</task>
<task id="LOCAL-00001" summary="first commit">
<option name="closed" value="true" />
@@ -318,7 +164,15 @@
<option name="project" value="LOCAL" />
<updated>1773127149315</updated>
</task>
<option name="localTasksCounter" value="5" />
<task id="LOCAL-00005" summary="insert datas">
<option name="closed" value="true" />
<created>1773128141686</created>
<option name="number" value="00005" />
<option name="presentableId" value="LOCAL-00005" />
<option name="project" value="LOCAL" />
<updated>1773128141686</updated>
</task>
<option name="localTasksCounter" value="6" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
@@ -331,7 +185,8 @@
<MESSAGE value="first commit" />
<MESSAGE value="created all endpoints" />
<MESSAGE value="fix error with sending responses" />
<option name="LAST_COMMIT_MESSAGE" value="fix error with sending responses" />
<MESSAGE value="insert datas" />
<option name="LAST_COMMIT_MESSAGE" value="insert datas" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>

View File

@@ -6,4 +6,6 @@ public class GetBookDto
public string? Title { get; set; }
public DateOnly PublishedDate { get; set; }
public string? Genre { get; set; }
public string? Isbn { get; set; }
public string? AuthorFullName { get; set; }
}

View File

@@ -12,7 +12,13 @@ public class EntityToDtoMappings : Profile
{
public EntityToDtoMappings()
{
CreateMap<Book, GetBookDto>();
CreateMap<Book, GetBookDto>()
.ForMember(
dest => dest.AuthorFullName,
opt =>
opt.MapFrom(src =>
src.Author!.FirstName + " " + src.Author.LastName)
);
CreateMap<Book, GetBookDetailsDto>();
CreateMap<Author, GetAuthorDto>();

View File

@@ -0,0 +1,45 @@
using BookHive.DTO.Author;
using FastEndpoints;
using FluentValidation;
namespace BookHive.Validators.Authors;
public class CreateAuthorDtoValidator : Validator<CreateAuthorDto>
{
public CreateAuthorDtoValidator()
{
RuleFor(x => x.FirstName)
.NotEmpty()
.WithMessage("First name is required.")
.MaximumLength(100)
.WithMessage("First name cannot exceed 100 characters.")
.MinimumLength(2)
.WithMessage("First name must exceed 2 characters.");
RuleFor(x => x.LastName)
.NotEmpty()
.WithMessage("Last name is required.")
.MaximumLength(100)
.WithMessage("Last name cannot exceed 100 characters.")
.MinimumLength(2)
.WithMessage("Last name must exceed 2 characters.");
RuleFor(x => x.Biography)
.MaximumLength(2000)
.WithMessage("Biography cannot exceed 2000 characters.")
.MinimumLength(2)
.WithMessage("Biography must exceed 2 characters.");
RuleFor(x => x.BirthDate)
.NotEmpty()
.WithMessage("Birth date is required.")
.LessThan(DateOnly.FromDateTime(DateTime.Now))
.WithMessage("Birth date cannot be in the future.");
RuleFor(x => x.Nationality)
.NotEmpty()
.WithMessage("Nationality is required.")
.MaximumLength(60)
.WithMessage("Nationality cannot exceed 60 characters.");
}
}

View File

@@ -0,0 +1,23 @@
using BookHive.DTO.Author;
using FastEndpoints;
using FluentValidation;
namespace BookHive.Validators.Authors;
public class GetAuthorDtoValidator : Validator<GetAuthorDto>
{
public GetAuthorDtoValidator()
{
RuleFor(x => x.Id)
.GreaterThan(0)
.WithMessage("Id is invalid");
RuleFor(x => x.FirstName)
.NotEmpty()
.WithMessage("First name is required");
RuleFor(x => x.LastName)
.NotEmpty()
.WithMessage("Last name is required");
}
}

View File

@@ -0,0 +1,49 @@
using BookHive.DTO.Author;
using FastEndpoints;
using FluentValidation;
namespace BookHive.Validators.Authors;
public class UpdateAuthorDtoValidator : Validator<UpdateAuthorDto>
{
public UpdateAuthorDtoValidator()
{
RuleFor(x => x.Id)
.GreaterThan(0)
.WithMessage("Id is invalid.");
RuleFor(x => x.FirstName)
.NotEmpty()
.WithMessage("First name is required.")
.MaximumLength(100)
.WithMessage("First name cannot exceed 100 characters.")
.MinimumLength(2)
.WithMessage("First name must exceed 2 characters.");
RuleFor(x => x.LastName)
.NotEmpty()
.WithMessage("Last name is required.")
.MaximumLength(100)
.WithMessage("Last name cannot exceed 100 characters.")
.MinimumLength(2)
.WithMessage("Last name must exceed 2 characters.");
RuleFor(x => x.Biography)
.MaximumLength(2000)
.WithMessage("Biography cannot exceed 2000 characters.")
.MinimumLength(2)
.WithMessage("Biography must exceed 2 characters.");
RuleFor(x => x.BirthDate)
.NotEmpty()
.WithMessage("Birth date is required.")
.LessThan(DateOnly.FromDateTime(DateTime.Now))
.WithMessage("Birth date cannot be in the future.");
RuleFor(x => x.Nationality)
.NotEmpty()
.WithMessage("Nationality is required.")
.MaximumLength(60)
.WithMessage("Nationality cannot exceed 60 characters.");
}
}

View File

@@ -0,0 +1,46 @@
using BookHive.DTO.Book;
using FastEndpoints;
using FluentValidation;
namespace BookHive.Validators.Books;
public class CreateBookDtoValidator : Validator<CreateBookDto>
{
public CreateBookDtoValidator()
{
RuleFor(x => x.Title)
.NotEmpty().WithMessage("Le titre est obligatoire.")
.MaximumLength(200)
.WithMessage("Le titre ne peut pas dépasser 200 caractères.");
RuleFor(x => x.Isbn)
.NotEmpty().WithMessage("LISBN est obligatoire.")
.Matches(@"^\d{13}$")
.WithMessage("LISBN doit contenir exactement 13 chiffres.");
RuleFor(x => x.PageCount)
.GreaterThan(0)
.WithMessage("Le nombre de pages doit être supérieur à 0.");
RuleFor(x => x.PublishedDate)
.NotEmpty().WithMessage("La date de publication est obligatoire.")
.Must(d => d <= DateOnly.FromDateTime(DateTime.Now))
.WithMessage("La date de publication ne peut pas être dans le futur.");
RuleFor(x => x.Genre)
.NotEmpty()
.WithMessage("Le genre est obligatoire.")
.MaximumLength(50)
.WithMessage("Le genre ne peut pas dépasser 50 caractères.");
RuleFor(x => x.AuthorId)
.GreaterThan(0)
.WithMessage("Lidentifiant de lauteur est invalide.");
When(x => x.Summary != null, () =>
{
RuleFor(x => x.Summary)
.MaximumLength(3000).WithMessage("Le résumé ne peut pas dépasser 3000 caractères.");
});
}
}

View File

@@ -0,0 +1,28 @@
using BookHive.DTO.Book;
using FastEndpoints;
using FluentValidation;
namespace BookHive.Validators.Books;
public class GetBookDtoValidator : Validator<GetBookDto>
{
public GetBookDtoValidator()
{
RuleFor(x => x.Id)
.GreaterThan(0)
.WithMessage("Id is invalid");
RuleFor(x => x.Title)
.NotEmpty()
.WithMessage("Title is required");
RuleFor(x => x.Isbn)
.NotEmpty().WithMessage("LISBN est obligatoire.")
.Matches(@"^\d{13}$")
.WithMessage("LISBN doit contenir exactement 13 chiffres.");
RuleFor(x => x.AuthorFullName)
.NotEmpty()
.WithMessage("AuthorFullName is required");
}
}

View File

@@ -0,0 +1,50 @@
using BookHive.DTO.Book;
using FastEndpoints;
using FluentValidation;
namespace BookHive.Validators.Books;
public class UpdateBookDtoValidator : Validator<UpdateBookDto>
{
public UpdateBookDtoValidator()
{
RuleFor(x => x.Id)
.GreaterThan(0)
.WithMessage("Id is invalid.");
RuleFor(x => x.Title)
.NotEmpty().WithMessage("Le titre est obligatoire.")
.MaximumLength(200)
.WithMessage("Le titre ne peut pas dépasser 200 caractères.");
RuleFor(x => x.Isbn)
.NotEmpty().WithMessage("LISBN est obligatoire.")
.Matches(@"^\d{13}$")
.WithMessage("LISBN doit contenir exactement 13 chiffres.");
RuleFor(x => x.PageCount)
.GreaterThan(0)
.WithMessage("Le nombre de pages doit être supérieur à 0.");
RuleFor(x => x.PublishedDate)
.NotEmpty().WithMessage("La date de publication est obligatoire.")
.Must(d => d <= DateOnly.FromDateTime(DateTime.Now))
.WithMessage("La date de publication ne peut pas être dans le futur.");
RuleFor(x => x.Genre)
.NotEmpty()
.WithMessage("Le genre est obligatoire.")
.MaximumLength(50)
.WithMessage("Le genre ne peut pas dépasser 50 caractères.");
RuleFor(x => x.AuthorId)
.GreaterThan(0)
.WithMessage("Lidentifiant de lauteur est invalide.");
When(x => x.Summary != null, () =>
{
RuleFor(x => x.Summary)
.MaximumLength(3000).WithMessage("Le résumé ne peut pas dépasser 3000 caractères.");
});
}
}

View File

@@ -0,0 +1,28 @@
using FluentValidation;
namespace BookHive.Validators;
public static class CustomValidators
{
public static IRuleBuilderOptions<T, string>
IsValidIsbn13<T>(this IRuleBuilder<T, string> ruleBuilder)
{
return ruleBuilder
.Matches(@"^\d{13}$")
.WithMessage("LISBN doit contenir 13 chiffres.")
.Must(isbn =>
{
if (string.IsNullOrEmpty(isbn) || isbn.Length != 13)
return false;
var sum = 0;
for (int i = 0; i < 12; i++)
{
var digit = isbn[i] - '0';
sum += (i % 2 == 0) ? digit : digit * 3;
}
var checkDigit = (10 - (sum % 10)) % 10;
return checkDigit == (isbn[12] - '0');
})
.WithMessage("Le chiffre de contrôle ISBN est invalide.");
}
}

View File

@@ -0,0 +1,31 @@
using BookHive.DTO.Loan;
using FastEndpoints;
using FluentValidation;
namespace BookHive.Validators.Loans;
public class CreateLoanDtoValidator : Validator<CreateLoanDto>
{
public CreateLoanDtoValidator()
{
RuleFor(x => x.BookId)
.GreaterThan(0)
.WithMessage("Invalid book id.");
RuleFor(x => x.MemberId)
.GreaterThan(0)
.WithMessage("Invalid member id.");
RuleFor(x => x.LoanDate)
.NotEmpty()
.WithMessage("Date is required.");
RuleFor(x => x.DueDate)
.NotEmpty()
.WithMessage("Due date is required.")
.GreaterThan(d => d.LoanDate)
.WithMessage("Due date must be in the future.")
.Must((loan, dueDate) => dueDate <= loan.LoanDate.AddDays(30))
.WithMessage("Due date must be in the future.");;
}
}

View File

@@ -0,0 +1,15 @@
using BookHive.Endpoints.Loans;
using FastEndpoints;
using FluentValidation;
namespace BookHive.Validators.Loans;
public class PatchLoanDtoValidator : Validator<PatchReturnLoanRequest>
{
public PatchLoanDtoValidator()
{
RuleFor(x => x.Id)
.GreaterThan(0)
.WithMessage("Id is invalid");
}
}

View File

@@ -0,0 +1,42 @@
using BookHive.DTO.Loan;
using FastEndpoints;
using FluentValidation;
namespace BookHive.Validators.Loans;
public class UpdateLoanDtoValidator : Validator<UpdateLoanDto>
{
public UpdateLoanDtoValidator()
{
RuleFor(x => x.Id)
.GreaterThan(0)
.WithMessage("Id is invalid.");
RuleFor(x => x.BookId)
.GreaterThan(0)
.WithMessage("Invalid book id.");
RuleFor(x => x.MemberId)
.GreaterThan(0)
.WithMessage("Invalid member id.");
RuleFor(x => x.LoanDate)
.NotEmpty()
.WithMessage("Date is required.");
RuleFor(x => x.DueDate)
.NotEmpty()
.WithMessage("Due date is required.")
.GreaterThan(d => d.LoanDate)
.WithMessage("Due date must be in the future.")
.Must((loan, dueDate) => dueDate <= loan.LoanDate.AddDays(30))
.WithMessage("Due date must be in the future.");
When(x => x.ReturnDate != null, () =>
{
RuleFor(x => x.ReturnDate)
.GreaterThan(d => d.LoanDate)
.WithMessage("Return date must be in the future.");
});
}
}

View File

@@ -0,0 +1,41 @@
using BookHive.DTO.Member;
using FastEndpoints;
using FluentValidation;
namespace BookHive.Validators.Members;
public class CreateMemberDtoValidator : Validator<CreateMemberDto>
{
public CreateMemberDtoValidator()
{
RuleFor(x => x.Email)
.NotEmpty()
.WithMessage("Email is required.")
.EmailAddress()
.WithMessage("Email is invalid.")
.MaximumLength(255)
.WithMessage("Email cannot be longer than 255 characters.");
RuleFor(x => x.FirstName)
.NotEmpty()
.WithMessage("First name is required.")
.MaximumLength(100)
.WithMessage("First name cannot be longer than 100 characters.")
.MinimumLength(2)
.WithMessage("First name cannot be shorter than 2 characters.");
RuleFor(x => x.LastName)
.NotEmpty()
.WithMessage("Last name is required.")
.MaximumLength(100)
.WithMessage("Last name cannot be longer than 100 characters.")
.MinimumLength(2)
.WithMessage("Last name cannot be shorter than 2 characters.");
RuleFor(x => x.MembershipDate)
.NotEmpty()
.WithMessage("Membership date is required.")
.Must(d => d <= DateOnly.FromDateTime(DateTime.Now))
.WithMessage("Membership date cannot be in the future.");
}
}

View File

@@ -0,0 +1,45 @@
using BookHive.DTO.Member;
using FastEndpoints;
using FluentValidation;
namespace BookHive.Validators.Members;
public class UpdateMemberDtoValidator : Validator<UpdateMemberDto>
{
public UpdateMemberDtoValidator()
{
RuleFor(x => x.Id)
.GreaterThan(0)
.WithMessage("Id is invalid.");
RuleFor(x => x.Email)
.NotEmpty()
.WithMessage("Email is required.")
.EmailAddress()
.WithMessage("Email is invalid.")
.MaximumLength(255)
.WithMessage("Email cannot be longer than 255 characters.");
RuleFor(x => x.FirstName)
.NotEmpty()
.WithMessage("First name is required.")
.MaximumLength(100)
.WithMessage("First name cannot be longer than 100 characters.")
.MinimumLength(2)
.WithMessage("First name cannot be shorter than 2 characters.");
RuleFor(x => x.LastName)
.NotEmpty()
.WithMessage("Last name is required.")
.MaximumLength(100)
.WithMessage("Last name cannot be longer than 100 characters.")
.MinimumLength(2)
.WithMessage("Last name cannot be shorter than 2 characters.");
RuleFor(x => x.MembershipDate)
.NotEmpty()
.WithMessage("Membership date is required.")
.Must(d => d <= DateOnly.FromDateTime(DateTime.Now))
.WithMessage("Membership date cannot be in the future.");
}
}

View File

@@ -0,0 +1,30 @@
using BookHive.DTO.Review;
using FastEndpoints;
using FluentValidation;
namespace BookHive.Validators.Reviews;
public class CreateReviewDtoValidator : Validator<CreateReviewDto>
{
public CreateReviewDtoValidator()
{
RuleFor(x => x.MemberId)
.GreaterThan(0)
.WithMessage("Member id is invalid.");
RuleFor(x => x.BookId)
.GreaterThan(0)
.WithMessage("Book id is invalid.");
RuleFor(x => x.Rating)
.InclusiveBetween(1, 5)
.WithMessage("Rating must be between 1 and 5.");
When(x => x.Comment is not null, () =>
{
RuleFor(x => x.Comment)
.MaximumLength(3000)
.WithMessage("Comment cannot exceed 3000 characters.");
});
}
}

View File

@@ -0,0 +1,34 @@
using BookHive.DTO.Review;
using FastEndpoints;
using FluentValidation;
namespace BookHive.Validators.Reviews;
public class UpdateReviewDtoValidator : Validator<UpdateReviewDto>
{
public UpdateReviewDtoValidator()
{
RuleFor(x => x.Id)
.GreaterThan(0)
.WithMessage("Id is invalid.");
RuleFor(x => x.BookId)
.GreaterThan(0)
.WithMessage("Book id is invalid.");
RuleFor(x => x.MemberId)
.GreaterThan(0)
.WithMessage("Member id is invalid.");
RuleFor(x => x.Rating)
.InclusiveBetween(1, 5)
.WithMessage("Rating must be between 1 and 5.");
When(x => x.Comment is not null, () =>
{
RuleFor(x => x.Comment)
.MaximumLength(3000)
.WithMessage("Comment cannot exceed 3000 characters.");
});
}
}