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:
------------------------------------------------------------------
TopicArticleService
βββ src π¦
β βββ TopicArticleService.Domain π
β β βββ Entities π
β β β βββ _README.txt
β β β βββ AggregateRoot.cs
β β β βββ Article.cs
β β β βββ ArticleComment.cs
β β β βββ Topic.cs
β β β βββ User.cs
----------------------------
β β βββ Events π
β β β βββ _README.txt
β β β βββ ArticleCommentAdded.cs
β β β βββ ArticleCommentChildAdded.cs
β β β βββ ArticleCommentChildRemoved.cs
β β β βββ ArticleCommentDislikeAdded.cs
β β β βββ ArticleCommentDislikeRemoved.cs
β β β βββ ArticleCommentLikeAdded.cs
β β β βββ ArticleCommentLikeRemoved.cs
β β β βββ ArticleCommentRemoved.cs
β β β βββ ArticleDislikeAdded.cs
β β β βββ ArticleDislikeRemoved.cs
β β β βββ ArticleLikeAdded.cs
β β β βββ ArticleLikeRemoved.cs
β β β βββ IDomainEvent.cs
β β β βββ TopicAdded.cs
β β β βββ TopicChildAdded.cs
β β β βββ UserArticleAdded.cs
β β β βββ UserTopicAdded.cs
----------------------------
β β βββ Exceptions π
β β β βββ _README.txt
β β β βββ <<CustomDomainLayerExceptions>>
----------------------------
β β βββ Factories π
β β β βββ _README.txt
β β β βββ ArticleCommentFactory.cs
β β β βββ ArticleFactory.cs
β β β βββ TopicFactory.cs
β β β βββ UserFactory.cs
β β β βββ IArticleCommentFactory.cs
β β β βββ IArticleFactory.cs
β β β βββ ITopicFactory.cs
β β β βββ IUserFactory.cs
----------------------------
β β βββ Repositories π
β β β βββ _README.txt
β β β βββ IArticleCommentRepository.cs
β β β βββ IArticleRepository.cs
β β β βββ ITopicRepository.cs
β β β βββ IUserRepository.cs
----------------------------
β β βββ ValueObjects π
β β β βββ _README.txt
β β β βββ ArticleAuthor.cs
β β β βββ ArticleCommentDateTime.cs
β β β βββ ArticleCommentDislike.cs
β β β βββ ArticleCommentID.cs
β β β βββ ArticleCommentLike.cs
β β β βββ ArticleContent.cs
β β β βββ ArticleDislike.cs
β β β βββ ArticleID.cs
β β β βββ ArticleLike.cs
β β β βββ ArticleLink.cs
β β β βββ ArticleListId.cs
β β β βββ ArticlePrevTitle.cs
β β β βββ ArticlePublishingDate.cs
β β β βββ ArticleTitle.cs
β β β βββ TopicFullName.cs
β β β βββ TopicId.cs
β β β βββ TopicName.cs
β β β βββ UserArticle.cs
β β β βββ UserID.cs
β β β βββ UserTopic.cs
----------------------------
β βββ TopicArticleService.Application π
β β βββ AsyncDataServices π
β β β βββ IMessageBusPublisher.cs
----------------------------
β β βββ Commands π
β β β βββ Dispatcher π
β β β β βββ _README.txt
β β β β βββ ICommandDispatcher.cs
β β β β βββ InMemoryCommandDispatcher.cs
β β β βββ Handlers π
β β β β βββ _README.txt
β β β β βββ AddArticleCommentDislikeHandler.cs
β β β β βββ AddArticleCommentHandler.cs
β β β β βββ AddArticleCommentLikeHandler.cs
β β β β βββ AddArticleDislikeHandler.cs
β β β β βββ AddArticleLikeHandler.cs
β β β β βββ CreateArticleHandler.cs
β β β β βββ ICommandHandler.cs
β β β β βββ RegisterUserArticleHandler.cs
β β β β βββ RegisterUserHandler.cs
β β β β βββ RegisterUserTopicHandler.cs
β β β β βββ RemoveArticleCommentHandler.cs
β β | βββ _README.txt
β β | βββ AddArticleCommentCommand.cs
β β | βββ AddArticleCommentDislikeCommand.cs
β β | βββ AddArticleCommentLikeCommand.cs
β β | βββ AddArticleDislikeCommand.cs
β β | βββ AddArticleLikeCommand.cs
β β | βββ CreateArticleCommand.cs
β β | βββ ICommand.cs
β β | βββ RegisterUserArticleCommand.cs
β β | βββ RegisterUserCommand.cs
β β | βββ RegisterUserTopicCommand.cs
β β | βββ RemoveArticleCommentCommand.cs
----------------------------
β β βββ Dtos π
β β | βββ PrivateHistoryService π
β β β | βββ CommentedArticleDto.cs
β β β | βββ DislikedArticleCommentDto.cs
β β β | βββ DislikedArticleDto.cs
β β β | βββ LikedArticleCommentDto.cs
β β β | βββ LikedArticleDto.cs
β β β | βββ TopicSubscriptionDto.cs
β β β | βββ ViewedArticleDto.cs
β β | βββ SearchService π
β β β | βββ DocumentDto.cs
β β β βββ _README.txt
β β β βββ IssuedBanByUserDto.cs
β β β βββ IssuedContactRequestByUserDto.cs
β β β βββ ReceivedBanByUserDto.cs
β β β βββ ReceivedContactRequestByUserDto.cs
β β β βββ UserDto.cs
β β β βββ UserPublishedDto.cs
----------------------------
β β βββ Exceptions π
β β β βββ _README.txt
β β β βββ <<CustomApplicationLayerExceptions>>
----------------------------
β β βββ Extensions π
β β β βββ ServiceCollectionExtensions.cs
----------------------------
β β βββ Queries π
β β β βββ Dispatcher π
β β β β βββ _README.txt
β β β β βββ InMemoryQueryDispatcher.cs
β β β β βββ IQueryDispatcher.cs
β β | βββ Handlers π
β β β β βββ _README.txt
β β β β βββ IQueryHandler.cs
β β | βββ _README.txt
β β | βββ GetArticleCommentsQuery.cs
β β | βββ GetArticleDislikesQuery.cs
β β | βββ GetArticleLikesQuery.cs
β β | βββ GetArticleQuery.cs
β β | βββ GetArticlesQuery.cs
β β | βββ GetParentTopicWithChildrenQuery.cs
β β | βββ GetTopicsQuery.cs
β β | βββ GetTopicsRelatedToUserQuery.cs
β β | βββ GetTopicSubscriptionsQuery.cs
β β | βββ GetUserArticlesQuery.cs
β β | βββ GetUsersRelatedToArticleQuery.cs
β β | βββ IQuery.cs
----------------------------
β β βββ Services π
β β β βββ ReadServices π
β β β β βββ IArticleCommentReadService.cs
β β β β βββ IArticleReadService.cs
β β β β βββ ITopicReadService.cs
β β β β βββ IUserReadService.cs
β β β βββ WriteServices π
β β β β βββ IUserWriteService.cs
β β | βββ _README.txt
----------------------------
β βββ TopicArticleService.Infrastructure π
β β βββ AsyncDataServices π
β β β βββ MessageBusPublisher.cs
β β β βββ MessageBusSubscriber.cs
β β β βββ MessageDescriptor.cs
----------------------------
β β βββ Automapper π
β β β βββ Profiles π
β β β β βββ _README.txt
β β β β βββ ArticleCommentDislikeProfile.cs
β β β β βββ ArticleCommentLikeProfile.cs
β β β β βββ ArticleCommentProfile.cs
β β β β βββ ArticleDislikeProfile.cs
β β β β βββ ArticleLikeProfile.cs
β β β β βββ ArticleProfile.cs
β β β β βββ DocumentProfile.cs
β β β β βββ TopicProfile.cs
β β β β βββ UserArticleProfile.cs
β β β β βββ UserProfile.cs
β β β β βββ UserTopicProfile.cs
----------------------------
β β βββ Dtos π
β β β βββ MessageBusEventDto.cs
----------------------------
β β βββ EntityFramework π
β β β βββ Contexts π
β β β β βββ _README.txt
β β β β βββ ReadDbContext.cs
β β β β βββ WriteDbContext.cs
β β β βββ Encryption π
β β β β βββ EncryptionConverters π
β β β β β βββ EncryptedArticleCommentDateTimeConverter.cs
β β β β β βββ EncryptedArticleCommentValueConverter.cs
β β β β β βββ EncryptedDateTimeOffsetConverter.cs
β β β β β βββ EncryptedStringConverter.cs
β β β β βββ EncryptionProvider π
β β β β β βββ IEncryptionProvider.cs
β β β β β βββ EncryptionProvider.cs
β β β βββ Initialization π
β β β β βββ _README.txt
β β β β βββ DbInitializer.cs
β β β βββ Migrations π
β β β β βββ <<EntityFramework database migrations>>
β β β βββ ModelConfiguration π
β β β β βββ ReadConfiguration π
β β β β β βββ _README.txt
β β β β β βββ ArticleCommentConfiguration.cs
β β β β β βββ ArticleCommentDislikeConfiguration.cs
β β β β β βββ ArticleCommentLikeConfiguration.cs
β β β β β βββ ArticleConfiguration.cs
β β β β β βββ ArticleDislikeConfiguration.cs
β β β β β βββ ArticleLikeConfiguration.cs
β β β β β βββ TopicConfiguration.cs
β β β β β βββ UserArticleConfiguration.cs
β β β β β βββ UserConfiguration.cs
β β β β β βββ UserTopicConfiguration.cs
β β β β βββ WriteConfiguration π
β β β β β βββ _README.txt
β β β β β βββ ArticleCommentConfiguration.cs
β β β β β βββ ArticleCommentDislikeConfiguration.cs
β β β β β βββ ArticleCommentLikeConfiguration.cs
β β β β β βββ ArticleConfiguration.cs
β β β β β βββ ArticleDislikeConfiguration.cs
β β β β β βββ ArticleLikeConfiguration.cs
β β β β β βββ TopicConfiguration.cs
β β β β β βββ UserArticleConfiguration.cs
β β β β β βββ UserConfiguration.cs
β β β β β βββ UserTopicConfiguration.cs
β β β βββ Models π
β β β β βββ _README.txt
β β β β βββ ArticleCommentDislikeReadModel.cs
β β β β βββ ArticleCommentLikeReadModel.cs
β β β β βββ ArticleCommentReadModel.cs
β β β β βββ ArticleDislikeReadModel.cs
β β β β βββ ArticleLikeReadModel.cs
β β β β βββ ArticleReadModel.cs
β β β β βββ TopicReadModel.cs
β β β β βββ UserArticleReadModel.cs
β β β β βββ UserReadModel.cs
β β β β βββ UserTopicReadModel.cs
β β β βββ Options π
β β β β βββ PostgresOptions.cs
β β β βββ PrepareDatabase π
β β β β βββ DbPrepper.cs
β β β βββ Repositories π
β β β β βββ PostgresArticleCommentRepository.cs
β β β β βββ PostgresArticleRepository.cs
β β β β βββ PostgresTopicRepository.cs
β β β β βββ PostgresUserRepository.cs
β β β βββ Services π
β β β β βββ PostgresArticleCommentReadService.cs
β β β β βββ PostgresArticleReadService.cs
β β β β βββ PostgresUserReadService.cs
β β β β βββ PostgresUserWriteService.cs
β β β β βββ PostgreTopicReadServices.cs
----------------------------
β β βββ EventProcessing π
β β β βββ EventProcessor.cs
β β β βββ IEventProcessor.cs
----------------------------
β β βββ Exceptions π
β β β βββ Interfaces π
β β β β βββ IExceptionToResponseMapper.cs
β β β βββ _README.txt
β β β βββ EmptyMessageDescriptorExchangeException.cs
β β β βββ EmptyMessageDescriptorMessageException.cs
β β β βββ EmptyMessageDescriptorRoutingKeyException.cs
β β β βββ ExceptionResponse.cs
β β β βββ ExceptionToResponseMapper.cs
β β β βββ InfrastructureException.cs
β β β βββ NullDbContextException.cs
β β β βββ RabbitMqInitializationException.cs
----------------------------
β β βββ Extensions π
β β β βββ ServiceCollectionExtensions.cs
β β β βββ ConfigurationExtensions.cs
β β β βββ ModelBuilderExtensions.cs
β β β βββ StringExtensions.cs
----------------------------
β β βββ Logging π
β β β βββ Formatters π
β β β β βββ SerilogJsonFormatter.cs
β β β βββ LoggingCommandHandlerDecorator.cs
----------------------------
β β βββ Protos π
β β β βββ greeter.proto
----------------------------
β β βββ Queries π
β β β βββ Handlers π
β β β β βββ _README.txt
β β β β βββ GetArticleCommentsHandler.cs
β β β β βββ GetArticleDislikesHandler.cs
β β β β βββ GetArticleHandler.cs
β β β β βββ GetArticleLikesHandler.cs
β β β β βββ GetArticlesHandler.cs
β β β β βββ GetParentTopicWithChildrenHandler.cs
β β β β βββ GetTopicsHandler.cs
β β β β βββ GetTopicsRelatedToUserHandler.cs
β β β β βββ GetTopicSubscriptionsHandler.cs
β β β β βββ GetUserArticlesHandler.cs
β β β β βββ GetUsersRelatedToArticleHandler.cs
----------------------------
β β βββ SyncDataServices π
β β β βββ Grpc π
β β β β βββ ISearchServiceDataClient.cs
β β β β βββ SearchServiceDataClient.cs
----------------------------
β β βββ UserRegistration π
β β β βββ IUserSynchronizer.cs
β β β βββ UserSynchronizer.cs
----------------------------
β βββ TopicArticleService.Presentation π
β β βββ Properties π
β β β βββ launchSettings.json
β β βββ Controllers π
β β β βββ ArticlesController.cs
β β β βββ TopicController.cs
β β β βββ UserController.cs
β β βββ Dtos π
β β β βββ ResponseDto.cs
β β βββ Middlewares π
β β β βββ ErrorHandlerMiddleware.cs
β β β βββ RateLimitingMiddleware.cs
β β β βββ UserRegistrationMiddleware.cs
β β βββ appsettings.json
β β βββ Program.cs
----------------------------
βββ tests π§ͺ
β βββ TopicArticleService.Tests.EndToEnd
β β βββ Events π
β β β βββ ITestEvent.cs
β β β βββ ViewedArticleAdded.cs
β β βββ Extensions π
β β β βββ ServiceCollectionExtensions.cs
β β βββ Factories π
β β β βββ DrahtenApplicationFactory.cs
β β βββ Services π
β β β βββ MessageDescriptor.cs
β β β βββ RabbitMqMessageBusPublisher.cs
β β β βββ RabbitMqMessageBusSubscriber.cs
β β βββ Sync π
β β β βββ _README.txt
β β β βββ BaseSyncIntegrationTest.cs
β β β βββ RegisterArticleCommentDislikeTests.cs
β β β βββ RegisterArticleCommentLikeTests.cs
β β β βββ RegisterArticleCommentTests.cs
β β β βββ RegisterArticleDislikeTests.cs
β β β βββ RegisterArticleLikeTests.cs
β β β βββ RegisterArticleTests.cs
β β β βββ RegisterUserArticleTests.cs
β β β βββ RegisterUserTests.cs
β β β βββ RegisterUserTopicTests.cs
β β β βββ RemoveArticleCommentTests.cs
----------------------------
β βββ TopicArticleService.Tests.Integration
β β βββ Async π
β β β βββ _README.txt
β β β βββ PublishCommentedArticleTests.cs
β β β βββ PublishDislikedArticleCommentTests.cs
β β β βββ PublishDislikedArticleTests.cs
β β β βββ PublishLikedArticleComment.cs
β β β βββ PublishLikedArticleTests.cs
β β β βββ PublishTopicSubscriptionTests.cs
β β β βββ PublishViewedArticleTests.cs
β β βββ EventProcessing π
β β β βββ EventProcessor.cs
β β β βββ IEventProcessor.cs
β β βββ Events π
β β β βββ CommentedArticleAdded.cs
β β β βββ DislikedArticleAdded.cs
β β β βββ DislikedArticleCommentAdded.cs
β β β βββ ITestEvent.cs
β β β βββ LikedArticleAdded.cs
β β β βββ LikedArticleCommentAdded.cs
β β β βββ TopicSubscriptionAdded.cs
β β β βββ ViewedArticleAdded.cs
β β βββ Extensions π
β β β βββ ServiceCollectionExtensions.cs
β β βββ Factories π
β β β βββ DrahtenApplicationFactory.cs
β β βββ Services π
β β β βββ ConsoleOutput.cs
β β β βββ MessageDescriptor.cs
β β β βββ RabbitMqMessageBusPublisher.cs
β β β βββ RabbitMqMessageBusSubscriber.cs
----------------------------
β βββ TopicArticleService.Tests.Unit
β β βββ Application π
β β β βββ Handlers π
β β β β βββ _README.txt
β β β β βββ AddArticleCommentDislikeHandlerTests.cs
β β β β βββ AddArticleCommentHandlerTests.cs
β β β β βββ AddArticleCommentLikeHandlerTests.cs
β β β β βββ AddArticleDislikeHandlerTests.cs
β β β β βββ AddArticleLikeHandlerTests.cs
β β β β βββ CreateArticleHandlerTests.cs
β β β β βββ RegisterUserArticleHandlerTests.cs
β β β β βββ RegisterUserHandlerTests.cs
β β β β βββ RegisterUserTopicHandlerTests.cs
β β β β βββ RemoveArticleCommentHandlerTests.cs
β β βββ Domain π
β β β βββ Entities π
β β β β βββ ArticleCommentTests π
β β β β | βββ _README.txt
β β β β | βββ AddDislike.cs
β β β β | βββ AddLike.cs
β β β β βββ ArticleTests π
β β β β | βββ _README.txt
β β β β | βββ AddComment.cs
β β β β | βββ AddDislike.cs
β β β β | βββ AddLike.cs
β β β β | βββ AddUserArticle.cs
β β β β | βββ RemoveComment.cs
β β β β βββ UserTests π
β β β β | βββ SubscribeToTopic.cs
β β β βββ Factories π
β β β β βββ _README.txt
β β β β βββ ArticleCommentFactoryTests.cs
β β β β βββ ArticleFactoryTests.cs
------------------------------------------------------------------
Layer | Directory/File | Description |
---|---|---|
Domain | TopicArticleService/src/TopicArticleService.Domain/Entities/ |
Contains domain entities representing core business concepts. |
Domain | TopicArticleService/src/TopicArticleService.Domain/Events/ |
Includes domain events capturing significant changes or actions. |
Domain | TopicArticleService/src/TopicArticleService.Domain/Exceptions/ |
Houses custom exceptions specific to domain logic. |
Domain | TopicArticleService/src/TopicArticleService.Domain/Factories/ |
Provides factories for creating domain entities. |
Domain | TopicArticleService/src/TopicArticleService.Domain/Repositories/ |
Defines interfaces or base classes for data access operations. |
Domain | TopicArticleService/src/TopicArticleService.Domain/ValueObjects/ |
Contains immutable value objects used within the domain. |
Application | TopicArticleService/src/TopicArticleService.Application/AsyncDataServices/ |
Defines interfaces for asynchronous operations. |
Application | TopicArticleService/src/TopicArticleService.Application/Commands/ |
Contains command types and serves as the central location for defining and organizing commands. |
Application | TopicArticleService/src/TopicArticleService.Application/Commands/Dispatcher/ |
Contains command dispatcher type and serves as the central component responsible for |
routing commands to their respective command handlers. | Β | Β |
Application | TopicArticleService/src/TopicArticleService.Application/Commands/Handlers/ |
Contains command handler types that implement ICommandHandler |
Command Query Responsibility Segregation (CQRS). | Β | Β |
Application | TopicArticleService/src/TopicArticleService.Application/Dtos/ |
Contains Data Transfer Objects (DTOs). |
Application | TopicArticleService/src/TopicArticleService.Application/Exceptions/ |
Contains Application layer specific custom exception types. |
Application | TopicArticleService/src/TopicArticleService.Application/Extensions/ |
Contains custom extension methods. |
Application | TopicArticleService/src/TopicArticleService.Application/Queries/ |
Contains query types and serves as the central location for defining and organizing queries. |
Application | TopicArticleService/src/TopicArticleService.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 | TopicArticleService/src/TopicArticleService.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 | TopicArticleService/src/TopicArticleService.Application/Services/ |
Implements application services containing business logic. |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/AsyncDataServices/ |
Defines implementations of interfaces for asynchronous operations. |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/Automapper/ |
Contains types, that are inheriting the Profile type from AutoMapper library. |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/Dtos/ |
Contains Data Transfer Objects (DTOs). |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/EntityFramework/Contexts/ |
Contains two EntityFramework DbContext classes - ReadDbContext and WriteDbContext. |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/EntityFramework/Encryption/ |
Contains custom EntityFramework encryption converters and encryption provider. |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/EntityFramework/Initialization/ |
Contains DbInitializer class that applies entity framework migrations. |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/EntityFramework/Migrations/ |
Contains EntityFramework migrations. |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/EntityFramework/ModelConfiguration/ReadConfiguration/ |
Contains classes that implement IEntityTypeConfiguration |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/EntityFramework/ModelConfiguration/WriteConfiguration/ |
Contains classes that implement IEntityTypeConfiguration |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/EntityFramework/Models/ |
Contains classes for the database models that represent the database tables and the overall database schema. |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/EntityFramework/Options/ |
Contains class that is used for the OPTIONS pattern. |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/EntityFramework/PrepareDatabase/ |
Contains class that is responsible for preparing and seeding the database with initial data. |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/EntityFramework/Repositories/ |
Contains implementations of interfaces for data access operations. |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/EntityFramework/Services/ |
Contains implementations of interfaces for services containing business logic. |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/EventProcessing/ |
Contains class that is responsible for processing eventβs that are received from outside the application. |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/Exceptions/ |
Contains Infrastructure layer specific custom exception types. |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/Extensions/ |
Contains custom extension methods. |
Infrastructure | TopicArticleService/src/TopicArticleService.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 | TopicArticleService/src/TopicArticleService.Infrastructure/Queries/ |
Contains query handlers that work with the queries from the Command Query Responsibility Segregation (CQRS) approach. |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/SyncDataServices/ |
Contains services that are related to synchronous operations. |
Infrastructure | TopicArticleService/src/TopicArticleService.Infrastructure/UserRegistration/ |
Contains UserSynchronizer that synchronizes a user with this service. |
Presentation | TopicArticleService/src/TopicArticleService.Presentation/Properties/ |
Contains the application properties related to port and protocol configuration. |
Presentation | TopicArticleService/src/TopicArticleService.Presentation/Controllers/ |
Contains API controllers handling HTTP requests and responses. |
Presentation | TopicArticleService/src/TopicArticleService.Presentation/DTOs/ |
Provides Data Transfer Objects (DTOs) for API input and output. |
Presentation | TopicArticleService/src/TopicArticleService.Presentation/Middlewares/ |
Contains custom middlewares. |