This structured approach ensures a clear separation of concerns, making the codebase easier to manage and extend. Below is an outline of the projectβs directory structure:
------------------------------------------------------------------
PrivateHistoryService
βββ src π¦
β βββ PrivateHistoryService.Domain π
β β βββ Entities π
β β β βββ _README.txt
β β β βββ AggregateRoot.cs
β β β βββ User.cs
----------------------------
β β βββ Events π
β β β βββ _README.txt
β β β βββ CommentedArticleAdded.cs
β β β βββ CommentedArticleRemoved.cs
β β β βββ DislikedArticleAdded.cs
β β β βββ DislikedArticleCommentAdded.cs
β β β βββ IDomainEvent.cs
β β β βββ LikedArticleAdded.cs
β β β βββ LikedArticleCommentAdded.cs
β β β βββ SearchedArticleDataAdded.cs
β β β βββ SearchedArticleDataRemoved.cs
β β β βββ SearchedTopicDataAdded.cs
β β β βββ SearchedTopicDataRemoved.cs
β β β βββ TopicSubscriptionAdded.cs
β β β βββ TopicSubscriptionRemoved.cs
β β β βββ UserRetentionUntilAdded.cs
β β β βββ ViewedArticleAdded.cs
β β β βββ ViewedArticleRemoved.cs
β β β βββ ViewedUserAdded.cs
β β β βββ ViewedUserRemoved.cs
----------------------------
β β βββ Exceptions π
β β β βββ _README.txt
β β β βββ <<CustomDomainLayerExceptions>>
----------------------------
β β βββ Factories π
β β β βββ Interfaces π
β β β | βββ IUserFactory.cs
β β β βββ _README.txt
β β β βββ UserFactory.cs
----------------------------
β β βββ Repositories π
β β β βββ _README.txt
β β β βββ IUserRepository.cs
----------------------------
β β βββ ValueObjects π
β β β βββ _README.txt
β β β βββ ArticleComment.cs
β β β βββ ArticleCommentID.cs
β β β βββ ArticleID.cs
β β β βββ CommentedArticle.cs
β β β βββ DislikedArticle.cs
β β β βββ DislikedArticleComment.cs
β β β βββ LikedArticle.cs
β β β βββ LikedArticleComment.cs
β β β βββ SearchedArticleData.cs
β β β βββ SearchedData.cs
β β β βββ SearchedDataAnswer.cs
β β β βββ SearchedDataAnswerContext.cs
β β β βββ SearchedTopicData.cs
β β β βββ TopicID.cs
β β β βββ TopicSubscription.cs
β β β βββ UserID.cs
β β β βββ UserRetentionUntil.cs
β β β βββ ViewedArticle.cs
β β β βββ ViewedUser.cs
----------------------------
β βββ PrivateHistoryService.Application π
β β βββ Commands π
β β β βββ Dispatcher π
β β β β βββ _README.txt
β β β β βββ ICommandDispatcher.cs
β β β β βββ InMemoryCommandDispatcher.cs
β β β βββ Handlers π
β β β β βββ _README.txt
β β β β βββ AddCommentedArticleHandler.cs
β β β β βββ AddDislikedArticleCommentHandler.cs
β β β β βββ AddDislikedArticleHandler.cs
β β β β βββ AddLikedArticleCommentHandler.cs
β β β β βββ AddLikedArticleHandler.cs
β β β β βββ AddSearchedArticleDataHandler.cs
β β β β βββ AddSearchedTopicDataHandler.cs
β β β β βββ AddTopicSubscriptionHandler.cs
β β β β βββ AddUserHandler.cs
β β β β βββ AddViewedArticleHandler.cs
β β β β βββ AddViewedUserHandler.cs
β β β β βββ ICommandHandler.cs
β β β β βββ RemoveCommentedArticleHandler.cs
β β β β βββ RemoveSearchedArticleDataHandler.cs
β β β β βββ RemoveSearchedTopicDataHandler.cs
β β β β βββ RemoveTopicSubscriptionHandler.cs
β β β β βββ RemoveViewedArticleHandler.cs
β β β β βββ RemoveViewedUserHandler.cs
β β β β βββ SetUserRetentionDateTimeHandler.cs
β β | βββ _README.txt
β β | βββ AddCommentedArticleCommand.cs
β β | βββ AddDislikedArticleCommand.cs
β β | βββ AddDislikedArticleCommentCommand.cs
β β | βββ AddLikedArticleCommand.cs
β β | βββ AddLikedArticleCommentCommand.cs
β β | βββ AddSearchedArticleDataCommand.cs
β β | βββ AddSearchedTopicDataCommand.cs
β β | βββ AddTopicSubscriptionCommand.cs
β β | βββ AddUserCommand.cs
β β | βββ AddViewedArticleCommand.cs
β β | βββ AddViewedUserCommand.cs
β β | βββ ICommand.cs
β β | βββ RemoveCommentedArticleCommand.cs
β β | βββ RemoveSearchedArticleDataCommand.cs
β β | βββ RemoveSearchedTopicDataCommand.cs
β β | βββ RemoveTopicSubscriptionCommand.cs
β β | βββ RemoveViewedArticleCommand.cs
β β | βββ RemoveViewedUserCommand.cs
β β | βββ SetUserRetentionDateTimeCommand.cs
----------------------------
β β βββ Dtos π
β β β βββ _README.txt
β β β βββ CommentedArticleDto.cs
β β β βββ DislikedArticleCommentDto.cs
β β β βββ DislikedArticleDto.cs
β β β βββ LikedArticleCommentDto.cs
β β β βββ LikedArticleDto.cs
β β β βββ SearchedArticleDataDto.cs
β β β βββ SearchedTopicDataDto.cs
β β β βββ TopicSubscriptionDto.cs
β β β βββ ViewedArticleDto.cs
β β β βββ ViewedUserDto.cs
----------------------------
β β βββ Exceptions π
β β β βββ _README.txt
β β β βββ <<CustomApplicationLayerExceptions>>
----------------------------
β β βββ Extensions π
β β β βββ DateTimeOffsetExtensions.cs
β β β βββ ServiceCollectionExtensions.cs
----------------------------
β β βββ Queries π
β β β βββ Dispatcher π
β β β β βββ InMemoryQueryDispatcher.cs
β β β β βββ IQueryDispatcher.cs
β β | βββ Handlers π
β β β β βββ IQueryHandler.cs
β β | βββ _README.txt
β β | βββ GetArticleCommentDislikesQuery.cs
β β | βββ GetArticleCommentLikesQuery.cs
β β | βββ GetArticleDislikesQuery.cs
β β | βββ GetArticleLikesQuery.cs
β β | βββ GetCommentedArticlesQuery.cs
β β | βββ GetSearchedArticlesDataQuery.cs
β β | βββ GetSearchedTopicsDataQuery.cs
β β | βββ GetTopicSubscriptionsQuery.cs
β β | βββ GetViewedArticlesQuery.cs
β β | βββ GeViewedUsersQuery.cs
β β | βββ IQuery.cs
----------------------------
β β βββ Services π
β β β βββ ReadServices π
β β β β βββ ICommentedArticleReadService.cs
β β β β βββ ISearchedArticleDataReadService.cs
β β β β βββ ISearchedTopicDataReadService.cs
β β β β βββ IUserReadService.cs
β β β β βββ IViewedArticleReadService.cs
β β β β βββ IViewedUserReadService.cs
β β β βββ WriteServices π
β β β β βββ ICommentedArticleWriteService.cs
β β β β βββ IDislikedArticleCommentWriteService.cs
β β β β βββ IDislikedArticleWriteService.cs
β β β β βββ ILikedArticleCommentWriteService.cs
β β β β βββ ILikedArticleWriteService.cs
β β β β βββ ISearchedArticleDataWriteService.cs
β β β β βββ ITopicSubscriptionWriteService.cs
β β β β βββ IUserWriteService.cs
β β β β βββ IViewedArticleWriteService.cs
β β | βββ _README.txt
----------------------------
β βββ PrivateHistoryService.Infrastructure π
β β βββ AsyncDataServices π
β β β βββ MessageBusSubscriber.cs
----------------------------
β β βββ Automapper π
β β β βββ Profiles π
β β β β βββ _README.txt
β β β β βββ CommentedArticleProfile.cs
β β β β βββ DislikedArticleCommentProfile.cs
β β β β βββ DislikedArticleProfile.cs
β β β β βββ LikedArticleCommentProfile.cs
β β β β βββ LikedArticleProfile.cs
β β β β βββ SearchedArticleDataProfile.cs
β β β β βββ SearchedTopicDataProfile.cs
β β β β βββ TopicSubscriptionProfile.cs
β β β β βββ ViewedArticleProfile.cs
β β β β βββ ViewedUserProfile.cs
----------------------------
β β βββ Dtos π
β β β βββ MessageBusEventDto.cs
----------------------------
β β βββ EntityFramework π
β β β βββ Contexts π
β β β β βββ _README.txt
β β β β βββ ReadDbContext.cs
β β β β βββ WriteDbContext.cs
β β β βββ Encryption π
β β β β βββ EncryptionConverters π
β β β β β βββ EncryptedArticleCommentConverter.cs
β β β β β βββ EncryptedDateTimeOffsetConverter.cs
β β β β β βββ EncryptedSearchedDataAnswerContextConverter.cs
β β β β β βββ EncryptedSearchedDataAnswerConverter.cs
β β β β β βββ EncryptedSearchedDataConverter.cs
β β β β β βββ EncryptedStringConverter.cs
β β β β β βββ EncryptedUserRetentionUntilConverter.cs
β β β β βββ EncryptionProvider π
β β β β β βββ IEncryptionProvider.cs
β β β β β βββ EncryptionProvider.cs
β β β βββ Initialization π
β β β β βββ _README.txt
β β β β βββ DbInitializer.cs
β β β βββ Migrations π
β β β β βββ <<EntityFramework database migrations>>
β β β βββ ModelConfiguration π
β β β β βββ ReadConfiguration π
β β β β β βββ CommentedArticleConfiguration.cs
β β β β β βββ DislikedArticleCommentConfiguration.cs
β β β β β βββ DislikedArticleConfiguration.cs
β β β β β βββ LikedArticleCommentConfiguration.cs
β β β β β βββ LikedArticleConfiguration.cs
β β β β β βββ SearchedArticleDataConfiguration.cs
β β β β β βββ SearchedTopicDataConfiguration.cs
β β β β β βββ TopicSubscriptionConfiguration.cs
β β β β β βββ UserConfiguration.cs
β β β β β βββ ViewedArticleConfiguration.cs
β β β β β βββ ViewedUserConfiguration.cs
β β β β βββ WriteConfiguration π
β β β β β βββ CommentedArticleConfiguration.cs
β β β β β βββ DislikedArticleCommentConfiguration.cs
β β β β β βββ DislikedArticleConfiguration.cs
β β β β β βββ LikedArticleCommentConfiguration.cs
β β β β β βββ LikedArticleConfiguration.cs
β β β β β βββ SearchedArticleDataConfiguration.cs
β β β β β βββ SearchedTopicDataConfiguration.cs
β β β β β βββ TopicSubscriptionConfiguration.cs
β β β β β βββ UserConfiguration.cs
β β β β β βββ ViewedArticleConfiguration.cs
β β β β β βββ ViewedUserConfiguration.cs
β β β βββ Models π
β β β β βββ CommentedArticleReadModel.cs
β β β β βββ DislikedArticleCommentReadModel.cs
β β β β βββ DislikedArticleReadModel.cs
β β β β βββ LikedArticleCommentReadModel.cs
β β β β βββ LikedArticleReadModel.cs
β β β β βββ SearchedArticleDataReadModel.cs
β β β β βββ SearchedTopicDataReadModel.cs
β β β β βββ TopicSubscriptionReadModel.cs
β β β β βββ UserReadModel.cs
β β β β βββ ViewedArticleReadModel.cs
β β β β βββ ViewedUserReadModel.cs
β β β βββ Options π
β β β β βββ PostgresOptions.cs
β β β βββ Repositories π
β β β β βββ PostgresUserRepository.cs
β β β βββ Services π
β β β β βββ ReadServices π
β β β β | βββ PostgresCommentedArticleReadService.cs
β β β β | βββ PostgresSearchedArticleDataReadService.cs
β β β β | βββ PostgresSearchedTopicDataReadService.cs
β β β β | βββ PostgresUserReadService.cs
β β β β | βββ PostgresViewedArticleReadService.cs
β β β β | βββ PostgresViewedUserReadService.cs
β β β β βββ WriteServices π
β β β β | βββ PostgresCommentedArticleWriteService.cs
β β β β | βββ PostgresDislikedArticleCommentWriteService.cs
β β β β | βββ PostgresDislikedArticleWriteService.cs
β β β β | βββ PostgresLikedArticleCommentWriteService.cs
β β β β | βββ PostgresLikedArticleWriteService.cs
β β β β | βββ PostgresSearchedArticleDataWriteService.cs
β β β β | βββ PostgresTopicSubscriptionWriteService.cs
β β β β | βββ PostgresUserWriteService.cs
β β β β | βββ PostgresViewedArticleWriteService.cs
----------------------------
β β βββ EventProcessing π
β β β βββ EventProcessor.cs
β β β βββ IEventProcessor.cs
----------------------------
β β βββ Exceptions π
β β β βββ Interfaces π
β β β β βββ IExceptionToResponseMapper.cs
β β β βββ ExceptionResponse.cs
β β β βββ ExceptionToResponseMapper.cs
β β β βββ InfrastructureException.cs
β β β βββ NullDbContextException.cs
----------------------------
β β βββ Extensions π
β β β βββ ConfigurationExtensions.cs
β β β βββ ServiceCollectionExtensions.cs
----------------------------
β β βββ Logging π
β β β βββ Formatters π
β β β β βββ SerilogJsonFormatter.cs
β β β βββ LoggingCommandHandlerDecorator.cs
----------------------------
β β βββ Queries π
β β β βββ Handlers π
β β β β βββ GetArticleCommentDislikesHandler.cs
β β β β βββ GetArticleCommentLikesHandler.cs
β β β β βββ GetArticleDislikesHandler.cs
β β β β βββ GetArticleLikesHandler.cs
β β β β βββ GetCommentedArticlesHandler.cs
β β β β βββ GetSearchedArticlesDataHandler.cs
β β β β βββ GetSearchedTopicsDataHandler.cs
β β β β βββ GetTopicSubscriptionsHandler.cs
β β β β βββ GetViewedArticlesHandler.cs
β β β β βββ GeViewedUsersHandler.cs
----------------------------
β β βββ Schedulers π
β β β βββ RetentionJob.cs
----------------------------
β βββ PrivateHistoryService.Presentation π
β β βββ Properties π
β β β βββ launchSettings.json
β β βββ Controllers π
β β β βββ UserController.cs
β β βββ Dtos π
β β β βββ ResponseDto.cs
β β βββ Middlewares π
β β β βββ ErrorHandlerMiddleware.cs
β β β βββ RateLimitingMiddleware.cs
β β βββ appsettings.json
β β βββ Program.cs
----------------------------
βββ tests π§ͺ
β βββ PrivateHistoryService.Tests.EndToEnd
β β βββ Extensions π
β β β βββ ServiceCollectionExtensions.cs
β β βββ Factories π
β β β βββ PrivateHistoryServiceApplicationFactory.cs
β β βββ Sync π
β β β βββ AddCommentedArticleTests.cs
β β β βββ AddDislikedArticleCommentTests.cs
β β β βββ AddDislikedArticleTests.cs
β β β βββ AddLikedArticleCommentTests.cs
β β β βββ AddLikedArticleTests.cs
β β β βββ AddSearchedArticleDataTests.cs
β β β βββ AddSearchedTopicDataTests.cs
β β β βββ AddTopicSubscriptionTests.cs
β β β βββ AddViewedArticleTests.cs
β β β βββ AddViewedUserTests.cs
β β β βββ BaseSyncIntegrationTest.cs
β β β βββ RegisterUserTests.cs
β β β βββ RemoveCommentedArticleTests.cs
β β β βββ RemoveSearchedArticleDataTests.cs
β β β βββ RemoveSearchedTopicDataTests.cs
β β β βββ RemoveTopicSubscriptionTests.cs
β β β βββ RemoveViewedArticleTests.cs
β β β βββ RemoveViewedUserTests.cs
----------------------------
β βββ PrivateHistoryService.Tests.Unit
β β βββ Application π
β β β βββ Handlers π
β β β β βββ AddCommentedArticleHandlerTests.cs
β β β β βββ AddDislikedArticleCommentHandlerTests.cs
β β β β βββ AddDislikedArticleHandlerTests.cs
β β β β βββ AddLikedArticleCommentHandlerTests.cs
β β β β βββ AddLikedArticleHandlerTests.cs
β β β β βββ AddSearchedArticleDataHandlerTests.cs
β β β β βββ AddSearchedTopicDataHandlerTests.cs
β β β β βββ AddTopicSubscriptionHandlerTests.cs
β β β β βββ AddViewedArticleHandlerTests.cs
β β β β βββ AddViewedUserHandlerTests.cs
β β β β βββ RemoveCommentedArticleHandlerTests.cs
β β β β βββ RemoveSearchedArticleDataHandlerTests.cs
β β β β βββ RemoveSearchedTopicDataHandlerTests.cs
β β β β βββ RemoveTopicSubscriptionHandlerTests.cs
β β β β βββ RemoveViewedArticleHandlerTests.cs
β β β β βββ RemoveViewedUserHandlerTests.cs
β β βββ Domain π
β β β βββ Entities π
β β β β βββ UserTests π
β β β β | βββ AddCommentedArticle.cs
β β β β | βββ AddDislikedArticle.cs
β β β β | βββ AddDislikedArticleComment.cs
β β β β | βββ AddLikedArticle.cs
β β β β | βββ AddLikedArticleComment.cs
β β β β | βββ AddSearchedArticleData.cs
β β β β | βββ AddSearchedTopicData.cs
β β β β | βββ AddTopicSubscription.cs
β β β β | βββ AddTopicSubscription.cs
β β β β | βββ AddViewedArticle.cs
β β β β | βββ AddViewedUser.cs
β β β β | βββ RemoveCommentedArticle.cs
β β β β | βββ RemovedSearchedArticleData.cs
β β β β | βββ RemoveSearchedTopicData.cs
β β β β | βββ RemoveTopicSubscription.cs
β β β β | βββ RemoveViewedArticle.cs
β β β β | βββ RemoveViewedUser.cs
β β β βββ Factories π
β β β β βββ UserFactoryTests.cs
------------------------------------------------------------------
Layer | Directory/File | Description |
---|---|---|
Domain | PrivateHistoryService/src/PrivateHistoryService.Domain/Entities/ |
Contains domain entities representing core business concepts. |
Domain | PrivateHistoryService/src/PrivateHistoryService.Domain/Events/ |
Includes domain events capturing significant changes or actions. |
Domain | PrivateHistoryService/src/PrivateHistoryService.Domain/Exceptions/ |
Houses custom exceptions specific to domain logic. |
Domain | PrivateHistoryService/src/PrivateHistoryService.Domain/Factories/ |
Provides factories for creating domain entities. |
Domain | PrivateHistoryService/src/PrivateHistoryService.Domain/Repositories/ |
Defines interfaces or base classes for data access operations. |
Domain | PrivateHistoryService/src/PrivateHistoryService.Domain/ValueObjects/ |
Contains immutable value objects used within the domain. |
Application | PrivateHistoryService/src/PrivateHistoryService.Application/Commands/ |
Contains command types and serves as the central location for defining and organizing commands. |
Application | PrivateHistoryService/src/PrivateHistoryService.Application/Commands/Dispatcher/ |
Contains command dispatcher type and serves as the central component responsible for |
routing commands to their respective command handlers. | Β | Β |
Application | PrivateHistoryService/src/PrivateHistoryService.Application/Commands/Handlers/ |
Contains command handler types that implement ICommandHandler |
Command Query Responsibility Segregation (CQRS). | Β | Β |
Application | PrivateHistoryService/src/PrivateHistoryService.Application/Dtos/ |
Contains Data Transfer Objects (DTOs). |
Application | PrivateHistoryService/src/PrivateHistoryService.Application/Exceptions/ |
Contains Application layer specific custom exception types. |
Application | PrivateHistoryService/src/PrivateHistoryService.Application/Extensions/ |
Contains custom extension methods. |
Application | PrivateHistoryService/src/PrivateHistoryService.Application/Queries/ |
Contains query types and serves as the central location for defining and organizing queries. |
Application | PrivateHistoryService/src/PrivateHistoryService.Application/Queries/Dispatcher/ |
Contains query dispatcher type that implements IQueryDispatcher interface and serves as the central component responsible for |
routing queries to their respective query handlers for execution and data retrieval. | Β | Β |
Application | PrivateHistoryService/src/PrivateHistoryService.Application/Queries/Handlers/ |
Contains the definition of the IQueryHandler<TQuery, TResult> interface, which serves as a contract for all query handlers |
responsible for executing queries and retrieving data from the applicationβs read-side or queryable data sources. | Β | Β |
Application | PrivateHistoryService/src/PrivateHistoryService.Application/Services/ |
Implements application services containing business logic. |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/AsyncDataServices/ |
Defines implementations of interfaces for asynchronous operations. |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/Automapper/ |
Contains types, that are inheriting the Profile type from AutoMapper library. |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/Dtos/ |
Contains Data Transfer Objects (DTOs). |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/EntityFramework/Contexts/ |
Contains two EntityFramework DbContext classes - ReadDbContext and WriteDbContext. |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/EntityFramework/Encryption/ |
Contains custom EntityFramework encryption converters and encryption provider. |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/EntityFramework/Initialization/ |
Contains DbInitializer class that applies entity framework migrations. |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/EntityFramework/Migrations/ |
Contains EntityFramework migrations. |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/EntityFramework/ModelConfiguration/ReadConfiguration/ |
Contains classes that implement IEntityTypeConfiguration |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/EntityFramework/ModelConfiguration/WriteConfiguration/ |
Contains classes that implement IEntityTypeConfiguration |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/EntityFramework/Models/ |
Contains classes for the database models that represent the database tables and the overall database schema. |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/EntityFramework/Options/ |
Contains class that is used for the OPTIONS pattern. |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/EntityFramework/Repositories/ |
Contains implementations of interfaces for data access operations. |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/EntityFramework/Services/ |
Contains implementations of interfaces for services containing business logic. |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/EventProcessing/ |
Contains class that is responsible for processing eventβs that are received from outside the application. |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/Exceptions/ |
Contains Infrastructure layer specific custom exception types. |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/Extensions/ |
Contains custom extension methods. |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/Logging/ |
Contains logging decorators and formatters. The purpose of the decorators is to wrap the behaviour of a Command Handler or other part of the application and to enrich itβs capabilities with the ability to log information. |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/Queries/ |
Contains query handlers that work with the queries from the Command Query Responsibility Segregation (CQRS) approach. |
Infrastructure | PrivateHistoryService/src/PrivateHistoryService.Infrastructure/Schedulers/ |
Contains classes that represent schedulers for various activities. |
Presentation | PrivateHistoryService/src/PrivateHistoryService.Presentation/Properties/ |
Contains the application properties related to port and protocol configuration. |
Presentation | PrivateHistoryService/src/PrivateHistoryService.Presentation/Controllers/ |
Contains API controllers handling HTTP requests and responses. |
Presentation | PrivateHistoryService/src/PrivateHistoryService.Presentation/DTOs/ |
Provides Data Transfer Objects (DTOs) for API input and output. |
Presentation | PrivateHistoryService/src/PrivateHistoryService.Presentation/Middlewares/ |
Contains custom middlewares. |