gitextract_3b8q698k/ ├── .gitignore ├── .nuget/ │ └── NuGet.Config ├── Abplus.sln ├── LICENSE ├── Nupkg/ │ ├── pack.bat │ └── push-all-packages-in-current_folder.bat ├── README.md ├── common.props ├── src/ │ ├── Abplus/ │ │ ├── Abplus.csproj │ │ ├── Abplus.nuspec │ │ ├── Application/ │ │ │ ├── Navigation/ │ │ │ │ └── MenuItemDefinitionPlugInExtensions.cs │ │ │ └── Services/ │ │ │ └── Dto/ │ │ │ ├── IHasDateTimeFilterRequest.cs │ │ │ ├── IHasKeywordFilterRequest.cs │ │ │ ├── IPaginationResultRequest.cs │ │ │ └── PaginationRequestInput.cs │ │ ├── Currencies/ │ │ │ └── ChineseCentExtension.cs │ │ ├── Events/ │ │ │ └── Bus/ │ │ │ └── ChangedEventData.cs │ │ ├── Extensions/ │ │ │ ├── DateTimeExtensions.cs │ │ │ ├── EnumExtensions.cs │ │ │ ├── GuidExtensions.cs │ │ │ ├── IntExtension.cs │ │ │ ├── NullableDateTimeExtensions.cs │ │ │ └── StringExtensions.cs │ │ ├── IO/ │ │ │ ├── IFileStorage.cs │ │ │ └── NullFileStorage.cs │ │ ├── Interceptors/ │ │ │ ├── AsyncHandlingInterceptor.cs │ │ │ └── IAsyncInterceptorHandler.cs │ │ ├── Json/ │ │ │ └── LargeNumJsonConverter.cs │ │ ├── MqMessages/ │ │ │ ├── IMqMessagePublisher.cs │ │ │ ├── MessageTrackers/ │ │ │ │ ├── DefaultInMemoryMessageTracker.cs │ │ │ │ └── IMessageTracker.cs │ │ │ └── NullMqMessagePublisher.cs │ │ ├── PlugIns/ │ │ │ ├── IPlugInAreaRegistration.cs │ │ │ ├── IPlugInAuthorizationProvider.cs │ │ │ └── IPlugInNavigationProvider.cs │ │ ├── QrCode/ │ │ │ └── IQrCodeScannedRealTimeNotifier.cs │ │ ├── Reservations/ │ │ │ ├── Events/ │ │ │ │ ├── ReservationCancelledEventData.cs │ │ │ │ ├── ReservationEventDataBase.cs │ │ │ │ └── ReservationSuccessEventData.cs │ │ │ ├── IReservation.cs │ │ │ ├── IReservationBody.cs │ │ │ ├── ReservationBase.cs │ │ │ └── ReservationBodyBase.cs │ │ ├── Runtime/ │ │ │ └── OS/ │ │ │ ├── EnvDescription.cs │ │ │ └── EnvironmentHelper.cs │ │ └── TimeRanges/ │ │ └── TimeRange.cs │ ├── Abplus.AspNetCore.SignalR/ │ │ ├── Abplus.AspNetCore.SignalR.csproj │ │ ├── Abplus.AspNetCore.SignalR.nuspec │ │ ├── Configuration/ │ │ │ └── Startup/ │ │ │ └── RedisOnlineClientManagerConfiguationExtensions.cs │ │ ├── RealTime/ │ │ │ ├── IRedisOnlineClientManagerModuleConfig.cs │ │ │ ├── RedisOnlineClientManager.cs │ │ │ ├── RedisOnlineClientManagerModule.cs │ │ │ └── RedisOnlineClientManagerModuleConfig.cs │ │ └── Web/ │ │ └── SignalR/ │ │ └── QrScan/ │ │ ├── SignalRQrCodeScannedRealTimeNotifier.cs │ │ └── SignalRQrCodeScannedRealTimeNotifierModule.cs │ ├── Abplus.IO.AliyunOSSStorage/ │ │ ├── Abplus.IO.AliyunOSSStorage.csproj │ │ ├── Configuration/ │ │ │ └── Startup/ │ │ │ └── AliyunOSSStorageConfigurationExtensions.cs │ │ ├── IO/ │ │ │ ├── AliyunOSSStorage/ │ │ │ │ ├── AliyunOSSStorage.cs │ │ │ │ ├── AliyunOSSStorageModule.cs │ │ │ │ ├── AliyunOSSStorageModuleConfiguration.cs │ │ │ │ └── IAliyunOSSStorageModuleConfiguration.cs │ │ │ └── AliyunOSSStorageConsts.cs │ │ └── Localization/ │ │ ├── AliyunOSSStorageLocalizationConfigurer.cs │ │ └── SourceFiles/ │ │ ├── AliyunOSSStorage-zh-Hans.xml │ │ └── AliyunOSSStorage.xml │ ├── Abplus.IO.AzureBlobStorage/ │ │ ├── Abplus.IO.AzureBlobStorage.csproj │ │ ├── Abplus.IO.AzureBlobStorage.nuspec │ │ ├── Configuration/ │ │ │ └── Startup/ │ │ │ └── AzureBlobFileStorageConfigurationExtensions.cs │ │ ├── IO/ │ │ │ ├── AzureBlobStorage/ │ │ │ │ ├── AzureBlobFileStorage.cs │ │ │ │ ├── AzureBlobFileStorageConfig.cs │ │ │ │ ├── AzureBlobFileStorageModule.cs │ │ │ │ ├── AzureBlobFileStorageModuleConfig.cs │ │ │ │ ├── Configuration/ │ │ │ │ │ ├── AzureBlobFileStorageSetting.cs │ │ │ │ │ ├── AzureBlobFileStorageSettingNames.cs │ │ │ │ │ └── AzureBlobFileStorageSettingProvider.cs │ │ │ │ ├── IAzureBlobFileStorageConfig.cs │ │ │ │ └── IAzureBlobFileStorageModuleConfig.cs │ │ │ └── AzureBlobStorageConsts.cs │ │ └── Localization/ │ │ ├── AzureBlobStorageLocalizationConfigurer.cs │ │ └── SourceFiles/ │ │ ├── AbplusAzureBlobStorage-zh-Hans.xml │ │ └── AbplusAzureBlobStorage.xml │ ├── Abplus.IO.LocalFileSystem/ │ │ ├── Abplus.IO.LocalFileSystem.csproj │ │ ├── IO/ │ │ │ ├── LocalFileSystem/ │ │ │ │ ├── ILocalFileSystemStorageConfig.cs │ │ │ │ ├── LocalFileSystemStorage.cs │ │ │ │ ├── LocalFileSystemStorageConfig.cs │ │ │ │ ├── LocalFileSystemStorageModule.cs │ │ │ │ ├── LocalFileSystemStorageSettingNames.cs │ │ │ │ └── LocalFileSystemStorageSettingProvider.cs │ │ │ └── LocalFileSystemConsts.cs │ │ └── Localization/ │ │ ├── LocalFileSystemLocalizationConfigurer.cs │ │ └── SourceFiles/ │ │ ├── AbplusLocalFileSystem-zh-Hans.xml │ │ └── AbplusLocalFileSystem.xml │ ├── Abplus.MqMessages/ │ │ ├── Abplus.MqMessages.csproj │ │ ├── Abplus.MqMessages.nuspec │ │ ├── Configuration/ │ │ │ └── Startup/ │ │ │ └── ExceptionLogInterceptorRegistrar.cs │ │ └── MqMessages/ │ │ ├── AuditingStores/ │ │ │ └── AuditInfoMqMessage.cs │ │ ├── AutoGeneration/ │ │ │ └── DontGenerateMqMessage.cs │ │ ├── AutoMapper/ │ │ │ └── AutoEventsMapToMqMessagesHelper.cs │ │ ├── Handlers/ │ │ │ └── EventDataPublishHandlerBase.cs │ │ └── MqHandlers/ │ │ ├── AbpMqHandlerBase.cs │ │ └── ExceptionLoggling/ │ │ ├── ExceptionLogAttribute.cs │ │ ├── ExceptionLogHandler.cs │ │ └── ExceptionLogInterceptor.cs │ ├── Abplus.MqMessages.AuditingConsumerHandler/ │ │ ├── Abplus.MqMessages.AuditingConsumerHandler.csproj │ │ ├── Abplus.MqMessages.AuditingConsumerHandler.nuspec │ │ ├── Auditing/ │ │ │ └── AuditingStore/ │ │ │ ├── AuditingConsumerRebusHandlerModule.cs │ │ │ ├── AuditingConsumerRebusHandlerModuleConfig.cs │ │ │ ├── IAuditingConsumerRebusHandlerModuleConfig.cs │ │ │ └── MqMessageAuditingStoreRebusHandler.cs │ │ └── Configuration/ │ │ └── Startup/ │ │ └── AuditingConsumerRebusHandlerConfigurationExtensions.cs │ ├── Abplus.MqMessages.AuditingStore/ │ │ ├── Abplus.MqMessages.AuditingStore.csproj │ │ ├── Abplus.MqMessages.AuditingStore.nuspec │ │ └── Auditing/ │ │ └── AuditingStores/ │ │ ├── MqMessageAuditingStore.cs │ │ └── MqMessageAuditingStoreModule.cs │ ├── Abplus.MqMessages.IndexToES/ │ │ ├── Abplus.MqMessages.IndexToES.csproj │ │ ├── Abplus.MqMessages.IndexToES.nuspec │ │ ├── DateTimeExtensions.cs │ │ ├── IndexFreq.cs │ │ └── MqMessages/ │ │ └── MqHandlers/ │ │ ├── MqMessageIndexToESHandlerBase.cs │ │ ├── MqMessageIndexToESHandlerBuilder.cs │ │ ├── MqMessageIndexToESHandlerBuilder.tt │ │ ├── MqMessagesT4Register.cs │ │ └── T4MultipleOutputManager.ttinclude │ ├── Abplus.MqMessages.RebusCore/ │ │ ├── Abplus.MqMessages.RebusCore.csproj │ │ ├── Abplus.MqMessages.RebusCore.nuspec │ │ └── MqMessages/ │ │ └── Publishers/ │ │ ├── RebusRabbitMqPublisher.cs │ │ └── RebusRabbitMqPublisherCoreModule.cs │ ├── Abplus.MqMessages.RebusRabbitMqConsumer/ │ │ ├── Abplus.MqMessages.RebusRabbitMqConsumer.csproj │ │ ├── Abplus.MqMessages.RebusRabbitMqConsumer.nuspec │ │ ├── Configuration/ │ │ │ └── Startup/ │ │ │ └── RebusRabbitMqConsumerConfigurationExtensions.cs │ │ └── MqMessages/ │ │ └── Consumers/ │ │ ├── IRebusRabbitMqConsumerModuleConfig.cs │ │ ├── RebusRabbitMqConsumerModule.cs │ │ └── RebusRabbitMqConsumerModuleConfig.cs │ ├── Abplus.MqMessages.RebusRabbitMqPublisher/ │ │ ├── Abplus.MqMessages.RebusRabbitMqPublisher.csproj │ │ ├── Abplus.MqMessages.RebusRabbitMqPublisher.nuspec │ │ ├── Configuration/ │ │ │ └── Startup/ │ │ │ └── RebusRabbitMqPublisherConfigurationExtensions.cs │ │ └── MqMessages/ │ │ └── Publishers/ │ │ ├── IRebusRabbitMqPublisherModuleConfig.cs │ │ ├── RebusRabbitMqPublisherModule.cs │ │ └── RebusRabbitMqPublisherModuleConfig.cs │ ├── Abplus.MqMessages.RedisStoreMessageTracker/ │ │ ├── Abplus.MqMessages.RedisStoreMessageTracker.csproj │ │ ├── Abplus.MqMessages.RedisStoreMessageTracker.nuspec │ │ └── MqMessages/ │ │ └── MessageTrackers/ │ │ ├── RedisStoreMessageTracker.cs │ │ └── RedisStoreMessageTrackerModule.cs │ ├── Abplus.T4.PermissionsFromJson/ │ │ ├── Abplus.T4.PermissionsFromJson.csproj │ │ ├── Abplus.T4.PermissionsFromJson.nuspec │ │ └── Authorization/ │ │ └── Builders/ │ │ ├── BuilderUtils.cs │ │ ├── PermissionBuilder.cs │ │ ├── PermissionBuilder.tt │ │ ├── Permissions/ │ │ │ └── Sample.json │ │ └── T4MultipleOutputManager.ttinclude │ └── Samples/ │ ├── AuditingConsumer/ │ │ ├── Sample.AuditingConsumerHandler/ │ │ │ ├── Program.cs │ │ │ ├── Sample.AuditingConsumerHandler.csproj │ │ │ ├── SampleAuditingConsumerHandlerBootstrap.cs │ │ │ └── SampleAuditingConsumerHandlerModule.cs │ │ └── Sample.MqMessageAuditingStore/ │ │ ├── Application/ │ │ │ ├── ITestAuditingStoreAppService.cs │ │ │ ├── TestAuditingInput.cs │ │ │ └── TestAuditingStoreAppService.cs │ │ ├── BackgroudWorker/ │ │ │ └── TestWorker.cs │ │ ├── Program.cs │ │ ├── Sample.MqMessageAuditingStore.csproj │ │ ├── SampleMqMessageAuditingStoreBootstrap.cs │ │ └── SampleMqMessageAuditingStoreModule.cs │ ├── FileStorage/ │ │ ├── Sample.AliyunOSSStorage/ │ │ │ ├── BackgroundWorker/ │ │ │ │ └── TestWorker.cs │ │ │ ├── Program.cs │ │ │ ├── Sample.AliyunOSSStorageConsole.csproj │ │ │ ├── SampleAliyunOSSStorageBootstrap.cs │ │ │ └── SampleAliyunOSSStorageModule.cs │ │ ├── Sample.AzureBlobStorage/ │ │ │ ├── BackgroundWorker/ │ │ │ │ └── TestWorker.cs │ │ │ ├── Program.cs │ │ │ ├── Sample.AzureBlobStorageConsole.csproj │ │ │ ├── SampleAzureBlobStorageBootstrap.cs │ │ │ └── SampleAzureBlobStorageModule.cs │ │ └── Sample.LocalFileSystem/ │ │ ├── Program.cs │ │ ├── Sample.LocalFileSystemConsole.csproj │ │ ├── SampleLocalFileSystemBootstrap.cs │ │ └── SampleLocalFileSystemModule.cs │ ├── Sample.DotNetCoreConsumerHost/ │ │ ├── Handlers/ │ │ │ └── TestHandler.cs │ │ ├── Program.cs │ │ ├── Sample.DotNetCoreConsumerHost.csproj │ │ ├── SampleConsumerHostBootstrap.cs │ │ └── SampleConsumerHostModule.cs │ ├── Sample.DotNetCorePublisherHost/ │ │ ├── BackgroundWorker/ │ │ │ └── TestWorker.cs │ │ ├── Program.cs │ │ ├── Sample.DotNetCorePublisherHost.csproj │ │ ├── SamplePublisherHostBootstrap.cs │ │ └── SamplePublisherHostModule.cs │ ├── Sample.DotNetFxConsumerHost/ │ │ ├── App.config │ │ ├── DotNetFxConsumerHostBootstrap.cs │ │ ├── DotNetFxConsumerHostModule.cs │ │ ├── Handlers/ │ │ │ └── TestHandler.cs │ │ ├── NLog.config │ │ ├── NLog.xsd │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ └── AssemblyInfo.cs │ │ ├── Sample.DotNetFxConsumerHost.csproj │ │ └── packages.config │ ├── Sample.DotNetFxPublisherHost/ │ │ ├── App.config │ │ ├── BackgroundWorker/ │ │ │ └── TestWorker.cs │ │ ├── DotNetFxPublisherHostBootstrap.cs │ │ ├── DotNetFxPublisherHostModule.cs │ │ ├── NLog.config │ │ ├── NLog.xsd │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ └── AssemblyInfo.cs │ │ ├── Sample.DotNetFxPublisherHost.csproj │ │ └── packages.config │ └── Sample.MqMessages/ │ ├── Sample.MqMessages.csproj │ └── TestMessage.cs └── src2/ ├── Abplus/ │ ├── Abplus.csproj │ ├── Abplus.nuspec │ ├── AbplusConsts.cs │ ├── Application/ │ │ ├── Navigation/ │ │ │ └── MenuItemDefinitionPlugInExtensions.cs │ │ └── Services/ │ │ └── Dto/ │ │ ├── IHasDateTimeFilterRequest.cs │ │ ├── IHasKeywordFilterRequest.cs │ │ ├── IPaginationResultRequest.cs │ │ └── PaginationRequestInput.cs │ ├── Currencies/ │ │ └── ChineseCentExtension.cs │ ├── Events/ │ │ └── Bus/ │ │ ├── ChangedEventData.cs │ │ └── IShouldBePublish.cs │ ├── Extensions/ │ │ ├── DateTimeExtensions.cs │ │ ├── EnumExtensions.cs │ │ ├── GuidExtensions.cs │ │ ├── IntExtension.cs │ │ ├── NullableDateTimeExtensions.cs │ │ └── StringExtensions.cs │ ├── Interceptors/ │ │ ├── AsyncHandlingInterceptor.cs │ │ └── IAsyncInterceptorHandler.cs │ ├── Json/ │ │ └── LargeNumJsonConverter.cs │ ├── MqMessages/ │ │ ├── IMqMessagePublisher.cs │ │ ├── MessageTrackers/ │ │ │ ├── DefaultInMemoryMessageTracker.cs │ │ │ └── IMessageTracker.cs │ │ └── NullMqMessagePublisher.cs │ ├── PlugIns/ │ │ ├── IPlugInAreaRegistration.cs │ │ ├── IPlugInAuthorizationProvider.cs │ │ └── IPlugInNavigationProvider.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── QrCode/ │ │ └── IQrCodeScannedRealTimeNotifier.cs │ ├── Reservations/ │ │ ├── Events/ │ │ │ ├── ReservationCancelledEventData.cs │ │ │ ├── ReservationEventDataBase.cs │ │ │ └── ReservationSuccessEventData.cs │ │ ├── IReservation.cs │ │ ├── IReservationBody.cs │ │ ├── ReservationBase.cs │ │ └── ReservationBodyBase.cs │ ├── TimeRanges/ │ │ └── TimeRange.cs │ ├── app.config │ └── packages.config ├── Abplus.Common/ │ ├── Abplus.Common.csproj │ ├── Abplus.Common.nuspec │ ├── Application/ │ │ └── Services/ │ │ └── Dto/ │ │ ├── IPagedQueryInput.cs │ │ └── PagedQueryInput.cs │ ├── Linq/ │ │ └── Extensions/ │ │ └── IQueryableExtension.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── app.config │ └── packages.config ├── Abplus.EntityFramework/ │ ├── Abplus.EntityFramework.csproj │ ├── Abplus.EntityFramework.nuspec │ ├── App.config │ ├── EntityFramework/ │ │ ├── DbContextUtils.cs │ │ └── DbModelBuilderExtensions.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ └── packages.config ├── Abplus.Events.Producer/ │ ├── Abplus.Events.Producer.csproj │ ├── Abplus.Events.Producer.nuspec │ ├── Events/ │ │ └── Producer/ │ │ ├── AbpEventsProducerModule.cs │ │ ├── Handler/ │ │ │ └── PublishAllEventsHandler.cs │ │ ├── IProducer.cs │ │ └── NullProducer.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ └── packages.config ├── Abplus.MqMessages/ │ ├── Abplus.MqMessages.csproj │ ├── Abplus.MqMessages.nuspec │ ├── Configuration/ │ │ └── Startup/ │ │ └── ExceptionLogInterceptorRegistrar.cs │ ├── MqMessages/ │ │ ├── AutoMapper/ │ │ │ └── AutoEventsMapToMqMessagesHelper.cs │ │ ├── Handlers/ │ │ │ └── EventDataPublishHandlerBase.cs │ │ └── MqHandlers/ │ │ ├── AbpMqHandlerBase.cs │ │ └── ExceptionLoggling/ │ │ ├── ExceptionLogAttribute.cs │ │ ├── ExceptionLogHandler.cs │ │ └── ExceptionLogInterceptor.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── app.config │ └── packages.config ├── Abplus.MqMessages.AuditingConsumerHandler/ │ ├── Abplus.MqMessages.AuditingConsumerRebusHandler.csproj │ ├── Auditing/ │ │ └── AuditingStore/ │ │ ├── AuditingConsumerRebusHandlerModule.cs │ │ ├── AuditingConsumerRebusHandlerModuleConfig.cs │ │ ├── IAuditingConsumerRebusHandlerModuleConfig.cs │ │ └── MqMessageAuditingStoreRebusHandler.cs │ ├── Configuration/ │ │ └── Startup/ │ │ └── AuditingConsumerRebusHandlerConfigurationExtensions.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── app.config │ └── packages.config ├── Abplus.MqMessages.AuditingStore/ │ ├── Abplus.MqMessages.AuditingStore.csproj │ ├── Abplus.MqMessages.AuditingStore.nuspec │ ├── Auditing/ │ │ └── AuditingStores/ │ │ ├── AuditInfoMqMessage.cs │ │ ├── MqMessageAuditingStore.cs │ │ └── MqMessageAuditingStoreModule.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── app.config │ └── packages.config ├── Abplus.MqMessages.IndexToES/ │ ├── Abplus.MqMessages.IndexToES.csproj │ ├── Abplus.MqMessages.IndexToES.nuspec │ ├── DateTimeExtensions.cs │ ├── IndexFreq.cs │ ├── MqMessages/ │ │ └── MqHandlers/ │ │ ├── MqMessageIndexToESHandlerBase.cs │ │ ├── MqMessageIndexToESHandlerBuilder.cs │ │ ├── MqMessageIndexToESHandlerBuilder.tt │ │ ├── MqMessagesT4Register.cs │ │ └── T4MultipleOutputManager.ttinclude │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── app.config │ └── packages.config ├── Abplus.MqMessages.RebusConsumer/ │ ├── Abplus.MqMessages.RebusConsumer.nuspec │ ├── Abplus.MqMessages.RebusRabbitMqConsumer.csproj │ ├── Configuration/ │ │ └── Startup/ │ │ └── RebusRabbitMqConsumerConfigurationExtensions.cs │ ├── MqMessages/ │ │ └── Consumers/ │ │ ├── IRebusRabbitMqConsumerModuleConfig.cs │ │ ├── RebusRabbitMqConsumerModule.cs │ │ └── RebusRabbitMqConsumerModuleConfig.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── app.config │ └── packages.config ├── Abplus.MqMessages.RebusCore/ │ ├── Abplus.MqMessages.RebusCore.csproj │ ├── Abplus.MqMessages.RebusCore.nuspec │ ├── MqMessages/ │ │ └── Publishers/ │ │ ├── RebusRabbitMqPublisher.cs │ │ └── RebusRabbitMqPublisherCoreModule.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── app.config │ └── packages.config ├── Abplus.MqMessages.RebusPublisher/ │ ├── Abplus.MqMessages.RebusPublisher.nuspec │ ├── Abplus.MqMessages.RebusRabbitMqPublisher.csproj │ ├── Configuration/ │ │ └── Startup/ │ │ └── RebusRabbitMqPublisherConfigurationExtensions.cs │ ├── MqMessages/ │ │ └── Publishers/ │ │ ├── IRebusRabbitMqPublisherModuleConfig.cs │ │ ├── RebusRabbitMqPublisherModule.cs │ │ └── RebusRabbitMqPublisherModuleConfig.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── app.config │ └── packages.config ├── Abplus.MqMessages.RedisStoreMessageTracker/ │ ├── Abplus.MqMessages.RedisStoreMessageTracker.csproj │ ├── Abplus.MqMessages.RedisStoreMessageTracker.nuspec │ ├── MqMessages/ │ │ └── MessageTrackers/ │ │ ├── RedisStoreMessageTracker.cs │ │ └── RedisStoreMessageTrackerModule.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── app.config │ └── packages.config ├── Abplus.RebusRabbitmqConsumer/ │ ├── Abplus.RebusRabbitmqConsumer.csproj │ ├── Abplus.RebusRabbitmqConsumer.nuspec │ ├── Configuration/ │ │ └── Startup/ │ │ └── AbpRebusRabbitMqConsumerConfigurationExtensions.cs │ ├── Events/ │ │ └── Consumer/ │ │ └── RebusRabbitMq/ │ │ ├── AbpRebusRabbitMqConsumerModule.cs │ │ ├── AbpRebusRabbitMqConsumerModuleConfig.cs │ │ └── IAbpRebusRabbitMqConsumerModuleConfig.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ └── packages.config ├── Abplus.RebusRabbitmqProducer/ │ ├── Abplus.RebusRabbitmqProducer.csproj │ ├── Abplus.RebusRabbitmqProducer.nuspec │ ├── Configuration/ │ │ └── Startup/ │ │ └── AbpRebusRabbitMqProducerConfigurationExtensions.cs │ ├── Events/ │ │ └── Producer/ │ │ └── RebusRabbitMq/ │ │ ├── AbpRebusRabbitMqProducerModule.cs │ │ ├── AbpRebusRabbitMqProducerModuleConfig.cs │ │ ├── IAbpRebusRabbitMqProducerModuleConfig.cs │ │ └── RebusRabbitMqProducer.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── app.config │ └── packages.config ├── Abplus.T4.PermissionsFromJson/ │ ├── Abplus.T4.PermissionsFromJson.csproj │ ├── Abplus.T4.PermissionsFromJson.nuspec │ ├── Authorization/ │ │ └── Builders/ │ │ ├── BuilderUtils.cs │ │ ├── PermissionBuilder.cs │ │ ├── PermissionBuilder.tt │ │ ├── Permissions/ │ │ │ └── Sample.json │ │ └── T4MultipleOutputManager.ttinclude │ └── Properties/ │ └── AssemblyInfo.cs ├── Abplus.Web.Api/ │ ├── Abplus.Web.Api.csproj │ ├── Abplus.Web.Api.nuspec │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── WebApi/ │ │ └── JsonMediaTypeFormatterExtension.cs │ ├── WebApiVersionRoute/ │ │ ├── RoutingConstraints/ │ │ │ ├── VersionConstraint.cs │ │ │ └── VersionedRoute.cs │ │ ├── SysCode.cs │ │ ├── Version.cs │ │ ├── VersionConsts.cs │ │ └── VersionRange.cs │ ├── app.config │ └── packages.config ├── Abplus.Web.PlugIns/ │ ├── Abplus.Web.PlugIns.csproj │ ├── Abplus.Web.PlugIns.csproj.nuspec │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── Web/ │ │ └── Mvc/ │ │ ├── AbpWebPlugInModule.cs │ │ └── Controllers/ │ │ └── PlugInWindsorControllerFactory.cs │ └── packages.config ├── Abplus.Web.SignalR/ │ ├── Abplus.Web.SignalR.csproj │ ├── Abplus.Web.SignalR.nuspec │ ├── Configuration/ │ │ └── Startup/ │ │ └── RedisOnlineClientManagerConfiguationExtensions.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── RealTime/ │ │ ├── IRedisOnlineClientManagerModuleConfig.cs │ │ ├── RedisOnlineClientManager.cs │ │ ├── RedisOnlineClientManagerModule.cs │ │ └── RedisOnlineClientManagerModuleConfig.cs │ ├── Web/ │ │ └── SignalR/ │ │ └── QrScan/ │ │ ├── SignalRQrCodeScannedRealTimeNotifier.cs │ │ └── SignalRQrCodeScannedRealTimeNotifierModule.cs │ ├── app.config │ └── packages.config ├── Abplus.Web.SimpleCaptcha/ │ ├── Abplus.Web.SimpleCaptcha.csproj │ ├── Abplus.Web.SimpleCaptcha.nuspec │ ├── Configuration/ │ │ └── Startup/ │ │ └── SimpleCaptchaManagerConfigurationExtension.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── Web/ │ │ └── SimpleCaptcha/ │ │ ├── ISimpleCaptchaModuleConfig.cs │ │ ├── IVerificationCodeStore.cs │ │ ├── SimpleCaptchaManager.cs │ │ ├── SimpleCaptchaModule.cs │ │ ├── SimpleCaptchaModuleConfig.cs │ │ └── VerificationCodeStores/ │ │ ├── CacheVerificationCodeStore.cs │ │ ├── CookieVerificationCodeStore.cs │ │ └── SessionVerificationCodeStore.cs │ ├── app.config │ └── packages.config ├── Abplus.WebApiClient/ │ ├── Abplus.WebApiClient.csproj │ ├── Abplus.WebApiClient.nuspec │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── WebApiClient/ │ │ ├── AbplusWebApiClient.cs │ │ ├── AbplusWebApiClientModule.cs │ │ ├── AbplusWebApiClientRemoteCallException.cs │ │ └── IAbplusWebApiClient.cs │ ├── app.config │ └── packages.config ├── Samples/ │ ├── Abplus.WebApiVersionRoute.Sample/ │ │ ├── Abplus.WebApiVersionRoute.Sample.csproj │ │ ├── App_Start/ │ │ │ └── WebApiConfig.cs │ │ ├── Controllers/ │ │ │ └── ValueController.cs │ │ ├── Global.asax │ │ ├── Global.asax.cs │ │ ├── Properties/ │ │ │ └── AssemblyInfo.cs │ │ ├── Web.Debug.config │ │ ├── Web.Release.config │ │ ├── Web.config │ │ └── packages.config │ ├── Sample.MqMessages/ │ │ ├── MqMessages/ │ │ │ └── TestMqMessage.cs │ │ ├── Properties/ │ │ │ └── AssemblyInfo.cs │ │ └── Sample.MqMessages.csproj │ ├── Sample.RebusRabbitMqConsumer/ │ │ ├── App.config │ │ ├── Handlers/ │ │ │ └── TestHandler.cs │ │ ├── NLog.config │ │ ├── NLog.xsd │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ └── AssemblyInfo.cs │ │ ├── Sample.RebusRabbitMqConsumer.csproj │ │ ├── SampleRebusRabbitMqConsumerBootstrap.cs │ │ ├── SampleRebusRabbitMqConsumerModule.cs │ │ └── packages.config │ └── Sample.RebusRabbitMqPublisher/ │ ├── App.config │ ├── BackgroundWorks/ │ │ └── TestWorker.cs │ ├── NLog.config │ ├── NLog.xsd │ ├── Program.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── Sample.RebusRabbitMqPublisher.csproj │ ├── SampleRebusRabbitMqPublisherBootstrap.cs │ ├── SampleRebusRabbitMqPublisherModule.cs │ └── packages.config └── Tests/ └── Abplus.Tests/ ├── Abplus.Tests.csproj ├── Properties/ │ └── AssemblyInfo.cs ├── TimeRanges/ │ └── TimeRange_Tests.cs ├── app.config └── packages.config