gitextract_r5h2xvzw/ ├── .editorconfig ├── .github/ │ ├── dco.yml │ └── workflows/ │ ├── base-liquid-ci-and-cd.yml │ ├── liquid-ci-cd-cache-memory.yml │ ├── liquid-ci-cd-cache-ncache.yml │ ├── liquid-ci-cd-cache-redis.yml │ ├── liquid-ci-cd-cache-sqlserver.yml │ ├── liquid-ci-cd-core-telemetry-elasticapm.yaml │ ├── liquid-ci-cd-core.yml │ ├── liquid-ci-cd-dataverse.yml │ ├── liquid-ci-cd-genai-openai.yml │ ├── liquid-ci-cd-http.yml │ ├── liquid-ci-cd-messaging-kafka.yaml │ ├── liquid-ci-cd-messaging-rabbitmq.yaml │ ├── liquid-ci-cd-messaging-servicebus.yaml │ ├── liquid-ci-cd-repository-entityframework.yml │ ├── liquid-ci-cd-repository-mongodb.yml │ ├── liquid-ci-cd-repository-odata.yml │ ├── liquid-ci-cd-storage-azurestorage.yml │ └── liquid-ci-cd-templates.yaml ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── Liquid.Adapters.sln ├── Liquid.Application.Framework.sln ├── Liquid.WebApi.sln ├── README.md ├── docs/ │ ├── About-Lightweight-Architectures.md │ ├── About-Liquid-Applications.md │ ├── About-Liquid.md │ ├── Business-logic-seggregation.md │ ├── Introduction.md │ ├── Key-Concepts.md │ ├── Platform-Abstraction-Layer.md │ └── Using-Liquid-for-building-your-application.md ├── nuget.config ├── samples/ │ ├── Liquid.Sample.Dataverse.sln │ ├── Liquid.Sample.MessagingConsumer.sln │ ├── Liquid.Sample.WebApi.sln │ └── src/ │ ├── Liquid.Sample.Api/ │ │ ├── Controllers/ │ │ │ └── SampleController.cs │ │ ├── Liquid.Sample.Api.csproj │ │ ├── Program.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ ├── Liquid.Sample.Dataverse.Domain/ │ │ ├── Liquid.Sample.Dataverse.Domain.csproj │ │ └── PostSampleService.cs │ ├── Liquid.Sample.Dataverse.Function/ │ │ ├── .gitignore │ │ ├── DataverseIntegration.cs │ │ ├── Liquid.Sample.Dataverse.Function.csproj │ │ ├── Properties/ │ │ │ ├── serviceDependencies.json │ │ │ └── serviceDependencies.local.json │ │ ├── Startup.cs │ │ ├── host.json │ │ └── local.settings.json │ ├── Liquid.Sample.Domain/ │ │ ├── Entities/ │ │ │ ├── SampleEntity.cs │ │ │ └── SampleMessageEntity.cs │ │ ├── Handlers/ │ │ │ ├── SampleGet/ │ │ │ │ ├── SampleCommandHandler.cs │ │ │ │ ├── SampleRequest.cs │ │ │ │ ├── SampleRequestValidator.cs │ │ │ │ └── SampleResponse.cs │ │ │ ├── SamplePost/ │ │ │ │ ├── SampleEventCommandHandler.cs │ │ │ │ ├── SampleEventRequest.cs │ │ │ │ └── SampleEventRequestValidator.cs │ │ │ └── SamplePut/ │ │ │ ├── PutCommandHandler.cs │ │ │ ├── PutCommandRequest.cs │ │ │ └── PutCommandRequestValidator.cs │ │ └── Liquid.Sample.Domain.csproj │ └── Liquid.Sample.MessagingConsumer/ │ ├── Liquid.Sample.MessagingConsumer.csproj │ ├── Program.cs │ ├── Worker.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── src/ │ ├── Liquid.Cache.Memory/ │ │ ├── Extensions/ │ │ │ └── DependencyInjection/ │ │ │ └── IServiceCollectionExtension.cs │ │ └── Liquid.Cache.Memory.csproj │ ├── Liquid.Cache.NCache/ │ │ ├── Extensions/ │ │ │ └── DependencyInjection/ │ │ │ └── IServiceCollectionExtension.cs │ │ ├── Liquid.Cache.NCache.csproj │ │ ├── client.ncconf │ │ ├── config.ncconf │ │ └── tls.ncconf │ ├── Liquid.Cache.Redis/ │ │ ├── Extensions/ │ │ │ └── DependencyInjection/ │ │ │ └── IServiceCollectionExtension.cs │ │ └── Liquid.Cache.Redis.csproj │ ├── Liquid.Cache.SqlServer/ │ │ ├── Extensions/ │ │ │ └── DependencyInjection/ │ │ │ └── IServiceCollectionExtension.cs │ │ └── Liquid.Cache.SqlServer.csproj │ ├── Liquid.Core/ │ │ ├── AbstractMappers/ │ │ │ ├── LiquidMapper.cs │ │ │ └── OcrResultMapper.cs │ │ ├── Attributes/ │ │ │ └── LiquidSectionNameAttribute.cs │ │ ├── Base/ │ │ │ ├── Enumeration.cs │ │ │ └── LiquidInterceptorBase.cs │ │ ├── Decorators/ │ │ │ ├── LiquidContextDecorator.cs │ │ │ ├── LiquidCultureDecorator.cs │ │ │ └── LiquidScopedLoggingDecorator.cs │ │ ├── Entities/ │ │ │ ├── ChatCompletionResult.cs │ │ │ ├── ClientDictionary.cs │ │ │ ├── ConsumerErrorEventArgs.cs │ │ │ ├── ConsumerMessageEventArgs.cs │ │ │ ├── FunctionBody.cs │ │ │ ├── LiquidBlob.cs │ │ │ ├── LiquidEntity.cs │ │ │ └── OcrResult.cs │ │ ├── Exceptions/ │ │ │ ├── DataMappingException.cs │ │ │ ├── DatabaseContextException.cs │ │ │ ├── ExceptionCustomCodes.cs │ │ │ ├── LiquidCustomException.cs │ │ │ ├── LiquidDatabaseSettingsDoesNotExistException.cs │ │ │ ├── LiquidException.cs │ │ │ ├── MessagingConsumerException.cs │ │ │ ├── MessagingMissingConfigurationException.cs │ │ │ ├── MessagingMissingContextKeysException.cs │ │ │ ├── MessagingMissingScopedKeysException.cs │ │ │ ├── MessagingMissingSettingsException.cs │ │ │ ├── MessagingProducerException.cs │ │ │ ├── SerializerFailException.cs │ │ │ ├── UnitOfWorkTransactionNotStartedException.cs │ │ │ └── UnitOfWorkTransactionWithoutRepositoryException.cs │ │ ├── Extensions/ │ │ │ ├── ByteExtension.cs │ │ │ ├── CommonExtensions.cs │ │ │ ├── DateTimeExtension.cs │ │ │ ├── DependencyInjection/ │ │ │ │ ├── IServiceCollectionAutoMapperExtensions.cs │ │ │ │ ├── IServiceCollectionCoreExtensions.cs │ │ │ │ ├── IServiceCollectionLiquidExtension.cs │ │ │ │ ├── IServiceCollectionTypeExtensions.cs │ │ │ │ └── IServiceProviderExtensions.cs │ │ │ ├── EnumExtension.cs │ │ │ ├── IEnumerableExtension.cs │ │ │ ├── IntExtension.cs │ │ │ ├── ObjectExtension.cs │ │ │ ├── StreamExtension.cs │ │ │ ├── StringExtension.cs │ │ │ └── TypeExtensions.cs │ │ ├── GenAi/ │ │ │ ├── Entities/ │ │ │ │ ├── LiquidChatContent.cs │ │ │ │ ├── LiquidChatMessage.cs │ │ │ │ └── LiquidChatMessages.cs │ │ │ ├── Enums/ │ │ │ │ ├── LiquidContentKind.cs │ │ │ │ └── LiquidMessageRole.cs │ │ │ ├── Interfaces/ │ │ │ │ ├── ILiquidGenAi.cs │ │ │ │ └── ILiquidGenAiHandler.cs │ │ │ └── Settings/ │ │ │ └── CompletionsOptions.cs │ │ ├── Implementations/ │ │ │ ├── LiquidBackgroundService.cs │ │ │ ├── LiquidCache.cs │ │ │ ├── LiquidContext.cs │ │ │ ├── LiquidContextNotifications.cs │ │ │ ├── LiquidJsonSerializer.cs │ │ │ ├── LiquidSerializerProvider.cs │ │ │ ├── LiquidTelemetryInterceptor.cs │ │ │ ├── LiquidUnitOfWork.cs │ │ │ └── LiquidXmlSerializer.cs │ │ ├── Interfaces/ │ │ │ ├── ILiquidCache.cs │ │ │ ├── ILiquidConsumer.cs │ │ │ ├── ILiquidContext.cs │ │ │ ├── ILiquidContextNotifications.cs │ │ │ ├── ILiquidDataContext.cs │ │ │ ├── ILiquidMapper.cs │ │ │ ├── ILiquidOcr.cs │ │ │ ├── ILiquidProducer.cs │ │ │ ├── ILiquidRepository.cs │ │ │ ├── ILiquidSerializer.cs │ │ │ ├── ILiquidSerializerProvider.cs │ │ │ ├── ILiquidStorage.cs │ │ │ ├── ILiquidUnitOfWork.cs │ │ │ └── ILiquidWorker.cs │ │ ├── Liquid.Core.csproj │ │ ├── Localization/ │ │ │ ├── Entities/ │ │ │ │ ├── LocalizationCollection.cs │ │ │ │ ├── LocalizationItem.cs │ │ │ │ └── LocalizationValue.cs │ │ │ ├── ILocalization.cs │ │ │ ├── JsonFileLocalization.cs │ │ │ ├── LocalizationException.cs │ │ │ ├── LocalizationExtensions.cs │ │ │ └── LocalizationReaderException.cs │ │ ├── PipelineBehaviors/ │ │ │ ├── LiquidTelemetryBehavior.cs │ │ │ └── LiquidValidationBehavior.cs │ │ ├── Settings/ │ │ │ ├── CultureSettings.cs │ │ │ ├── DatabaseSettings.cs │ │ │ ├── GenAiOptions.cs │ │ │ ├── OcrOptions.cs │ │ │ ├── ScopedContextSettings.cs │ │ │ ├── ScopedKey.cs │ │ │ └── ScopedLoggingSettings.cs │ │ └── Utils/ │ │ ├── TypeUtils.cs │ │ └── ZipUtils.cs │ ├── Liquid.Core.Telemetry.ElasticApm/ │ │ ├── Extensions/ │ │ │ ├── DependencyInjection/ │ │ │ │ ├── IApplicationBuilderExtensions.cs │ │ │ │ └── IServiceCollectionExtensions.cs │ │ │ └── IConfigurationExtension.cs │ │ ├── Implementations/ │ │ │ ├── LiquidElasticApmInterceptor.cs │ │ │ └── LiquidElasticApmTelemetryBehavior.cs │ │ └── Liquid.Core.Telemetry.ElasticApm.csproj │ ├── Liquid.Dataverse/ │ │ ├── DataverseClientFactory.cs │ │ ├── DataverseEntityMapper.cs │ │ ├── DataverseSettings.cs │ │ ├── Extensions/ │ │ │ ├── DependencyInjection/ │ │ │ │ └── IServiceCollectionExtensions.cs │ │ │ └── EntityExtensions.cs │ │ ├── IDataverseClientFactory.cs │ │ ├── ILiquidDataverse.cs │ │ ├── Liquid.Dataverse.csproj │ │ └── LiquidDataverse.cs │ ├── Liquid.GenAi.OpenAi/ │ │ ├── Extensions/ │ │ │ └── IServiceCollectionExtension.cs │ │ ├── IOpenAiClientFactory.cs │ │ ├── Liquid.GenAi.OpenAi.csproj │ │ ├── OpenAiAdapter.cs │ │ ├── OpenAiClientFactory.cs │ │ └── Settings/ │ │ └── OpenAiOptions.cs │ ├── Liquid.Messaging.Kafka/ │ │ ├── Extensions/ │ │ │ ├── DependencyInjection/ │ │ │ │ └── IServiceCollectionExtension.cs │ │ │ └── HeadersExtension.cs │ │ ├── IKafkaFactory.cs │ │ ├── KafkaConsumer.cs │ │ ├── KafkaFactory.cs │ │ ├── KafkaProducer.cs │ │ ├── Liquid.Messaging.Kafka.csproj │ │ └── Settings/ │ │ └── KafkaSettings.cs │ ├── Liquid.Messaging.RabbitMq/ │ │ ├── Extensions/ │ │ │ └── DependencyInjection/ │ │ │ └── IServiceCollectionExtension.cs │ │ ├── IRabbitMqFactory.cs │ │ ├── Liquid.Messaging.RabbitMq.csproj │ │ ├── RabbitMqConsumer.cs │ │ ├── RabbitMqFactory.cs │ │ ├── RabbitMqProducer.cs │ │ └── Settings/ │ │ ├── AdvancedSettings.cs │ │ ├── QueueAckModeEnum.cs │ │ ├── QueueAckModeSettings.cs │ │ ├── RabbitMqConsumerSettings.cs │ │ ├── RabbitMqProducerSettings.cs │ │ └── RabbitMqSettings.cs │ ├── Liquid.Messaging.ServiceBus/ │ │ ├── Extensions/ │ │ │ └── DependencyInjection/ │ │ │ └── IServiceCollectionExtensions.cs │ │ ├── IServiceBusFactory.cs │ │ ├── Liquid.Messaging.ServiceBus.csproj │ │ ├── ServiceBusConsumer.cs │ │ ├── ServiceBusFactory.cs │ │ ├── ServiceBusProducer.cs │ │ └── Settings/ │ │ └── ServiceBusSettings.cs │ ├── Liquid.Repository.EntityFramework/ │ │ ├── EntityFrameworkDataContext.cs │ │ ├── EntityFrameworkRepository.cs │ │ ├── Exceptions/ │ │ │ └── DatabaseDoesNotExistException.cs │ │ ├── Extensions/ │ │ │ ├── DbContextExtensions.cs │ │ │ ├── ILiquidRepositoryExtensions.cs │ │ │ └── IServiceCollectionExtensions.cs │ │ ├── IEntityFrameworkDataContext.cs │ │ └── Liquid.Repository.EntityFramework.csproj │ ├── Liquid.Repository.Mongo/ │ │ ├── Exceptions/ │ │ │ ├── MongoEntitySettingsDoesNotExistException.cs │ │ │ └── MongoException.cs │ │ ├── Extensions/ │ │ │ ├── IMongoCollectionExtensions.cs │ │ │ └── IServiceCollectionExtensions.cs │ │ ├── IMongoClientFactory.cs │ │ ├── IMongoDataContext.cs │ │ ├── Liquid.Repository.Mongo.csproj │ │ ├── MongoClientFactory.cs │ │ ├── MongoDataContext.cs │ │ ├── MongoRepository.cs │ │ └── Settings/ │ │ └── MongoEntitySettings.cs │ ├── Liquid.Repository.OData/ │ │ ├── Extensions/ │ │ │ └── IServiceCollectionExtension.cs │ │ ├── IODataClientFactory.cs │ │ ├── Liquid.Repository.OData.csproj │ │ ├── ODataClientFactory.cs │ │ ├── ODataRepository.cs │ │ └── ODataSettings.cs │ ├── Liquid.Storage.AzureStorage/ │ │ ├── BlobClientFactory.cs │ │ ├── Extensions/ │ │ │ └── IServiceCollectionExtensions.cs │ │ ├── IBlobClientFactory.cs │ │ ├── Liquid.Storage.AzureStorage.csproj │ │ ├── LiquidStorageAzure.cs │ │ └── StorageSettings.cs │ └── Liquid.WebApi.Http/ │ ├── Attributes/ │ │ ├── SwaggerAuthorizationHeaderAttribute.cs │ │ ├── SwaggerBaseHeaderAttribute.cs │ │ ├── SwaggerChannelHeaderAttribute.cs │ │ ├── SwaggerCultureHeaderAttribute.cs │ │ └── SwaggerCustomHeaderAttribute.cs │ ├── Entities/ │ │ └── LiquidErrorResponse.cs │ ├── Exceptions/ │ │ ├── LiquidContextKeysException.cs │ │ └── LiquidScopedKeysException.cs │ ├── Extensions/ │ │ ├── DependencyInjection/ │ │ │ ├── IApplicationBuilderExtensions.cs │ │ │ └── IServiceCollectionExtensions.cs │ │ └── HttpContextExtensions.cs │ ├── Filters/ │ │ └── Swagger/ │ │ ├── AddHeaderParameterFilter.cs │ │ ├── DefaultResponseFilter.cs │ │ ├── DocumentSortFilter.cs │ │ └── OverloadMethodsSameVerb.cs │ ├── Implementations/ │ │ ├── LiquidControllerBase.cs │ │ └── LiquidNotificationHelper.cs │ ├── Interfaces/ │ │ └── ILiquidNotificationHelper.cs │ ├── Liquid.WebApi.Http.csproj │ ├── Middlewares/ │ │ ├── LiquidContextMiddleware.cs │ │ ├── LiquidCultureMiddleware.cs │ │ ├── LiquidExceptionMiddleware.cs │ │ └── LiquidScopedLoggingMiddleware.cs │ └── Settings/ │ └── SwaggerSettings.cs ├── templates/ │ ├── Liquid.Templates.sln │ └── src/ │ └── Liquid.Templates/ │ ├── Liquid.Templates.csproj │ └── Templates/ │ ├── Liquid.Crud.AddEntity/ │ │ ├── .template.config/ │ │ │ └── template.json │ │ ├── PROJECTNAME.Domain/ │ │ │ ├── Entities/ │ │ │ │ └── ENTITYNAME.cs │ │ │ └── Handlers/ │ │ │ ├── CreateENTITYNAME/ │ │ │ │ ├── CreateENTITYNAMEHandler.cs │ │ │ │ ├── CreateENTITYNAMERequest.cs │ │ │ │ └── CreateENTITYNAMEValidator.cs │ │ │ ├── ListENTITYNAME/ │ │ │ │ ├── ListENTITYNAMEHandler.cs │ │ │ │ ├── ListENTITYNAMERequest.cs │ │ │ │ └── ListENTITYNAMEResponse.cs │ │ │ ├── ReadENTITYNAME/ │ │ │ │ ├── ReadENTITYNAMEHandler.cs │ │ │ │ ├── ReadENTITYNAMERequest.cs │ │ │ │ └── ReadENTITYNAMEResponse.cs │ │ │ ├── RemoveENTITYNAME/ │ │ │ │ ├── RemoveENTITYNAMEHandler.cs │ │ │ │ ├── RemoveENTITYNAMERequest.cs │ │ │ │ └── RemoveENTITYNAMEResponse.cs │ │ │ └── UpdateENTITYNAME/ │ │ │ ├── UpdateENTITYNAMEHandler.cs │ │ │ ├── UpdateENTITYNAMERequest.cs │ │ │ ├── UpdateENTITYNAMEResponse.cs │ │ │ └── UpdateENTITYNAMEValidator.cs │ │ └── PROJECTNAME.WebApi/ │ │ └── Controllers/ │ │ └── ENTITYNAMEController.cs │ ├── Liquid.Crud.Solution/ │ │ ├── .template.config/ │ │ │ └── template.json │ │ └── src/ │ │ ├── PROJECTNAME.Domain/ │ │ │ ├── Entities/ │ │ │ │ └── ENTITYNAME.cs │ │ │ ├── Handlers/ │ │ │ │ ├── CreateENTITYNAME/ │ │ │ │ │ ├── CreateENTITYNAMEHandler.cs │ │ │ │ │ ├── CreateENTITYNAMERequest.cs │ │ │ │ │ └── CreateENTITYNAMEValidator.cs │ │ │ │ ├── ListENTITYNAME/ │ │ │ │ │ ├── ListENTITYNAMEHandler.cs │ │ │ │ │ ├── ListENTITYNAMERequest.cs │ │ │ │ │ └── ListENTITYNAMEResponse.cs │ │ │ │ ├── ReadENTITYNAME/ │ │ │ │ │ ├── ReadENTITYNAMEHandler.cs │ │ │ │ │ ├── ReadENTITYNAMERequest.cs │ │ │ │ │ └── ReadENTITYNAMEResponse.cs │ │ │ │ ├── RemoveENTITYNAME/ │ │ │ │ │ ├── RemoveENTITYNAMEHandler.cs │ │ │ │ │ ├── RemoveENTITYNAMERequest.cs │ │ │ │ │ └── RemoveENTITYNAMEResponse.cs │ │ │ │ └── UpdateENTITYNAME/ │ │ │ │ ├── UpdateENTITYNAMEHandler.cs │ │ │ │ ├── UpdateENTITYNAMERequest.cs │ │ │ │ ├── UpdateENTITYNAMEResponse.cs │ │ │ │ └── UpdateENTITYNAMEValidator.cs │ │ │ ├── IDomainInjection.cs │ │ │ └── PROJECTNAME.Domain.csproj │ │ ├── PROJECTNAME.Microservice.sln │ │ └── PROJECTNAME.WebApi/ │ │ ├── Controllers/ │ │ │ └── ENTITYNAMEController.cs │ │ ├── PROJECTNAME.WebApi.csproj │ │ ├── PROJECTNAME.WebApi.http │ │ ├── Program.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ ├── Liquid.DbContext.AddEntity/ │ │ ├── .template.config/ │ │ │ └── template.json │ │ └── PROJECTNAME.Repository/ │ │ └── Configurations/ │ │ └── ENTITYNAMEConfiguration.cs │ ├── Liquid.DbContext.Project/ │ │ ├── .template.config/ │ │ │ └── template.json │ │ └── PROJECTNAME.Repository/ │ │ ├── Configurations/ │ │ │ └── ENTITYNAMEConfiguration.cs │ │ ├── LiquidDbContext.cs │ │ └── PROJECTNAME.Repository.csproj │ ├── Liquid.Domain.AddHandler/ │ │ ├── .template.config/ │ │ │ └── template.json │ │ └── PROJECTNAME.Domain/ │ │ └── Handlers/ │ │ └── COMMANDNAMEENTITYNAME/ │ │ ├── COMMANDNAMEENTITYNAMEHandler.cs │ │ ├── COMMANDNAMEENTITYNAMERequest.cs │ │ ├── COMMANDNAMEENTITYNAMEResponse.cs │ │ └── COMMANDNAMEENTITYNAMEValidator.cs │ ├── Liquid.Domain.Project/ │ │ ├── .template.config/ │ │ │ └── template.json │ │ └── PROJECTNAME.Domain/ │ │ ├── Entities/ │ │ │ └── ENTITYNAME.cs │ │ ├── Handlers/ │ │ │ └── COMMANDNAMEENTITYNAME/ │ │ │ ├── COMMANDNAMEENTITYNAMEHandler.cs │ │ │ ├── COMMANDNAMEENTITYNAMERequest.cs │ │ │ ├── COMMANDNAMEENTITYNAMEResponse.cs │ │ │ └── COMMANDNAMEENTITYNAMEValidator.cs │ │ └── PROJECTNAME.Domain.csproj │ ├── Liquid.WebApi.AddEntity/ │ │ ├── .template.config/ │ │ │ └── template.json │ │ ├── PROJECTNAME.Domain/ │ │ │ ├── Entities/ │ │ │ │ └── ENTITYNAME.cs │ │ │ └── Handlers/ │ │ │ └── COMMANDNAMEENTITYNAME/ │ │ │ ├── COMMANDNAMEENTITYNAMEHandler.cs │ │ │ ├── COMMANDNAMEENTITYNAMERequest.cs │ │ │ ├── COMMANDNAMEENTITYNAMEResponse.cs │ │ │ └── COMMANDNAMEENTITYNAMEValidator.cs │ │ └── PROJECTNAME.WebApi/ │ │ └── Controllers/ │ │ └── ENTITYNAMEController.cs │ ├── Liquid.WebApi.Project/ │ │ ├── .template.config/ │ │ │ └── template.json │ │ └── PROJECTNAME.WebApi/ │ │ ├── Controllers/ │ │ │ └── ENTITYNAMEController.cs │ │ ├── PROJECTNAME.WebApi.csproj │ │ ├── PROJECTNAME.WebApi.http │ │ ├── Program.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ ├── Liquid.WebApi.Solution/ │ │ ├── .template.config/ │ │ │ └── template.json │ │ └── src/ │ │ ├── PROJECTNAME.Domain/ │ │ │ ├── Entities/ │ │ │ │ └── ENTITYNAME.cs │ │ │ ├── Handlers/ │ │ │ │ └── COMMANDNAMEENTITYNAME/ │ │ │ │ ├── COMMANDNAMEENTITYNAMEHandler.cs │ │ │ │ ├── COMMANDNAMEENTITYNAMERequest.cs │ │ │ │ ├── COMMANDNAMEENTITYNAMEResponse.cs │ │ │ │ └── COMMANDNAMEENTITYNAMEValidator.cs │ │ │ └── PROJECTNAME.Domain.csproj │ │ ├── PROJECTNAME.Microservice.sln │ │ └── PROJECTNAME.WebApi/ │ │ ├── Controllers/ │ │ │ └── ENTITYNAMEController.cs │ │ ├── PROJECTNAME.WebApi.csproj │ │ ├── PROJECTNAME.WebApi.http │ │ ├── Program.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ ├── Liquid.WorkerService.Project/ │ │ ├── .template.config/ │ │ │ └── template.json │ │ └── PROJECTNAME.WorkerService/ │ │ ├── PROJECTNAME.WorkerService.csproj │ │ ├── Program.cs │ │ ├── Worker.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ └── Liquid.WorkerService.Solution/ │ ├── .template.config/ │ │ └── template.json │ └── src/ │ ├── PROJECTNAME.Domain/ │ │ ├── Entities/ │ │ │ └── ENTITYNAME.cs │ │ ├── Handlers/ │ │ │ └── COMMANDNAMEENTITYNAME/ │ │ │ ├── COMMANDNAMEENTITYNAMEHandler.cs │ │ │ ├── COMMANDNAMEENTITYNAMERequest.cs │ │ │ ├── COMMANDNAMEENTITYNAMEResponse.cs │ │ │ └── COMMANDNAMEENTITYNAMEValidator.cs │ │ └── PROJECTNAME.Domain.csproj │ ├── PROJECTNAME.Microservice.sln │ └── PROJECTNAME.WorkerService/ │ ├── PROJECTNAME.WorkerService.csproj │ ├── Program.cs │ ├── Worker.cs │ ├── appsettings.Development.json │ └── appsettings.json └── test/ ├── CodeCoverage.runsettings ├── Liquid.Cache.Memory.Tests/ │ ├── IServiceCollectionExtensionTest.cs │ └── Liquid.Cache.Memory.Tests.csproj ├── Liquid.Cache.NCache.Tests/ │ ├── IServiceCollectionExtensionTest.cs │ ├── Liquid.Cache.NCache.Tests.csproj │ ├── client.ncconf │ ├── config.ncconf │ └── tls.ncconf ├── Liquid.Cache.Redis.Tests/ │ ├── IServiceCollectionExtensionTest.cs │ └── Liquid.Cache.Redis.Tests.csproj ├── Liquid.Cache.SqlServer.Tests/ │ ├── IServiceCollectionExtensionTest.cs │ └── Liquid.Cache.SqlServer.Tests.csproj ├── Liquid.Core.Telemetry.ElasticApm.Tests/ │ ├── Extensions/ │ │ └── IServiceCollectionExtension.cs │ ├── IApplicationBuilderExtensionsTests.cs │ ├── IServiceCollectionExtensionsTests.cs │ ├── Liquid.Core.Telemetry.ElasticApm.Tests.csproj │ ├── LiquidElasticApmInterceptorTests.cs │ ├── LiquidElasticApmTelemetryBehaviorTests.cs │ ├── Mocks/ │ │ ├── CommandHandlerMock.cs │ │ ├── IMockService.cs │ │ ├── MockService.cs │ │ ├── RequestMock.cs │ │ └── ResponseMock.cs │ └── Settings/ │ ├── ConfigurationSettings.cs │ ├── ElasticApmSettings.cs │ └── IElasticApmSettings.cs ├── Liquid.Core.Tests/ │ ├── Cache/ │ │ ├── IServiceCollectionExtensionTests.cs │ │ └── LiquidCacheTests.cs │ ├── CommandHandlers/ │ │ ├── Test1/ │ │ │ ├── Test1Command.cs │ │ │ ├── Test1CommandHandler.cs │ │ │ └── Test1Response.cs │ │ └── Test2/ │ │ ├── Test2Command.cs │ │ ├── Test2CommandHandler.cs │ │ ├── Test2CommandValidator.cs │ │ └── Test2Response.cs │ ├── Core/ │ │ ├── IServiceCollectionLiquidExtensionTest.cs │ │ ├── LiquidContextNotificationsTest.cs │ │ ├── LiquidContextTest.cs │ │ ├── LiquidJsonSerializerTest.cs │ │ ├── LiquidSerializerProviderTest.cs │ │ ├── LiquidTelemetryInterceptorTest.cs │ │ ├── LiquidXmlSerializerTest.cs │ │ └── LocalizationTest.cs │ ├── Domain/ │ │ └── RequestHandlerTest.cs │ ├── Liquid.Core.Tests.csproj │ ├── Messaging/ │ │ ├── IServiceCollectionExtensionTest.cs │ │ ├── LiquidBackgroundServiceTest.cs │ │ ├── LiquidContextDecoratorTest.cs │ │ ├── LiquidCultureDecoratorTest.cs │ │ └── LiquidScopedLoggingDecoratorTest.cs │ ├── Mocks/ │ │ ├── AnotherTestEntity.cs │ │ ├── CommandHandlerMock.cs │ │ ├── CommandRequestMock.cs │ │ ├── EntityMock.cs │ │ ├── IMockService.cs │ │ ├── InMemoryRepository.cs │ │ ├── MockInterceptService.cs │ │ ├── MockSerializeObject.cs │ │ ├── MockService.cs │ │ ├── MockSettings.cs │ │ ├── MockType.cs │ │ ├── TestEntity.cs │ │ └── WorkerMock.cs │ ├── Repository/ │ │ └── LiquidUnitOfWorkTests.cs │ ├── appsettings.json │ ├── client.ncconf │ ├── config.ncconf │ ├── localization.en-US.json │ ├── localization.es-ES.json │ ├── localization.json │ └── tls.ncconf ├── Liquid.Dataverse.Tests/ │ ├── DataverseClientFactoryTests.cs │ ├── Liquid.Dataverse.Tests.csproj │ ├── LiquidDataverseTests.cs │ └── Usings.cs ├── Liquid.GenAi.OpenAi.Tests/ │ ├── Liquid.GenAi.OpenAi.Tests.csproj │ └── OpenAiClientFactoryTests.cs ├── Liquid.Messaging.Kafka.Tests/ │ ├── IServiceCollectionExtensionTest.cs │ ├── KafkaFactoryTest.cs │ ├── KafkaProducerTest.cs │ ├── Liquid.Messaging.Kafka.Tests.csproj │ ├── Mock/ │ │ ├── HandlerMock/ │ │ │ ├── MockCommandHandler.cs │ │ │ ├── MockRequest.cs │ │ │ └── MockValidator.cs │ │ ├── MessageMock.cs │ │ ├── WorkerMediatorMock.cs │ │ └── WorkerMock .cs │ └── kafkaConsumerTest.cs ├── Liquid.Messaging.RabbitMq.Tests/ │ ├── IServiceCollectionExtensionTest.cs │ ├── Liquid.Messaging.RabbitMq.Tests.csproj │ ├── Mock/ │ │ ├── HandlerMock/ │ │ │ ├── MockCommandHandler.cs │ │ │ ├── MockRequest.cs │ │ │ └── MockValidator.cs │ │ ├── MessageMock.cs │ │ ├── WorkerMediatorMock.cs │ │ └── WorkerMock .cs │ ├── RabbitMqConsumerTest.cs │ └── RabbitMqProducerTest.cs ├── Liquid.Messaging.ServiceBus.Tests/ │ ├── Liquid.Messaging.ServiceBus.Tests.csproj │ ├── Mock/ │ │ └── EntityMock.cs │ ├── ServiceBusConsumerTest.cs │ ├── ServiceBusFactoryTest.cs │ ├── ServiceBusFactoryTests.cs │ └── ServiceBusProducerTest.cs ├── Liquid.Repository.EntityFramework.Tests/ │ ├── Configurations/ │ │ └── MockTypeConfiguration.cs │ ├── Entities/ │ │ ├── MockEntity.cs │ │ └── MockSubEntity.cs │ ├── EntityFrameworkDataContextTests.cs │ ├── EntityFrameworkRepositoryTest.cs │ ├── Liquid.Repository.EntityFramework.Tests.csproj │ └── MockDbContext.cs ├── Liquid.Repository.Mongo.Tests/ │ ├── IServiceCollectionExtensionsTests.cs │ ├── Liquid.Repository.Mongo.Tests.csproj │ ├── Mock/ │ │ ├── AnotherTestEntity.cs │ │ ├── AsyncCursorMock.cs │ │ └── TestEntity.cs │ ├── MongoClientFactoryTests.cs │ ├── MongoDataContextTests.cs │ └── MongoRepositoryTests.cs ├── Liquid.Repository.OData.Tests/ │ ├── GlobalUsings.cs │ ├── IServiceCollectionExtensionTests.cs │ ├── Liquid.Repository.OData.Tests.csproj │ ├── Mock/ │ │ ├── AnotherTestEntity.cs │ │ ├── MockPeople.cs │ │ ├── MyMockHttpMessageHandler.cs │ │ └── TestEntity.cs │ ├── ODataClientFactoryTests.cs │ └── ODataRepositoryTests.cs ├── Liquid.Storage.AzureStorage.Tests/ │ ├── BlobClientFactoryTests.cs │ ├── Liquid.Storage.AzureStorage.Tests.csproj │ ├── LiquidStorageAzureTests.cs │ └── Usings.cs └── Liquid.WebApi.Http.Tests/ ├── Liquid.WebApi.Http.Tests.csproj ├── LiquidControllerBaseTest.cs ├── LiquidNotificationHelperTest.cs └── Mocks/ ├── Handlers/ │ ├── TestCaseQueryHandler.cs │ ├── TestCaseRequest.cs │ └── TestCaseResponse.cs ├── TestController.cs └── TestNotificationController.cs