├── .gitignore ├── Directory.Build.props ├── LICENSE.txt ├── Util.sln ├── build ├── Build.csproj ├── BuildScript.cs ├── common.props ├── icon.jpg └── version.props ├── clear-bin.ps1 ├── readme.md ├── src ├── Util.Aop.AspectCore │ ├── 03-Util.Aop.AspectCore.csproj │ ├── AppBuilderExtensions.cs │ ├── IgnoreAttribute.cs │ ├── InterceptorBase.cs │ ├── NotEmptyAttribute.cs │ ├── NotNullAttribute.cs │ ├── ParameterInterceptorBase.cs │ └── Usings.cs ├── Util.Application.EntityFrameworkCore │ ├── 02-Util.Application.EntityFrameworkCore.csproj │ ├── CrudServiceBase.cs │ ├── QueryServiceBase.cs │ ├── Trees │ │ ├── TreeQueryServiceBase.cs │ │ └── TreeServiceBase.cs │ └── Usings.cs ├── Util.Application.WebApi │ ├── 03-Util.Application.WebApi.csproj │ ├── Controllers │ │ ├── CrudControllerBase.cs │ │ ├── QueryControllerBase.cs │ │ ├── TreeControllerBase.cs │ │ ├── TreeQueryControllerBase.cs │ │ └── WebApiControllerBase.cs │ ├── Filters │ │ ├── ErroLogFilterAttribute.cs │ │ ├── ExceptionHandlerAttribute.cs │ │ └── LockAttribute.cs │ ├── IResultFactory.cs │ ├── Infrastructure │ │ ├── ServiceRegistrarConfigExtensions.cs │ │ └── WebApiServiceRegistrar.cs │ ├── JsonSerializerOptionsFactory.cs │ ├── Logging │ │ ├── LogContextAccessor.cs │ │ ├── LogContextMiddleware.cs │ │ ├── LogContextMiddlewareExtensions.cs │ │ └── LogContextStartupFilter.cs │ ├── Models │ │ └── SaveModel.cs │ ├── Properties │ │ ├── WebApiResource.Designer.cs │ │ └── WebApiResource.resx │ ├── Result.cs │ ├── Sessions │ │ └── SessionExtensions.cs │ └── Usings.cs ├── Util.Application │ ├── 01-Util.Application.csproj │ ├── AppBuilderExtensions.cs │ ├── Dtos │ │ ├── DtoBase.cs │ │ ├── IDto.cs │ │ ├── IRequest.cs │ │ └── RequestBase.cs │ ├── ExceptionExtensions.cs │ ├── ICrudService.cs │ ├── IQueryService.cs │ ├── IService.cs │ ├── Locks │ │ ├── DefaultLock.cs │ │ ├── ILock.cs │ │ ├── LockType.cs │ │ └── NullLock.cs │ ├── Properties │ │ ├── ApplicationResource.Designer.cs │ │ └── ApplicationResource.resx │ ├── ServiceBase.cs │ ├── TreeNodeExtensions.cs │ ├── Trees │ │ ├── ITreeNode.cs │ │ ├── ITreeQueryService.cs │ │ ├── ITreeService.cs │ │ ├── LoadMode.cs │ │ ├── LoadOperation.cs │ │ ├── TreeDtoBase.cs │ │ ├── TreeQueryActionBase.cs │ │ ├── TreeResultBase.cs │ │ ├── TreeTableQueryAction.cs │ │ ├── TreeTableResult.cs │ │ └── TreeTableResultBase.cs │ └── Usings.cs ├── Util.AspNetCore │ ├── 07-Util.AspNetCore.csproj │ ├── AppBuilderExtensions.cs │ ├── AspNetCore │ │ └── IJsonSerializerOptionsFactory.cs │ ├── Helpers │ │ ├── Ip.cs │ │ └── Web.cs │ ├── Http │ │ ├── HttpClientService.cs │ │ ├── HttpRequest.cs │ │ └── HttpResponseMessageExtensions.cs │ ├── IdentityExtensions.cs │ ├── Infrastructure │ │ └── AspNetCoreServiceRegistrar.cs │ ├── Security │ │ ├── AclAttribute.cs │ │ ├── Authorization │ │ │ ├── AclFilter.cs │ │ │ ├── AclHandler.cs │ │ │ ├── AclMiddlewareResultHandler.cs │ │ │ ├── AclPolicyHelper.cs │ │ │ ├── AclPolicyProvider.cs │ │ │ └── AclRequirement.cs │ │ └── Encryptors │ │ │ └── DataProtectionEncryptor.cs │ ├── Sessions │ │ └── UserSession.cs │ ├── Usings.cs │ └── WebApplicationBuilderExtensions.cs ├── Util.Caching.EasyCaching │ ├── 02-Util.Caching.EasyCaching.csproj │ ├── AppBuilderExtensions.cs │ ├── CacheKeyGenerator.cs │ ├── CacheManager.cs │ ├── CacheProviderKey.cs │ ├── EasyCachingOptions.cs │ ├── MemoryCacheManager.cs │ ├── RedisCacheManager.cs │ └── Usings.cs ├── Util.Caching │ ├── 01-Util.Caching.csproj │ ├── CacheAttribute.cs │ ├── CacheKey.cs │ ├── CacheKeyExtensions.cs │ ├── CacheOptions.cs │ ├── ICache.cs │ ├── ICacheKeyGenerator.cs │ ├── ILocalCache.cs │ ├── IRedisCache.cs │ ├── LocalCacheAttribute.cs │ ├── RedisCacheAttribute.cs │ └── Usings.cs ├── Util.Core │ ├── 01-Util.Core.csproj │ ├── Applications │ │ └── StateCode.cs │ ├── CommonExtensions.cs │ ├── Configs │ │ ├── AppBuilder.cs │ │ ├── IAppBuilder.cs │ │ ├── IOptions.cs │ │ ├── IOptionsExtension.cs │ │ ├── Options.cs │ │ ├── OptionsBase.cs │ │ └── OptionsExtensionBase.cs │ ├── ConvertExtensions.cs │ ├── Data │ │ └── Operator.cs │ ├── DateTimeExtensions.cs │ ├── Dates │ │ ├── AppBuilderExtensions.cs │ │ └── TimeOptions.cs │ ├── Dependency │ │ ├── Container.cs │ │ ├── IDependencyRegistrar.cs │ │ ├── IScopeDependency.cs │ │ ├── ISingletonDependency.cs │ │ ├── ITransientDependency.cs │ │ └── IocAttribute.cs │ ├── DisposeAction.cs │ ├── Domain │ │ ├── IDelete.cs │ │ ├── IKey.cs │ │ └── IVersion.cs │ ├── Exceptions │ │ ├── ConcurrencyException.cs │ │ └── Warning.cs │ ├── ExpressionExtensions.cs │ ├── Expressions │ │ ├── ParameterRebinder.cs │ │ └── PredicateExpressionBuilder.cs │ ├── FileStorage │ │ ├── FileSize.cs │ │ ├── FileSizeUnit.cs │ │ └── FileStorageInfo.cs │ ├── FormatExtensions.cs │ ├── Helpers │ │ ├── CommandLine.cs │ │ ├── Common.cs │ │ ├── Config.cs │ │ ├── Const.cs │ │ ├── Convert.cs │ │ ├── Culture.cs │ │ ├── Enum.cs │ │ ├── Environment.cs │ │ ├── File.cs │ │ ├── Id.cs │ │ ├── Ioc.cs │ │ ├── Json.cs │ │ ├── Lambda.cs │ │ ├── Random.cs │ │ ├── Reflection.cs │ │ ├── Regex.cs │ │ ├── String.cs │ │ ├── Thread.cs │ │ ├── Time.cs │ │ ├── Url.cs │ │ ├── Validation.cs │ │ ├── Xml.Builder.cs │ │ └── Xml.Tools.cs │ ├── HostBuilderExtensions.cs │ ├── Http │ │ ├── HttpContentType.cs │ │ ├── IHttpClient.cs │ │ └── IHttpRequest.cs │ ├── Images │ │ └── ImageType.cs │ ├── Infrastructure │ │ ├── Bootstrapper.cs │ │ ├── BootstrapperConfig.cs │ │ ├── DependencyServiceRegistrar.cs │ │ ├── IServiceRegistrar.cs │ │ ├── ServiceContext.cs │ │ ├── ServiceRegistrarConfig.cs │ │ └── ServiceRegistrarConfigExtensions.cs │ ├── Item.cs │ ├── JsonOptions.cs │ ├── ObjectMapperExtensions.cs │ ├── ObjectMapping │ │ └── IObjectMapper.cs │ ├── Properties │ │ ├── R.Designer.cs │ │ └── R.resx │ ├── ReflectionExtensions.cs │ ├── Reflections │ │ ├── AppDomainAssemblyFinder.cs │ │ ├── AppDomainTypeFinder.cs │ │ ├── IAssemblyFinder.cs │ │ └── ITypeFinder.cs │ ├── ServiceCollectionExtensions.cs │ ├── Sessions │ │ ├── ISession.cs │ │ └── NullSession.cs │ ├── StringExtensions.cs │ ├── SystemTextJson │ │ ├── DateTimeJsonConverter.cs │ │ ├── NullableDateTimeJsonConverter.cs │ │ ├── UtcDateTimeJsonConverter.cs │ │ └── UtcNullableDateTimeJsonConverter.cs │ ├── Ui │ │ ├── HtmlAttribute.cs │ │ └── ModelAttribute.cs │ ├── Usings.cs │ └── ValidationExtensions.cs ├── Util.Data.Abstractions │ ├── 06-Util.Data.Abstractions.csproj │ ├── Filters │ │ └── IFilterOperation.cs │ ├── ICondition.cs │ ├── IUnitOfWork.cs │ ├── IUnitOfWorkActionManager.cs │ ├── NullUnitOfWorkActionManager.cs │ ├── PageList.cs │ ├── Queries │ │ ├── IPage.cs │ │ ├── ITrack.cs │ │ └── Pager.cs │ ├── StoreExtensions.cs │ ├── Stores │ │ ├── IQueryStore.cs │ │ └── IStore.cs │ └── Usings.cs ├── Util.Data.Core │ ├── 01-Util.Data.Core.csproj │ ├── DatabaseType.cs │ ├── DefaultDatabase.cs │ ├── FilterExtensions.cs │ ├── Filters │ │ ├── IFilter.cs │ │ ├── IFilterManager.cs │ │ └── IFilterSwitch.cs │ ├── IDatabase.cs │ ├── IDatabaseFactory.cs │ ├── Queries │ │ ├── Boundary.cs │ │ ├── Conditions │ │ │ ├── DateSegmentCondition.cs │ │ │ ├── DateTimeSegmentCondition.cs │ │ │ ├── DecimalSegmentCondition.cs │ │ │ ├── DefaultCondition.cs │ │ │ ├── DoubleSegmentCondition.cs │ │ │ ├── IntSegmentCondition.cs │ │ │ ├── Internal │ │ │ │ ├── DateTimeQuery.cs │ │ │ │ ├── DecimalQuery.cs │ │ │ │ ├── DoubleQuery.cs │ │ │ │ └── IntQuery.cs │ │ │ ├── OrIfNotEmptyCondition.cs │ │ │ ├── SegmentConditionBase.cs │ │ │ └── WhereIfNotEmptyCondition.cs │ │ └── QueryParameter.cs │ ├── QueryableExtensions.cs │ ├── Trees │ │ ├── ITreeQueryParameter.cs │ │ ├── TreeCondition.cs │ │ └── TreeQueryParameter.cs │ ├── UnitOfWorkActionManager.cs │ └── Usings.cs ├── Util.Data.Dapper.All │ ├── 05-Util.Data.Dapper.All.csproj │ ├── Infrastructure │ │ ├── DapperServiceRegistrar.cs │ │ └── ServiceRegistrarConfigExtensions.cs │ ├── Metadata │ │ ├── MetadataServiceFactory.cs │ │ └── TypeConverterFactory.cs │ └── Usings.cs ├── Util.Data.Dapper.Core │ ├── 01-Util.Data.Dapper.Core.csproj │ ├── Infrastructure │ │ ├── DapperServiceRegistrar.cs │ │ └── ServiceRegistrarConfigExtensions.cs │ ├── Properties │ │ ├── UtilDataDapperResource.Designer.cs │ │ └── UtilDataDapperResource.resx │ ├── Sql │ │ ├── SqlExecutorBase.cs │ │ └── SqlQueryBase.cs │ ├── TypeHandlers │ │ └── ExtraPropertiesTypeHandler.cs │ └── Usings.cs ├── Util.Data.Dapper.MySql │ ├── 04-Util.Data.Dapper.MySql.csproj │ ├── Metadata │ │ ├── MySqlMetadataService.cs │ │ └── MySqlTypeConverter.cs │ ├── Sql │ │ ├── AppBuilderExtensions.cs │ │ ├── Builders │ │ │ ├── MySqlBuilder.cs │ │ │ ├── MySqlColumnCache.cs │ │ │ ├── MySqlDialect.cs │ │ │ └── MySqlExistsSqlBuilder.cs │ │ ├── MySqlDatabaseFactory.cs │ │ ├── MySqlExecutor.cs │ │ ├── MySqlExecutorBase.cs │ │ ├── MySqlQuery.cs │ │ └── MySqlQueryBase.cs │ └── Usings.cs ├── Util.Data.Dapper.PostgreSql │ ├── 03-Util.Data.Dapper.PostgreSql.csproj │ ├── Metadata │ │ ├── PostgreSqlMetadataService.cs │ │ └── PostgreSqlTypeConverter.cs │ ├── Sql │ │ ├── AppBuilderExtensions.cs │ │ ├── Builders │ │ │ ├── PostgreSqlBuilder.cs │ │ │ ├── PostgreSqlColumnCache.cs │ │ │ ├── PostgreSqlDialect.cs │ │ │ └── PostgreSqlExistsSqlBuilder.cs │ │ ├── PostgreSqlDatabaseFactory.cs │ │ ├── PostgreSqlExecutor.cs │ │ ├── PostgreSqlExecutorBase.cs │ │ ├── PostgreSqlQuery.cs │ │ └── PostgreSqlQueryBase.cs │ └── Usings.cs ├── Util.Data.Dapper.SqlServer │ ├── 02-Util.Data.Dapper.SqlServer.csproj │ ├── Metadata │ │ ├── SqlServerMetadataService.cs │ │ └── SqlServerTypeConverter.cs │ ├── Sql │ │ ├── AppBuilderExtensions.cs │ │ ├── Builders │ │ │ ├── SqlServerBuilder.cs │ │ │ ├── SqlServerColumnCache.cs │ │ │ ├── SqlServerDialect.cs │ │ │ └── SqlServerExistsSqlBuilder.cs │ │ ├── SqlServerDatabaseFactory.cs │ │ ├── SqlServerSqlExecutor.cs │ │ ├── SqlServerSqlExecutorBase.cs │ │ ├── SqlServerSqlQuery.cs │ │ └── SqlServerSqlQueryBase.cs │ └── Usings.cs ├── Util.Data.EntityFrameworkCore.MySql │ ├── 04-Util.Data.EntityFrameworkCore.MySql.csproj │ ├── AppBuilderExtensions.cs │ ├── MySqlUnitOfWorkBase.cs │ └── Usings.cs ├── Util.Data.EntityFrameworkCore.Oracle │ ├── 06-Util.Data.EntityFrameworkCore.Oracle.csproj │ ├── AppBuilderExtensions.cs │ ├── OracleUnitOfWorkBase.cs │ └── Usings.cs ├── Util.Data.EntityFrameworkCore.PostgreSql │ ├── 03-Util.Data.EntityFrameworkCore.PostgreSql.csproj │ ├── AppBuilderExtensions.cs │ ├── PgSqlUnitOfWorkBase.cs │ └── Usings.cs ├── Util.Data.EntityFrameworkCore.SqlServer │ ├── 02-Util.Data.EntityFrameworkCore.SqlServer.csproj │ ├── AppBuilderExtensions.cs │ ├── SqlServerUnitOfWorkBase.cs │ └── Usings.cs ├── Util.Data.EntityFrameworkCore.Sqlite │ ├── 05-Util.Data.EntityFrameworkCore.Sqlite.csproj │ ├── AppBuilderExtensions.cs │ ├── SqliteUnitOfWorkBase.cs │ └── Usings.cs ├── Util.Data.EntityFrameworkCore │ ├── 01-Util.Data.EntityFrameworkCore.csproj │ ├── FilterExtensions.cs │ ├── Filters │ │ ├── DeleteFilter.cs │ │ ├── FilterBase.cs │ │ └── FilterManager.cs │ ├── Infrastructure │ │ ├── EntityFrameworkServiceRegistrar.cs │ │ └── ServiceRegistrarConfigExtensions.cs │ ├── Migrations │ │ ├── IMigrationFileService.cs │ │ ├── IMigrationService.cs │ │ ├── MigrationFileService.cs │ │ └── MigrationService.cs │ ├── QueryableExtensions.cs │ ├── RepositoryBase.cs │ ├── StoreBase.cs │ ├── Trees │ │ └── TreeRepositoryBase.cs │ ├── UnitOfWorkBase.cs │ ├── UnitOfWorkExtensions.cs │ ├── Usings.cs │ ├── ValueComparers │ │ └── ExtraPropertyDictionaryValueComparer.cs │ └── ValueConverters │ │ ├── DateTimeValueConverter.cs │ │ ├── ExtraPropertiesValueConverter.cs │ │ └── TrimStringValueConverter.cs ├── Util.Data.Metadata │ ├── 03-Util.Data.Metadata.csproj │ ├── ColumnInfo.cs │ ├── DatabaseInfo.cs │ ├── IMetadataService.cs │ ├── IMetadataServiceFactory.cs │ ├── ITypeConverter.cs │ ├── ITypeConverterFactory.cs │ ├── TableInfo.cs │ └── Usings.cs ├── Util.Data.Sql │ ├── 02-Util.Data.Sql.csproj │ ├── Builders │ │ ├── Caches │ │ │ ├── ColumnCacheBase.cs │ │ │ └── IColumnCache.cs │ │ ├── Clauses │ │ │ ├── ClauseBase.cs │ │ │ ├── EndClause.cs │ │ │ ├── FromClause.cs │ │ │ ├── GroupByClause.cs │ │ │ ├── IEndClause.cs │ │ │ ├── IFromClause.cs │ │ │ ├── IGroupByClause.cs │ │ │ ├── IInsertClause.cs │ │ │ ├── IJoinClause.cs │ │ │ ├── IOrderByClause.cs │ │ │ ├── ISelectClause.cs │ │ │ ├── ISqlClause.cs │ │ │ ├── IStartClause.cs │ │ │ ├── IWhereClause.cs │ │ │ ├── InsertClause.cs │ │ │ ├── JoinClause.cs │ │ │ ├── OrderByClause.cs │ │ │ ├── SelectClause.cs │ │ │ ├── StartClause.cs │ │ │ └── WhereClause.cs │ │ ├── Conditions │ │ │ ├── AndCondition.cs │ │ │ ├── ContainsCondition.cs │ │ │ ├── EndsCondition.cs │ │ │ ├── EqualCondition.cs │ │ │ ├── ExistsCondition.cs │ │ │ ├── GreaterCondition.cs │ │ │ ├── GreaterEqualCondition.cs │ │ │ ├── InCondition.cs │ │ │ ├── IsNotNullCondition.cs │ │ │ ├── IsNullCondition.cs │ │ │ ├── LessCondition.cs │ │ │ ├── LessEqualCondition.cs │ │ │ ├── NotEqualCondition.cs │ │ │ ├── NotExistsCondition.cs │ │ │ ├── NotInCondition.cs │ │ │ ├── NullCondition.cs │ │ │ ├── OrCondition.cs │ │ │ ├── SegmentCondition.cs │ │ │ ├── SqlCondition.cs │ │ │ ├── SqlConditionBase.cs │ │ │ └── StartsCondition.cs │ │ ├── Core │ │ │ ├── ColumnItem.cs │ │ │ ├── CteItem.cs │ │ │ ├── DialectBase.cs │ │ │ ├── NameItem.cs │ │ │ ├── OrderByItem.cs │ │ │ ├── SplitItem.cs │ │ │ ├── SqlBuilderItem.cs │ │ │ └── TableItem.cs │ │ ├── IConditionFactory.cs │ │ ├── IDialect.cs │ │ ├── IExistsSqlBuilder.cs │ │ ├── ISqlContent.cs │ │ ├── ISqlPartAccessor.cs │ │ ├── Operations │ │ │ ├── IEnd.cs │ │ │ ├── IFrom.cs │ │ │ ├── IGroupBy.cs │ │ │ ├── IInsert.cs │ │ │ ├── IJoin.cs │ │ │ ├── IOrderBy.cs │ │ │ ├── ISelect.cs │ │ │ ├── ISet.cs │ │ │ ├── ISqlOperation.cs │ │ │ ├── ISqlParameter.cs │ │ │ ├── ISqlQueryOperation.cs │ │ │ ├── IStart.cs │ │ │ └── IWhere.cs │ │ ├── Params │ │ │ ├── IClearParameters.cs │ │ │ ├── IGetParameter.cs │ │ │ ├── IParamLiteralsResolver.cs │ │ │ ├── IParameterManager.cs │ │ │ ├── ParamLiteralsResolver.cs │ │ │ ├── ParameterManager.cs │ │ │ └── SqlParam.cs │ │ ├── Sets │ │ │ ├── ISqlBuilderSet.cs │ │ │ ├── SqlBuilderSet.cs │ │ │ └── SqlBuilderSetItem.cs │ │ ├── SqlBuilderBase.cs │ │ ├── SqlBuilderResult.cs │ │ └── SqlConditionFactory.cs │ ├── Configs │ │ ├── ISqlOptions.cs │ │ └── ISqlOptionsAccessor.cs │ ├── Database │ │ ├── IConnectionManager.cs │ │ └── ITransactionManager.cs │ ├── EndClauseExtensions.cs │ ├── FromClauseExtensions.cs │ ├── GroupByClauseExtensions.cs │ ├── ISqlBuilder.cs │ ├── ISqlCondition.cs │ ├── ISqlExecutor.cs │ ├── ISqlQuery.cs │ ├── InsertClauseExtensions.cs │ ├── JoinClauseExtensions.cs │ ├── OrderByClauseExtensions.cs │ ├── ParameterExtensions.cs │ ├── SelectClauseExtensions.cs │ ├── SqlBuilderSetExtensions.cs │ ├── SqlExecutorExtensions.cs │ ├── SqlOptions.cs │ ├── SqlOptionsExtensions.cs │ ├── SqlQueryExtensions.Query.cs │ ├── SqlQueryExtensions.Scalar.cs │ ├── SqlQueryExtensions.cs │ ├── StartClauseExtensions.cs │ ├── Usings.cs │ └── WhereClauseExtensions.cs ├── Util.Domain.Biz │ ├── 02-Util.Domain.Biz.csproj │ ├── Enums │ │ ├── Gender.cs │ │ └── Nation.cs │ └── Usings.cs ├── Util.Domain │ ├── 01-Util.Domain.csproj │ ├── Auditing │ │ ├── CreationAuditedSetter.cs │ │ ├── IAudited.cs │ │ ├── ICreationAudited.cs │ │ ├── ICreationTime.cs │ │ ├── ILastModificationTime.cs │ │ ├── IModificationAudited.cs │ │ └── ModificationAuditedSetter.cs │ ├── Compare │ │ ├── ChangeValue.cs │ │ ├── ChangeValueCollection.cs │ │ ├── ICompareChange.cs │ │ ├── KeyListComparator.cs │ │ ├── KeyListCompareResult.cs │ │ ├── ListComparator.cs │ │ └── ListCompareResult.cs │ ├── Entities │ │ ├── AggregateRoot.cs │ │ ├── DomainObjectBase.cs │ │ ├── EntityBase.cs │ │ ├── IAggregateRoot.cs │ │ ├── IDomainObject.cs │ │ ├── IEntity.cs │ │ └── ValueObjectBase.cs │ ├── Events │ │ ├── EntityChangeType.cs │ │ ├── EntityChangedEvent.cs │ │ ├── EntityCreatedEvent.cs │ │ ├── EntityDeletedEvent.cs │ │ └── EntityUpdatedEvent.cs │ ├── Extending │ │ ├── ExtraProperty.cs │ │ ├── ExtraPropertyDictionary.cs │ │ └── IExtraProperties.cs │ ├── ExtraPropertyDictionaryExtensions.cs │ ├── ITreeRepositoryExtensions.cs │ ├── ListCompareExtensions.cs │ ├── Properties │ │ ├── DomainResource.Designer.cs │ │ └── DomainResource.resx │ ├── Repositories │ │ ├── IBasicRepository.cs │ │ ├── IQueryRepository.cs │ │ └── IRepository.cs │ ├── Services │ │ ├── IDomainService.cs │ │ └── ParameterBase.cs │ ├── Trees │ │ ├── IEnabled.cs │ │ ├── IParentId.cs │ │ ├── IPath.cs │ │ ├── ISortId.cs │ │ ├── ITreeEntity.cs │ │ ├── ITreeRepository.cs │ │ ├── TreeEntityBase.cs │ │ └── UpdatePathManager.cs │ └── Usings.cs ├── Util.Events.Abstractions │ ├── 01-Util.Events.Abstractions.csproj │ ├── IEvent.cs │ ├── IEventBus.cs │ ├── IEventHandler.cs │ ├── IIntegrationEvent.cs │ ├── IIntegrationEventBus.cs │ ├── IntegrationEvent.cs │ └── Usings.cs ├── Util.Events │ ├── 02-Util.Events.csproj │ ├── EventBusExtensions.cs │ ├── EventHandlerBase.cs │ ├── ILocalEventBus.cs │ ├── ILocalEventHandler.cs │ ├── Infrastructure │ │ ├── LocalEventBusServiceRegistrar.cs │ │ └── ServiceRegistrarConfigExtensions.cs │ ├── LocalEventBus.cs │ ├── NullEventBus.cs │ ├── Properties │ │ ├── EventBusResource.Designer.cs │ │ └── EventBusResource.resx │ └── Usings.cs ├── Util.FileStorage.Minio │ ├── 02-Util.FileStorage.Minio.csproj │ ├── AppBuilderExtensions.cs │ ├── IMinioConfigProvider.cs │ ├── MinioConfig.cs │ ├── MinioConfigProvider.cs │ ├── MinioFileStore.cs │ ├── MinioOptions.cs │ └── Usings.cs ├── Util.FileStorage │ ├── 01-Util.FileStorage.csproj │ ├── BucketNameProcessor.cs │ ├── BucketNameProcessorFactory.cs │ ├── DeleteFileArgs.cs │ ├── FileExistsArgs.cs │ ├── FileNameProcessor.cs │ ├── FileNameProcessorFactory.cs │ ├── FileResult.cs │ ├── FileStorageArgs.cs │ ├── GenerateDownloadUrlArgs.cs │ ├── GenerateUploadUrlArgs.cs │ ├── GetFileStreamArgs.cs │ ├── IBucketNameProcessor.cs │ ├── IBucketNameProcessorFactory.cs │ ├── IFileNameProcessor.cs │ ├── IFileNameProcessorFactory.cs │ ├── IFileStore.cs │ ├── IFileStoreExtensions.cs │ ├── ProcessedName.cs │ ├── SaveFileArgs.cs │ ├── SaveFileByUrlArgs.cs │ ├── UserTimeFileNameProcessor.cs │ └── Usings.cs ├── Util.Generators.Razor │ ├── 02-Util.Generators.Razor.csproj │ ├── Infrastructure │ │ ├── RazorGeneratorServiceRegistrar.cs │ │ └── ServiceRegistrarConfigExtensions.cs │ ├── PartTemplateFilter.cs │ ├── RazorTemplate.cs │ ├── RazorTemplateFinder.cs │ └── Usings.cs ├── Util.Generators │ ├── 01-Util.Generators.csproj │ ├── Configuration │ │ ├── ClientOptions.cs │ │ ├── GeneratorOptions.cs │ │ ├── GeneratorOptionsBuilder.cs │ │ ├── IGeneratorOptionsBuilder.cs │ │ ├── MessageOptions.cs │ │ ├── ProjectOptions.cs │ │ └── ProjectType.cs │ ├── Contexts │ │ ├── DbTypeExtensions.cs │ │ ├── EntityContext.cs │ │ ├── GeneratorContext.cs │ │ ├── GeneratorContextBuilder.cs │ │ ├── IGeneratorContextBuilder.cs │ │ ├── Output.cs │ │ ├── ProjectContext.cs │ │ └── Property.cs │ ├── Generator.cs │ ├── IGenerator.cs │ ├── Logs │ │ ├── GeneratorLogger.cs │ │ ├── IGeneratorLogger.cs │ │ └── NullGeneratorLogger.cs │ ├── NamingConvention.cs │ ├── Properties │ │ ├── GeneratorResource.Designer.cs │ │ └── GeneratorResource.resx │ ├── Resources │ │ ├── IResourceManager.cs │ │ ├── Resource.cs │ │ └── ResourceManager.cs │ ├── SystemType.cs │ ├── SystemTypeExtensions.cs │ ├── Templates │ │ ├── ITemplate.cs │ │ ├── ITemplateFilter.cs │ │ ├── ITemplateFilterManager.cs │ │ ├── ITemplateFinder.cs │ │ └── TemplateFilterManager.cs │ └── Usings.cs ├── Util.Images.Avatar │ ├── 02-Util.Images.Avatar.csproj │ ├── AvatarManager.cs │ ├── IAvatarManager.cs │ └── Usings.cs ├── Util.Images.ImageSharp │ ├── 01-Util.Images.ImageSharp.csproj │ ├── Commands │ │ ├── ICommand.cs │ │ └── TextCommand.cs │ ├── IImageManager.cs │ ├── IImageWrapper.cs │ ├── ImageManager.cs │ ├── ImageWrapper.cs │ └── Usings.cs ├── Util.Localization │ ├── 01-Util.Localization.csproj │ ├── AppBuilderExtensions.cs │ ├── Json │ │ ├── IPathResolver.cs │ │ ├── JsonStringLocalizer.cs │ │ ├── JsonStringLocalizerFactory.cs │ │ ├── JsonStringLocalizerLoggerExtensions.cs │ │ ├── PathResolver.cs │ │ └── StringLocalizer.cs │ ├── JsonLocalizationOptions.cs │ └── Usings.cs ├── Util.Logging.Serilog.Exceptionless │ ├── 03-Util.Logging.Serilog.Exceptionless.csproj │ ├── AppBuilderExtensions.cs │ ├── SerilogExceptionlessConfiguration.cs │ └── Usings.cs ├── Util.Logging.Serilog │ ├── 02-Util.Logging.Serilog.csproj │ ├── AppBuilderExtensions.cs │ ├── Enrichers │ │ ├── LogContextEnricher.cs │ │ └── LogLevelEnricher.cs │ ├── LogOptions.cs │ ├── LoggerConfigurationExtensions.cs │ ├── LoggerEnrichmentConfigurationExtensions.cs │ └── Usings.cs ├── Util.Logging │ ├── 01-Util.Logging.csproj │ ├── ILog.cs │ ├── ILogContextAccessor.cs │ ├── ILogExtensions.cs │ ├── ILogFactory.cs │ ├── ILoggerWrapper.cs │ ├── Log.cs │ ├── LogContext.cs │ ├── LogFactory.cs │ ├── LogT.cs │ ├── LoggerWrapper.cs │ ├── NullLog.cs │ └── Usings.cs ├── Util.Microservices.Dapr │ ├── 03-Util.Microservices.Dapr.csproj │ ├── AppBuilderExtensions.cs │ ├── CommandLines │ │ ├── DaprRunCommand.cs │ │ └── DaprStopCommand.cs │ ├── DaprEventBus.cs │ ├── DaprMicroserviceClient.cs │ ├── DaprMicroserviceClientFactory.cs │ ├── DaprOptions.cs │ ├── IMicroserviceClientFactoryExtensions.cs │ ├── ServiceInvocationOptions.cs │ ├── ServiceInvocations │ │ ├── DaprServiceInvocation.cs │ │ ├── DaprServiceInvocationBase.cs │ │ ├── RequestFilterBase.cs │ │ └── ResponseFilterBase.cs │ └── Usings.cs ├── Util.Microservices.HealthChecks │ ├── 04-Util.Microservices.HealthChecks.csproj │ ├── Dapr │ │ └── DaprHealthCheck.cs │ ├── EntityFrameworkCore │ │ └── UnitOfWorkHealthCheck.cs │ ├── HealthCheckBuilderExtensions.cs │ └── Usings.cs ├── Util.Microservices.Polly │ ├── 02-Util.Microservices.Polly.csproj │ ├── IPolicy.cs │ ├── IRetryPolicy.TResult.cs │ ├── IRetryPolicy.cs │ ├── IRetryPolicyHandler.cs │ ├── Polly │ │ ├── EmptyPolicy.cs │ │ ├── EmptyRetryPolicy.cs │ │ ├── EmptyRetryPolicyHandler.cs │ │ ├── PollyPolicy.cs │ │ ├── PollyRetryPolicy.TResult.cs │ │ ├── PollyRetryPolicy.cs │ │ └── PollyRetryPolicyHandler.cs │ └── Usings.cs ├── Util.Microservices │ ├── 01-Util.Microservices.csproj │ ├── IMicroserviceClient.cs │ ├── IMicroserviceClientFactory.cs │ ├── IRequestFilter.cs │ ├── IResponseFilter.cs │ ├── IServiceInvocation.cs │ ├── IServiceInvocationBase.cs │ ├── RequestContext.cs │ ├── ResponseContext.cs │ ├── ServiceResult.cs │ ├── ServiceState.cs │ └── Usings.cs ├── Util.ObjectMapping.AutoMapper │ ├── 02-Util.ObjectMapping.AutoMapper.csproj │ ├── AutoMapperExpressionExtensions.cs │ ├── IAutoMapperConfig.cs │ ├── Infrastructure │ │ ├── AutoMapperServiceRegistrar.cs │ │ └── ServiceRegistrarConfigExtensions.cs │ ├── ObjectMapper.cs │ └── Usings.cs ├── Util.Scheduling.Hangfire │ ├── 03-Util.Scheduling.Hangfire.csproj │ ├── AppBuilderExtensions.cs │ ├── HangfireExecutionContext.cs │ ├── HangfireJobInfo.cs │ ├── HangfireScheduler.cs │ ├── HangfireSchedulerManager.cs │ ├── HangfireTrigger.cs │ ├── IJobInfoExtensions.cs │ ├── IJobTriggerExtensions.cs │ ├── ISchedulerManagerExtensions.cs │ ├── JobBase.cs │ └── Usings.cs ├── Util.Scheduling.Quartz │ ├── 02-Util.Scheduling.Quartz.csproj │ ├── AppBuilderExtensions.cs │ ├── CronHelper.cs │ ├── IJobExtensions.cs │ ├── IJobInfoExtensions.cs │ ├── IJobTriggerExtensions.cs │ ├── JobBase.cs │ ├── QuartzExecutionContext.cs │ ├── QuartzJobInfo.cs │ ├── QuartzScheduler.cs │ ├── QuartzSchedulerManager.cs │ ├── QuartzTrigger.cs │ └── Usings.cs ├── Util.Scheduling │ ├── 01-Util.Scheduling.csproj │ ├── HostService.cs │ ├── IJob.cs │ ├── IJobInfo.cs │ ├── IJobTrigger.cs │ ├── IScan.cs │ ├── IScheduler.cs │ ├── ISchedulerManager.cs │ ├── NullScheduler.cs │ ├── SchedulerManagerBase.cs │ ├── SchedulerOptions.cs │ └── Usings.cs ├── Util.Security │ ├── 05-Util.Security.csproj │ ├── Helpers │ │ └── Encrypt.cs │ ├── Security │ │ ├── Authentication │ │ │ ├── UnauthenticatedIdentity.cs │ │ │ └── UnauthenticatedPrincipal.cs │ │ ├── Authorization │ │ │ └── IPermissionManager.cs │ │ ├── ClaimTypes.cs │ │ └── Encryptors │ │ │ ├── IEncryptor.cs │ │ │ └── NullEncryptor.cs │ └── Usings.cs ├── Util.Templates.Handlebars │ ├── 03-Util.Templates.Handlebars.csproj │ ├── HandlebarsDotNet │ │ ├── HandlebarsTemplateEngine.cs │ │ └── IHandlebarsTemplateEngine.cs │ ├── Infrastructure │ │ ├── HandlebarsServiceRegistrar.cs │ │ └── ServiceRegistrarConfigExtensions.cs │ └── Usings.cs ├── Util.Templates.Razor │ ├── 02-Util.Templates.Razor.csproj │ ├── Infrastructure │ │ ├── RazorServiceRegistrar.cs │ │ └── ServiceRegistrarConfigExtensions.cs │ ├── Razor │ │ ├── Filters │ │ │ ├── ModelFilter.cs │ │ │ └── PartialAsyncFilter.cs │ │ ├── Helpers │ │ │ └── HtmlHelper.cs │ │ ├── IRazorTemplateEngine.cs │ │ ├── RazorTemplateEngine.cs │ │ └── TemplateEngineExtensions.cs │ ├── RazorEngineCore │ │ ├── AnonymousTypeWrapper.cs │ │ ├── IRazorEngine.cs │ │ ├── IRazorEngineCompilationOptionsBuilder.cs │ │ ├── IRazorEngineCompiledTemplate.cs │ │ ├── IRazorEngineCompiledTemplateT.cs │ │ ├── IRazorEngineTemplate.cs │ │ ├── ObjectExtenders.cs │ │ ├── README.md │ │ ├── RazorEngine.cs │ │ ├── RazorEngineCompilationException.cs │ │ ├── RazorEngineCompilationOptions.cs │ │ ├── RazorEngineCompilationOptionsBuilder.cs │ │ ├── RazorEngineCompiledTemplate.cs │ │ ├── RazorEngineCompiledTemplateT.cs │ │ ├── RazorEngineException.cs │ │ ├── RazorEngineTemplateBase.cs │ │ └── RazorEngineTemplateBaseT.cs │ └── Usings.cs ├── Util.Templates │ ├── 01-Util.Templates.csproj │ ├── ITemplateEngine.cs │ ├── ITemplateFilter.cs │ ├── TemplateEngineExtensions.cs │ └── Usings.cs ├── Util.Ui.Angular │ ├── 02-Util.Ui.Angular.csproj │ ├── Builders │ │ ├── AngularTagBuilder.cs │ │ └── RouterOutletBuilder.cs │ ├── Configs │ │ └── AngularConst.cs │ ├── Extensions │ │ ├── ConfigExtensions.cs │ │ └── TagBuilderExtensions.cs │ ├── Renders │ │ └── RouterOutletRender.cs │ ├── TagHelpers │ │ ├── AngularTagHelperBase.cs │ │ └── RouterOutletTagHelper.cs │ └── Usings.cs ├── Util.Ui.NgAlain │ ├── 04-Util.Ui.NgAlain.csproj │ ├── Components │ │ ├── I18n │ │ │ ├── Builders │ │ │ │ └── I18nBuilder.cs │ │ │ ├── I18nTagHelper.cs │ │ │ └── Renders │ │ │ │ └── I18nRender.cs │ │ ├── PageHeaders │ │ │ ├── Builders │ │ │ │ └── PageHeaderBuilder.cs │ │ │ ├── PageHeaderTagHelper.cs │ │ │ └── Renders │ │ │ │ └── PageHeaderRender.cs │ │ └── Tinymce │ │ │ ├── Builders │ │ │ └── TinymceBuilder.cs │ │ │ ├── Renders │ │ │ └── TinymceRender.cs │ │ │ └── TinymceTagHelper.cs │ ├── Enums │ │ └── TinymceToolbarMode.cs │ └── Usings.cs ├── Util.Ui.NgZorro │ ├── 03-Util.Ui.NgZorro.csproj │ ├── AppBuilderExtensions.cs │ ├── Components │ │ ├── Affixes │ │ │ ├── AffixTagHelper.cs │ │ │ ├── Builders │ │ │ │ └── AffixBuilder.cs │ │ │ └── Renders │ │ │ │ └── AffixRender.cs │ │ ├── Alerts │ │ │ ├── AlertTagHelper.cs │ │ │ ├── Builders │ │ │ │ └── AlertBuilder.cs │ │ │ ├── Configs │ │ │ │ └── AlertShareConfig.cs │ │ │ ├── Helpers │ │ │ │ └── AlertShareConfigService.cs │ │ │ └── Renders │ │ │ │ └── AlertRender.cs │ │ ├── Anchors │ │ │ ├── AnchorTagHelper.cs │ │ │ ├── Builders │ │ │ │ ├── AnchorBuilder.cs │ │ │ │ └── LinkBuilder.cs │ │ │ ├── LinkTagHelper.cs │ │ │ └── Renders │ │ │ │ ├── AnchorRender.cs │ │ │ │ └── LinkRender.cs │ │ ├── Autocompletes │ │ │ ├── AutoOptionGroupTagHelper.cs │ │ │ ├── AutoOptionTagHelper.cs │ │ │ ├── AutocompleteTagHelper.cs │ │ │ ├── Builders │ │ │ │ ├── AutoOptionBuilder.cs │ │ │ │ ├── AutoOptionGroupBuilder.cs │ │ │ │ └── AutocompleteBuilder.cs │ │ │ ├── Helpers │ │ │ │ └── AutocompleteService.cs │ │ │ └── Renders │ │ │ │ ├── AutoOptionGroupRender.cs │ │ │ │ ├── AutoOptionRender.cs │ │ │ │ └── AutocompleteRender.cs │ │ ├── Avatars │ │ │ ├── AvatarGroupTagHelper.cs │ │ │ ├── AvatarTagHelper.cs │ │ │ ├── Builders │ │ │ │ ├── AvatarBuilder.cs │ │ │ │ └── AvatarGroupBuilder.cs │ │ │ └── Renders │ │ │ │ ├── AvatarGroupRender.cs │ │ │ │ └── AvatarRender.cs │ │ ├── Badges │ │ │ ├── BadgeTagHelper.cs │ │ │ ├── Builders │ │ │ │ ├── BadgeBuilder.cs │ │ │ │ └── RibbonBuilder.cs │ │ │ ├── Renders │ │ │ │ ├── BadgeRender.cs │ │ │ │ └── RibbonRender.cs │ │ │ └── RibbonTagHelper.cs │ │ ├── Base │ │ │ ├── ButtonBuilderBase.cs │ │ │ ├── ButtonTagHelperBase.cs │ │ │ ├── ColumnBuilderBase.cs │ │ │ ├── ColumnTagHelperBase.cs │ │ │ ├── FormContainerTagHelperBase.cs │ │ │ ├── FormControlBuilderBase.cs │ │ │ ├── FormControlContainerTagHelperBase.cs │ │ │ ├── FormControlRenderBase.cs │ │ │ ├── FormControlTagHelperBase.cs │ │ │ ├── PopconfirmTagHelperBase.cs │ │ │ ├── RowBuilderBase.cs │ │ │ ├── RowTagHelperBase.cs │ │ │ └── TooltipTagHelperBase.cs │ │ ├── Breadcrumbs │ │ │ ├── BreadcrumbItemTagHelper.cs │ │ │ ├── BreadcrumbSeparatorTagHelper.cs │ │ │ ├── BreadcrumbTagHelper.cs │ │ │ ├── Builders │ │ │ │ ├── BreadcrumbBuilder.cs │ │ │ │ ├── BreadcrumbItemBuilder.cs │ │ │ │ └── BreadcrumbSeparatorBuilder.cs │ │ │ └── Renders │ │ │ │ ├── BreadcrumbItemRender.cs │ │ │ │ ├── BreadcrumbRender.cs │ │ │ │ └── BreadcrumbSeparatorRender.cs │ │ ├── Buttons │ │ │ ├── Builders │ │ │ │ ├── ButtonBuilder.cs │ │ │ │ └── ButtonGroupBuilder.cs │ │ │ ├── ButtonGroupTagHelper.cs │ │ │ ├── ButtonTagHelper.cs │ │ │ └── Renders │ │ │ │ ├── ButtonGroupRender.cs │ │ │ │ └── ButtonRender.cs │ │ ├── Calendars │ │ │ ├── Builders │ │ │ │ └── CalendarBuilder.cs │ │ │ ├── CalendarTagHelper.cs │ │ │ └── Renders │ │ │ │ └── CalendarRender.cs │ │ ├── Cards │ │ │ ├── Builders │ │ │ │ ├── CardBuilder.cs │ │ │ │ ├── CardGridBuilder.cs │ │ │ │ ├── CardMetaBuilder.cs │ │ │ │ └── CardTabBuilder.cs │ │ │ ├── CardGridTagHelper.cs │ │ │ ├── CardMetaTagHelper.cs │ │ │ ├── CardTabTagHelper.cs │ │ │ ├── CardTagHelper.cs │ │ │ └── Renders │ │ │ │ ├── CardGridRender.cs │ │ │ │ ├── CardMetaRender.cs │ │ │ │ ├── CardRender.cs │ │ │ │ └── CardTabRender.cs │ │ ├── Carousels │ │ │ ├── Builders │ │ │ │ └── CarouselBuilder.cs │ │ │ ├── CarouselTagHelper.cs │ │ │ └── Renders │ │ │ │ └── CarouselRender.cs │ │ ├── Cascaders │ │ │ ├── Builders │ │ │ │ └── CascaderBuilder.cs │ │ │ ├── CascaderTagHelper.cs │ │ │ └── Renders │ │ │ │ └── CascaderRender.cs │ │ ├── Checkboxes │ │ │ ├── Builders │ │ │ │ ├── CheckboxBuilder.cs │ │ │ │ ├── CheckboxGroupBuilder.cs │ │ │ │ └── CheckboxWrapperBuilder.cs │ │ │ ├── CheckboxGroupTagHelper.cs │ │ │ ├── CheckboxTagHelper.cs │ │ │ ├── CheckboxWrapperTagHelper.cs │ │ │ ├── Helpers │ │ │ │ ├── CheckboxExpressionLoader.cs │ │ │ │ └── CheckboxService.cs │ │ │ └── Renders │ │ │ │ ├── CheckboxGroupRender.cs │ │ │ │ ├── CheckboxRender.cs │ │ │ │ └── CheckboxWrapperRender.cs │ │ ├── Collapses │ │ │ ├── Builders │ │ │ │ ├── CollapseBuilder.cs │ │ │ │ └── CollapsePanelBuilder.cs │ │ │ ├── CollapsePanelTagHelper.cs │ │ │ ├── CollapseTagHelper.cs │ │ │ └── Renders │ │ │ │ ├── CollapsePanelRender.cs │ │ │ │ └── CollapseRender.cs │ │ ├── Comments │ │ │ ├── Builders │ │ │ │ ├── CommentActionBuilder.cs │ │ │ │ ├── CommentBuilder.cs │ │ │ │ └── CommentContentBuilder.cs │ │ │ ├── CommentActionTagHelper.cs │ │ │ ├── CommentContentTagHelper.cs │ │ │ ├── CommentTagHelper.cs │ │ │ ├── Configs │ │ │ │ └── CommentShareConfig.cs │ │ │ └── Renders │ │ │ │ ├── CommentActionRender.cs │ │ │ │ ├── CommentContentRender.cs │ │ │ │ └── CommentRender.cs │ │ ├── Containers │ │ │ ├── Builders │ │ │ │ └── ContainerBuilder.cs │ │ │ ├── ContainerTagHelper.cs │ │ │ └── Renders │ │ │ │ └── ContainerRender.cs │ │ ├── DatePickers │ │ │ ├── Builders │ │ │ │ ├── DatePickerBuilder.cs │ │ │ │ └── RangePickerBuilder.cs │ │ │ ├── DatePickerTagHelper.cs │ │ │ ├── RangePickerTagHelper.cs │ │ │ └── Renders │ │ │ │ ├── DatePickerRender.cs │ │ │ │ └── RangePickerRender.cs │ │ ├── Descriptions │ │ │ ├── Builders │ │ │ │ ├── DescriptionBuilder.cs │ │ │ │ └── DescriptionItemBuilder.cs │ │ │ ├── DescriptionItemTagHelper.cs │ │ │ ├── DescriptionTagHelper.cs │ │ │ └── Renders │ │ │ │ ├── DescriptionItemRender.cs │ │ │ │ └── DescriptionRender.cs │ │ ├── Display │ │ │ ├── Builders │ │ │ │ └── DisplayBuilder.cs │ │ │ ├── DisplayTagHelper.cs │ │ │ ├── Helpers │ │ │ │ └── DisplayExpressionLoader.cs │ │ │ └── Renders │ │ │ │ └── DisplayRender.cs │ │ ├── Dividers │ │ │ ├── Builders │ │ │ │ └── DividerBuilder.cs │ │ │ ├── DividerTagHelper.cs │ │ │ └── Renders │ │ │ │ └── DividerRender.cs │ │ ├── Drawers │ │ │ ├── Builders │ │ │ │ └── DrawerBuilder.cs │ │ │ ├── DrawerTagHelper.cs │ │ │ └── Renders │ │ │ │ └── DrawerRender.cs │ │ ├── Dropdowns │ │ │ ├── Builders │ │ │ │ └── DropdownMenuBuilder.cs │ │ │ ├── DropdownMenuTagHelper.cs │ │ │ └── Renders │ │ │ │ └── DropdownMenuRender.cs │ │ ├── Empties │ │ │ ├── Builders │ │ │ │ └── EmptyBuilder.cs │ │ │ ├── EmptyTagHelper.cs │ │ │ └── Renders │ │ │ │ └── EmptyRender.cs │ │ ├── Forms │ │ │ ├── Builders │ │ │ │ ├── FormBuilder.cs │ │ │ │ ├── FormControlBuilder.cs │ │ │ │ ├── FormItemBuilder.cs │ │ │ │ ├── FormLabelBuilder.cs │ │ │ │ ├── FormSplitBuilder.cs │ │ │ │ └── FormTextBuilder.cs │ │ │ ├── Configs │ │ │ │ ├── FormItemShareConfig.cs │ │ │ │ └── FormShareConfig.cs │ │ │ ├── FormContainerTagHelper.cs │ │ │ ├── FormControlTagHelper.cs │ │ │ ├── FormItemTagHelper.cs │ │ │ ├── FormLabelTagHelper.cs │ │ │ ├── FormSplitTagHelper.cs │ │ │ ├── FormTagHelper.cs │ │ │ ├── FormTextTagHelper.cs │ │ │ ├── Helpers │ │ │ │ ├── FormItemShareService.cs │ │ │ │ ├── FormShareService.cs │ │ │ │ └── ValidationService.cs │ │ │ └── Renders │ │ │ │ ├── FormControlRender.cs │ │ │ │ ├── FormItemRender.cs │ │ │ │ ├── FormLabelRender.cs │ │ │ │ ├── FormRender.cs │ │ │ │ ├── FormSplitRender.cs │ │ │ │ └── FormTextRender.cs │ │ ├── Grids │ │ │ ├── Builders │ │ │ │ ├── ColumnBuilder.cs │ │ │ │ └── RowBuilder.cs │ │ │ ├── ColumnTagHelper.cs │ │ │ ├── Helpers │ │ │ │ └── GridModel.cs │ │ │ ├── Renders │ │ │ │ ├── ColumnRender.cs │ │ │ │ └── RowRender.cs │ │ │ └── RowTagHelper.cs │ │ ├── Icons │ │ │ ├── Builders │ │ │ │ └── IconBuilder.cs │ │ │ ├── IconTagHelper.cs │ │ │ └── Renders │ │ │ │ └── IconRender.cs │ │ ├── Images │ │ │ ├── Builders │ │ │ │ └── ImageBuilder.cs │ │ │ ├── ImageTagHelper.cs │ │ │ └── Renders │ │ │ │ └── ImageRender.cs │ │ ├── InputNumbers │ │ │ ├── Builders │ │ │ │ └── InputNumberBuilder.cs │ │ │ ├── InputNumberTagHelper.cs │ │ │ └── Renders │ │ │ │ └── InputNumberRender.cs │ │ ├── Inputs │ │ │ ├── Builders │ │ │ │ ├── InputBuilder.cs │ │ │ │ ├── InputGroupBuilder.cs │ │ │ │ ├── TextareaBuilder.cs │ │ │ │ └── TextareaCountBuilder.cs │ │ │ ├── Configs │ │ │ │ └── InputGroupShareConfig.cs │ │ │ ├── Helpers │ │ │ │ ├── InputExpressionLoader.cs │ │ │ │ ├── InputGroupShareService.cs │ │ │ │ ├── InputService.cs │ │ │ │ └── RowsModel.cs │ │ │ ├── InputGroupTagHelper.cs │ │ │ ├── InputTagHelper.cs │ │ │ ├── Renders │ │ │ │ ├── InputGroupRender.cs │ │ │ │ ├── InputRender.cs │ │ │ │ ├── InputRenderBase.cs │ │ │ │ ├── TextareaCountRender.cs │ │ │ │ └── TextareaRender.cs │ │ │ ├── TextareaCountTagHelper.cs │ │ │ └── TextareaTagHelper.cs │ │ ├── Label │ │ │ ├── Builders │ │ │ │ └── LabelBuilder.cs │ │ │ ├── LabelTagHelper.cs │ │ │ └── Renders │ │ │ │ └── LabelRender.cs │ │ ├── Layouts │ │ │ ├── Builders │ │ │ │ ├── ContentBuilder.cs │ │ │ │ ├── FooterBuilder.cs │ │ │ │ ├── HeaderBuilder.cs │ │ │ │ ├── LayoutBuilder.cs │ │ │ │ └── SiderBuilder.cs │ │ │ ├── ContentTagHelper.cs │ │ │ ├── FooterTagHelper.cs │ │ │ ├── HeaderTagHelper.cs │ │ │ ├── LayoutTagHelper.cs │ │ │ ├── Renders │ │ │ │ ├── ContentRender.cs │ │ │ │ ├── FooterRender.cs │ │ │ │ ├── HeaderRender.cs │ │ │ │ ├── LayoutRender.cs │ │ │ │ └── SiderRender.cs │ │ │ └── SiderTagHelper.cs │ │ ├── Links │ │ │ ├── ATagHelper.cs │ │ │ ├── Builders │ │ │ │ └── ABuilder.cs │ │ │ └── Renders │ │ │ │ └── ARender.cs │ │ ├── Lists │ │ │ ├── Builders │ │ │ │ ├── ListBuilder.cs │ │ │ │ ├── ListEmptyBuilder.cs │ │ │ │ ├── ListFooterBuilder.cs │ │ │ │ ├── ListHeaderBuilder.cs │ │ │ │ ├── ListItemActionBuilder.cs │ │ │ │ ├── ListItemActionsBuilder.cs │ │ │ │ ├── ListItemBuilder.cs │ │ │ │ ├── ListItemExtraBuilder.cs │ │ │ │ ├── ListItemMetaAvatarBuilder.cs │ │ │ │ ├── ListItemMetaBuilder.cs │ │ │ │ ├── ListItemMetaDescriptionBuilder.cs │ │ │ │ ├── ListItemMetaTitleBuilder.cs │ │ │ │ ├── ListLoadMoreBuilder.cs │ │ │ │ └── ListPaginationBuilder.cs │ │ │ ├── ListEmptyTagHelper.cs │ │ │ ├── ListFooterTagHelper.cs │ │ │ ├── ListHeaderTagHelper.cs │ │ │ ├── ListItemActionTagHelper.cs │ │ │ ├── ListItemActionsTagHelper.cs │ │ │ ├── ListItemExtraTagHelper.cs │ │ │ ├── ListItemMetaAvatarTagHelper.cs │ │ │ ├── ListItemMetaDescriptionTagHelper.cs │ │ │ ├── ListItemMetaTagHelper.cs │ │ │ ├── ListItemMetaTitleTagHelper.cs │ │ │ ├── ListItemTagHelper.cs │ │ │ ├── ListLoadMoreTagHelper.cs │ │ │ ├── ListPaginationTagHelper.cs │ │ │ ├── ListTagHelper.cs │ │ │ └── Renders │ │ │ │ ├── ListEmptyRender.cs │ │ │ │ ├── ListFooterRender.cs │ │ │ │ ├── ListHeaderRender.cs │ │ │ │ ├── ListItemActionRender.cs │ │ │ │ ├── ListItemActionsRender.cs │ │ │ │ ├── ListItemExtraRender.cs │ │ │ │ ├── ListItemMetaAvatarRender.cs │ │ │ │ ├── ListItemMetaDescriptionRender.cs │ │ │ │ ├── ListItemMetaRender.cs │ │ │ │ ├── ListItemMetaTitleRender.cs │ │ │ │ ├── ListItemRender.cs │ │ │ │ ├── ListLoadMoreRender.cs │ │ │ │ ├── ListPaginationRender.cs │ │ │ │ └── ListRender.cs │ │ ├── Mentions │ │ │ ├── Builders │ │ │ │ └── MentionBuilder.cs │ │ │ ├── Configs │ │ │ │ └── MentionShareConfig.cs │ │ │ ├── MentionTagHelper.cs │ │ │ └── Renders │ │ │ │ └── MentionRender.cs │ │ ├── Menus │ │ │ ├── Builders │ │ │ │ ├── MenuBuilder.cs │ │ │ │ ├── MenuDividerBuilder.cs │ │ │ │ ├── MenuGroupBuilder.cs │ │ │ │ ├── MenuItemBuilder.cs │ │ │ │ └── SubMenuBuilder.cs │ │ │ ├── MenuDividerTagHelper.cs │ │ │ ├── MenuGroupTagHelper.cs │ │ │ ├── MenuItemTagHelper.cs │ │ │ ├── MenuTagHelper.cs │ │ │ ├── Renders │ │ │ │ ├── MenuDividerRender.cs │ │ │ │ ├── MenuGroupRender.cs │ │ │ │ ├── MenuItemRender.cs │ │ │ │ ├── MenuRender.cs │ │ │ │ └── SubMenuRender.cs │ │ │ └── SubMenuTagHelper.cs │ │ ├── Modals │ │ │ ├── Builders │ │ │ │ └── ModalBuilder.cs │ │ │ ├── ModalTagHelper.cs │ │ │ └── Renders │ │ │ │ └── ModalRender.cs │ │ ├── PageHeaders │ │ │ ├── Builders │ │ │ │ ├── PageHeaderBuilder.cs │ │ │ │ ├── PageHeaderContentBuilder.cs │ │ │ │ ├── PageHeaderExtraBuilder.cs │ │ │ │ ├── PageHeaderFooterBuilder.cs │ │ │ │ ├── PageHeaderSubTitleBuilder.cs │ │ │ │ ├── PageHeaderTagsBuilder.cs │ │ │ │ └── PageHeaderTitleBuilder.cs │ │ │ ├── Configs │ │ │ │ └── PageHeaderShareConfig.cs │ │ │ ├── PageHeaderContentTagHelper.cs │ │ │ ├── PageHeaderExtraTagHelper.cs │ │ │ ├── PageHeaderFooterTagHelper.cs │ │ │ ├── PageHeaderSubTitleTagHelper.cs │ │ │ ├── PageHeaderTagHelper.cs │ │ │ ├── PageHeaderTagsTagHelper.cs │ │ │ ├── PageHeaderTitleTagHelper.cs │ │ │ └── Renders │ │ │ │ ├── PageHeaderContentRender.cs │ │ │ │ ├── PageHeaderExtraRender.cs │ │ │ │ ├── PageHeaderFooterRender.cs │ │ │ │ ├── PageHeaderRender.cs │ │ │ │ ├── PageHeaderSubTitleRender.cs │ │ │ │ ├── PageHeaderTagsRender.cs │ │ │ │ └── PageHeaderTitleRender.cs │ │ ├── Paginations │ │ │ ├── Builders │ │ │ │ └── PaginationBuilder.cs │ │ │ ├── PaginationTagHelper.cs │ │ │ └── Renders │ │ │ │ └── PaginationRender.cs │ │ ├── Progresses │ │ │ ├── Builders │ │ │ │ └── ProgressBuilder.cs │ │ │ ├── ProgressTagHelper.cs │ │ │ └── Renders │ │ │ │ └── ProgressRender.cs │ │ ├── Radios │ │ │ ├── Builders │ │ │ │ ├── RadioBuilder.cs │ │ │ │ └── RadioGroupBuilder.cs │ │ │ ├── Configs │ │ │ │ └── RadioGroupShareConfig.cs │ │ │ ├── Helpers │ │ │ │ ├── RadioGroupService.cs │ │ │ │ └── RadioService.cs │ │ │ ├── RadioGroupTagHelper.cs │ │ │ ├── RadioTagHelper.cs │ │ │ └── Renders │ │ │ │ ├── RadioGroupRender.cs │ │ │ │ └── RadioRender.cs │ │ ├── Rates │ │ │ ├── Builders │ │ │ │ └── RateBuilder.cs │ │ │ ├── RateTagHelper.cs │ │ │ └── Renders │ │ │ │ └── RateRender.cs │ │ ├── Results │ │ │ ├── Builders │ │ │ │ ├── ResultBuilder.cs │ │ │ │ ├── ResultContentBuilder.cs │ │ │ │ ├── ResultExtraBuilder.cs │ │ │ │ ├── ResultSubtitleBuilder.cs │ │ │ │ └── ResultTitleBuilder.cs │ │ │ ├── Renders │ │ │ │ ├── ResultContentRender.cs │ │ │ │ ├── ResultExtraRender.cs │ │ │ │ ├── ResultRender.cs │ │ │ │ ├── ResultSubtitleRender.cs │ │ │ │ └── ResultTitleRender.cs │ │ │ ├── ResultContentTagHelper.cs │ │ │ ├── ResultExtraTagHelper.cs │ │ │ ├── ResultSubtitleTagHelper.cs │ │ │ ├── ResultTagHelper.cs │ │ │ └── ResultTitleTagHelper.cs │ │ ├── Selects │ │ │ ├── Builders │ │ │ │ ├── OptionBuilder.cs │ │ │ │ ├── OptionGroupBuilder.cs │ │ │ │ └── SelectBuilder.cs │ │ │ ├── Helpers │ │ │ │ ├── SelectExpressionLoader.cs │ │ │ │ └── SelectService.cs │ │ │ ├── OptionGroupTagHelper.cs │ │ │ ├── OptionTagHelper.cs │ │ │ ├── Renders │ │ │ │ ├── OptionGroupRender.cs │ │ │ │ ├── OptionRender.cs │ │ │ │ └── SelectRender.cs │ │ │ └── SelectTagHelper.cs │ │ ├── Skeletons │ │ │ ├── Builders │ │ │ │ ├── SkeletonBuilder.cs │ │ │ │ └── SkeletonElementBuilder.cs │ │ │ ├── Renders │ │ │ │ ├── SkeletonElementRender.cs │ │ │ │ └── SkeletonRender.cs │ │ │ ├── SkeletonElementTagHelper.cs │ │ │ └── SkeletonTagHelper.cs │ │ ├── Sliders │ │ │ ├── Builders │ │ │ │ └── SliderBuilder.cs │ │ │ ├── Renders │ │ │ │ └── SliderRender.cs │ │ │ └── SliderTagHelper.cs │ │ ├── Spaces │ │ │ ├── Builders │ │ │ │ └── SpaceBuilder.cs │ │ │ ├── Renders │ │ │ │ └── SpaceRender.cs │ │ │ └── SpaceTagHelper.cs │ │ ├── Spins │ │ │ ├── Builders │ │ │ │ └── SpinBuilder.cs │ │ │ ├── Renders │ │ │ │ └── SpinRender.cs │ │ │ └── SpinTagHelper.cs │ │ ├── Statistics │ │ │ ├── Builders │ │ │ │ ├── CountdownBuilder.cs │ │ │ │ └── StatisticBuilder.cs │ │ │ ├── CountdownTagHelper.cs │ │ │ ├── Renders │ │ │ │ ├── CountdownRender.cs │ │ │ │ └── StatisticRender.cs │ │ │ └── StatisticTagHelper.cs │ │ ├── Steps │ │ │ ├── Builders │ │ │ │ ├── StepBuilder.cs │ │ │ │ └── StepsBuilder.cs │ │ │ ├── Renders │ │ │ │ ├── StepRender.cs │ │ │ │ └── StepsRender.cs │ │ │ ├── StepTagHelper.cs │ │ │ └── StepsTagHelper.cs │ │ ├── Switches │ │ │ ├── Builders │ │ │ │ └── SwitchBuilder.cs │ │ │ ├── Renders │ │ │ │ └── SwitchRender.cs │ │ │ └── SwitchTagHelper.cs │ │ ├── Tables │ │ │ ├── Builders │ │ │ │ ├── Contents │ │ │ │ │ ├── EditContentLoader.cs │ │ │ │ │ ├── EditFirstColumnContentLoader.cs │ │ │ │ │ ├── ISelectCreateService.cs │ │ │ │ │ ├── ITableColumnContent.cs │ │ │ │ │ ├── ITableColumnContentLoader.cs │ │ │ │ │ ├── NoEditContentLoader.cs │ │ │ │ │ ├── NoEditFirstColumnContentLoader.cs │ │ │ │ │ ├── TableColumnBoolContent.cs │ │ │ │ │ ├── TableColumnContentService.cs │ │ │ │ │ ├── TableColumnEnumContent.cs │ │ │ │ │ ├── TableColumnTextContent.cs │ │ │ │ │ └── TableSelectCreateService.cs │ │ │ │ ├── FilterTriggerBuilder.cs │ │ │ │ ├── TableBodyBuilder.cs │ │ │ │ ├── TableBodyRowBuilder.cs │ │ │ │ ├── TableBuilder.cs │ │ │ │ ├── TableColumnBuilder.cs │ │ │ │ ├── TableColumnControlBuilder.cs │ │ │ │ ├── TableColumnDisplayBuilder.cs │ │ │ │ ├── TableColumnRadioBuilder.cs │ │ │ │ ├── TableHeadBuilder.cs │ │ │ │ ├── TableHeadColumnBuilder.cs │ │ │ │ ├── TableHeadRowBuilder.cs │ │ │ │ ├── TableRowBuilder.cs │ │ │ │ └── TotalTemplateBuilder.cs │ │ │ ├── Configs │ │ │ │ ├── TableBodyShareConfig.cs │ │ │ │ ├── TableColumnShareConfig.cs │ │ │ │ ├── TableHeadColumnShareConfig.cs │ │ │ │ ├── TableHeadShareConfig.cs │ │ │ │ └── TableShareConfig.cs │ │ │ ├── FilterTriggerTagHelper.cs │ │ │ ├── Helpers │ │ │ │ ├── ColumnInfo.cs │ │ │ │ ├── ScrollInfo.cs │ │ │ │ ├── TableAutoCreateService.cs │ │ │ │ ├── TableBodyAutoCreateService.cs │ │ │ │ ├── TableBodyService.cs │ │ │ │ ├── TableColumnControlService.cs │ │ │ │ ├── TableColumnExpressionLoader.cs │ │ │ │ ├── TableColumnService.cs │ │ │ │ ├── TableHeadAutoCreateService.cs │ │ │ │ ├── TableHeadColumnService.cs │ │ │ │ ├── TableHeadRowAutoCreateService.cs │ │ │ │ ├── TableHeadService.cs │ │ │ │ ├── TableRowService.cs │ │ │ │ └── TableService.cs │ │ │ ├── Renders │ │ │ │ ├── FilterTriggerRender.cs │ │ │ │ ├── TableBodyRender.cs │ │ │ │ ├── TableColumnControlRender.cs │ │ │ │ ├── TableColumnDisplayRender.cs │ │ │ │ ├── TableColumnRender.cs │ │ │ │ ├── TableHeadColumnRender.cs │ │ │ │ ├── TableHeadRender.cs │ │ │ │ ├── TableRender.cs │ │ │ │ └── TableRowRender.cs │ │ │ ├── TableBodyTagHelper.cs │ │ │ ├── TableColumnControlTagHelper.cs │ │ │ ├── TableColumnDisplayTagHelper.cs │ │ │ ├── TableColumnTagHelper.cs │ │ │ ├── TableHeadColumnTagHelper.cs │ │ │ ├── TableHeadTagHelper.cs │ │ │ ├── TableRowTagHelper.cs │ │ │ └── TableTagHelper.cs │ │ ├── Tabs │ │ │ ├── Builders │ │ │ │ ├── TabBuilder.cs │ │ │ │ └── TabSetBuilder.cs │ │ │ ├── Renders │ │ │ │ ├── TabRender.cs │ │ │ │ └── TabSetRender.cs │ │ │ ├── TabSetTagHelper.cs │ │ │ └── TabTagHelper.cs │ │ ├── Tags │ │ │ ├── Builders │ │ │ │ └── TagTagBuilder.cs │ │ │ ├── Renders │ │ │ │ └── TagRender.cs │ │ │ └── TagTagHelper.cs │ │ ├── Templates │ │ │ ├── Builders │ │ │ │ └── TemplateBuilder.cs │ │ │ ├── Renders │ │ │ │ └── TemplateRender.cs │ │ │ └── TemplateTagHelper.cs │ │ ├── TimePickers │ │ │ ├── Builders │ │ │ │ └── TimePickerBuilder.cs │ │ │ ├── Renders │ │ │ │ └── TimePickerRender.cs │ │ │ └── TimePickerTagHelper.cs │ │ ├── Timelines │ │ │ ├── Builders │ │ │ │ ├── TimelineBuilder.cs │ │ │ │ └── TimelineItemBuilder.cs │ │ │ ├── Renders │ │ │ │ ├── TimelineItemRender.cs │ │ │ │ └── TimelineRender.cs │ │ │ ├── TimelineItemTagHelper.cs │ │ │ └── TimelineTagHelper.cs │ │ ├── Transfers │ │ │ ├── Builders │ │ │ │ └── TransferBuilder.cs │ │ │ ├── Renders │ │ │ │ └── TransferRender.cs │ │ │ └── TransferTagHelper.cs │ │ ├── TreeSelects │ │ │ ├── Builders │ │ │ │ └── TreeSelectBuilder.cs │ │ │ ├── Renders │ │ │ │ └── TreeSelectRender.cs │ │ │ └── TreeSelectTagHelper.cs │ │ ├── TreeTables │ │ │ ├── Builders │ │ │ │ ├── Contents │ │ │ │ │ └── TreeTableSelectCreateService.cs │ │ │ │ ├── TreeTableBodyBuilder.cs │ │ │ │ ├── TreeTableBodyRowBuilder.cs │ │ │ │ ├── TreeTableBuilder.cs │ │ │ │ ├── TreeTableCheckBoxBuilder.cs │ │ │ │ ├── TreeTableColumnBuilder.cs │ │ │ │ ├── TreeTableColumnRadioBuilder.cs │ │ │ │ ├── TreeTableContainerBuilder.cs │ │ │ │ ├── TreeTableHeadBuilder.cs │ │ │ │ ├── TreeTableHeadColumnBuilder.cs │ │ │ │ ├── TreeTableHeadRowBuilder.cs │ │ │ │ └── TreeTableMasterCheckBoxBuilder.cs │ │ │ ├── Renders │ │ │ │ └── TreeTableRender.cs │ │ │ └── TreeTableTagHelper.cs │ │ ├── TreeViews │ │ │ ├── Builders │ │ │ │ ├── TreeNodeBuilder.cs │ │ │ │ ├── TreeNodeCheckboxBuilder.cs │ │ │ │ ├── TreeNodeOptionBuilder.cs │ │ │ │ ├── TreeNodeToggleBuilder.cs │ │ │ │ ├── TreeViewBuilder.cs │ │ │ │ └── TreeVirtualScrollViewBuilder.cs │ │ │ ├── Renders │ │ │ │ ├── TreeNodeCheckboxRender.cs │ │ │ │ ├── TreeNodeOptionRender.cs │ │ │ │ ├── TreeNodeRender.cs │ │ │ │ ├── TreeNodeToggleRender.cs │ │ │ │ ├── TreeViewRender.cs │ │ │ │ └── TreeVirtualScrollViewRender.cs │ │ │ ├── TreeNodeCheckboxTagHelper.cs │ │ │ ├── TreeNodeOptionTagHelper.cs │ │ │ ├── TreeNodeTagHelper.cs │ │ │ ├── TreeNodeToggleTagHelper.cs │ │ │ ├── TreeViewTagHelper.cs │ │ │ └── TreeVirtualScrollViewTagHelper.cs │ │ ├── Trees │ │ │ ├── Builders │ │ │ │ └── TreeBuilder.cs │ │ │ ├── Helpers │ │ │ │ └── TreeService.cs │ │ │ ├── Renders │ │ │ │ └── TreeRender.cs │ │ │ └── TreeTagHelper.cs │ │ ├── Typographies │ │ │ ├── ArticleTagHelper.cs │ │ │ ├── DivTagHelper.cs │ │ │ ├── HTagHelper.cs │ │ │ ├── PTagHelper.cs │ │ │ ├── Renders │ │ │ │ ├── SpanRender.cs │ │ │ │ └── TypographyRender.cs │ │ │ ├── SpanTagHelper.cs │ │ │ └── TypographyTagHelper.cs │ │ ├── Upload │ │ │ ├── Builders │ │ │ │ └── UploadBuilder.cs │ │ │ ├── Helpers │ │ │ │ ├── UploadExpressionLoader.cs │ │ │ │ └── UploadService.cs │ │ │ ├── Renders │ │ │ │ └── UploadRender.cs │ │ │ └── UploadTagHelper.cs │ │ └── VirtualScrolls │ │ │ ├── Builders │ │ │ ├── VirtualScrollBuilder.cs │ │ │ └── VirtualScrollViewportBuilder.cs │ │ │ ├── Renders │ │ │ ├── VirtualScrollRender.cs │ │ │ └── VirtualScrollViewportRender.cs │ │ │ ├── VirtualScrollTagHelper.cs │ │ │ └── VirtualScrollViewportTagHelper.cs │ ├── Configs │ │ ├── AntDesignConst.cs │ │ ├── I18nKeys.cs │ │ └── NgZorroOptionsService.cs │ ├── Controllers │ │ ├── NgZorroTreeControllerBase.cs │ │ └── NgZorroTreeQueryControllerBase.cs │ ├── Data │ │ ├── NgZorroTreeNode.cs │ │ ├── NgZorroTreeResult.cs │ │ └── TreeResult.cs │ ├── Directives │ │ ├── Popconfirms │ │ │ └── TagBuilderExtensions.cs │ │ └── Tooltips │ │ │ └── TagBuilderExtensions.cs │ ├── Enums │ │ ├── AlertType.cs │ │ ├── Align.cs │ │ ├── AntDesignColor.cs │ │ ├── AntDesignIcon.cs │ │ ├── AvatarShape.cs │ │ ├── AvatarSize.cs │ │ ├── BadgeStatus.cs │ │ ├── ButtonShape.cs │ │ ├── ButtonSize.cs │ │ ├── ButtonType.cs │ │ ├── CalendarMode.cs │ │ ├── CardSize.cs │ │ ├── CardType.cs │ │ ├── CarouselDotPosition.cs │ │ ├── CarouselEffect.cs │ │ ├── CascaderExpandTrigger.cs │ │ ├── CollapseIconPosition.cs │ │ ├── DataType.cs │ │ ├── DatePickerMode.cs │ │ ├── DescriptionSize.cs │ │ ├── Direction.cs │ │ ├── DividerOrientation.cs │ │ ├── DividerType.cs │ │ ├── DrawerPlacement.cs │ │ ├── DropdownMenuPlacement.cs │ │ ├── DropdownMenuTrigger.cs │ │ ├── FormLayout.cs │ │ ├── GridSize.cs │ │ ├── IconTheme.cs │ │ ├── InputMode.cs │ │ ├── InputNumberPrecisionMode.cs │ │ ├── InputSize.cs │ │ ├── InputType.cs │ │ ├── Justify.cs │ │ ├── ListItemLayout.cs │ │ ├── ListSize.cs │ │ ├── MentionPlacement.cs │ │ ├── MenuMode.cs │ │ ├── MenuTheme.cs │ │ ├── ModalAutofocus.cs │ │ ├── PaginationSize.cs │ │ ├── PopconfirmPlacement.cs │ │ ├── PopconfirmTrigger.cs │ │ ├── PopoverPlacement.cs │ │ ├── PopoverTrigger.cs │ │ ├── ProgressGapPosition.cs │ │ ├── ProgressStatus.cs │ │ ├── ProgressStrokeLinecap.cs │ │ ├── ProgressType.cs │ │ ├── RadioStyle.cs │ │ ├── ResultStatus.cs │ │ ├── RibbonPlacement.cs │ │ ├── SelectMode.cs │ │ ├── SiderTheme.cs │ │ ├── SkeletonElementShape.cs │ │ ├── SkeletonElementSize.cs │ │ ├── SkeletonElementType.cs │ │ ├── SliderTooltipVisible.cs │ │ ├── SpaceAlign.cs │ │ ├── SpaceDirection.cs │ │ ├── SpaceSize.cs │ │ ├── SpanChildTag.cs │ │ ├── SpinSize.cs │ │ ├── StepStatus.cs │ │ ├── StepsDirection.cs │ │ ├── StepsLabelPlacement.cs │ │ ├── StepsSize.cs │ │ ├── StepsType.cs │ │ ├── SwitchSize.cs │ │ ├── TabPosition.cs │ │ ├── TabSize.cs │ │ ├── TabType.cs │ │ ├── TableColumnType.cs │ │ ├── TableHeadColumnAlign.cs │ │ ├── TableLayout.cs │ │ ├── TablePaginationPosition.cs │ │ ├── TablePaginationSize.cs │ │ ├── TableSize.cs │ │ ├── TagMode.cs │ │ ├── TextType.cs │ │ ├── TimelineItemPosition.cs │ │ ├── TimelineMode.cs │ │ ├── TooltipPlacement.cs │ │ ├── TooltipTrigger.cs │ │ ├── UploadListType.cs │ │ └── ValidateStatus.cs │ ├── Expressions │ │ ├── NgZorroExpressionLoaderBase.cs │ │ └── NgZorroExpressionResolver.cs │ ├── Extensions │ │ └── TagBuilderExtensions.cs │ ├── NgZorroOptions.cs │ ├── Services │ │ └── NgZorroTreeQueryAction.cs │ ├── TreeResultExtensions.cs │ ├── Usings.cs │ └── WebApplicationExtensions.cs ├── Util.Ui │ ├── 01-Util.Ui.csproj │ ├── Builders │ │ ├── ArticleBuilder.cs │ │ ├── CodeBuilder.cs │ │ ├── DelBuilder.cs │ │ ├── DivBuilder.cs │ │ ├── EmptyContainerTagBuilder.cs │ │ ├── EmptyTagBuilder.cs │ │ ├── HBuilder.cs │ │ ├── ItalicBuilder.cs │ │ ├── KbdBuilder.cs │ │ ├── LiBuilder.cs │ │ ├── MarkBuilder.cs │ │ ├── PBuilder.cs │ │ ├── SpanBuilder.cs │ │ ├── StrongBuilder.cs │ │ ├── TagBuilder.cs │ │ ├── UBuilder.cs │ │ └── UlBuilder.cs │ ├── Configs │ │ ├── Config.cs │ │ └── UiConst.cs │ ├── Enums │ │ └── ATarget.cs │ ├── Expressions │ │ ├── ExpressionLoader.cs │ │ ├── ExpressionLoaderBase.cs │ │ ├── ExpressionResolver.cs │ │ ├── IExpressionLoader.cs │ │ ├── IExpressionResolver.cs │ │ ├── ModelExpressionHelper.cs │ │ └── ModelExpressionInfo.cs │ ├── Extensions │ │ ├── TagBuilderExtensions.cs │ │ └── TagHelperExtensions.cs │ ├── Razor │ │ ├── GenerateHtmlFilter.cs │ │ ├── HtmlGenerator.cs │ │ ├── PageRouteConvention.cs │ │ ├── RazorOptions.cs │ │ └── RazorPageExtensions.cs │ ├── Renders │ │ ├── IRender.cs │ │ └── RenderBase.cs │ ├── TagHelpers │ │ ├── TagHelperBase.cs │ │ └── TagHelperWrapper.cs │ └── Usings.cs └── Util.Validation │ ├── 04-Util.Validation.csproj │ ├── DataAnnotationValidation.cs │ ├── IValidation.cs │ ├── IValidationHandler.cs │ ├── IValidationRule.cs │ ├── NothingHandler.cs │ ├── ThrowHandler.cs │ ├── Usings.cs │ ├── ValidAttribute.cs │ ├── ValidationResultCollection.cs │ └── Validators │ ├── IdCardAttribute.cs │ └── ValidatePattern.cs └── test ├── Util.Aop.AspectCore.Tests ├── NotEmptyAttributeTest.cs ├── NotNullAttributeTest.cs ├── Samples │ ├── ITestService.cs │ └── TestService.cs ├── Startup.cs └── Util.Aop.AspectCore.Tests.csproj ├── Util.Application.EntityFrameworkCore.MySql.Tests.Integration ├── Startup.cs ├── Tests │ ├── CustomerQueryServiceTest.cs │ ├── CustomerServiceTest.cs │ └── ProductServiceTest.cs ├── Util.Application.EntityFrameworkCore.MySql.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Application.EntityFrameworkCore.PostgreSql.Tests.Integration ├── Startup.cs ├── Tests │ ├── CustomerQueryServiceTest.cs │ ├── CustomerServiceTest.cs │ └── ProductServiceTest.cs ├── Util.Application.EntityFrameworkCore.PostgreSql.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Application.EntityFrameworkCore.SqlServer.Tests.Integration ├── Startup.cs ├── Tests │ ├── CustomerQueryServiceTest.cs │ ├── CustomerServiceTest.cs │ ├── ProductServiceTest.cs │ └── ResourceServiceTest.cs ├── Util.Application.EntityFrameworkCore.SqlServer.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Application.Tests ├── Dtos │ ├── CustomerDto.cs │ └── TreeDto.cs ├── ExceptionExtensionsTest.cs ├── Fakes │ └── CustomerFakeService.cs ├── Models │ └── Customer.cs ├── Queries │ └── CustomerQuery.cs ├── Repositories │ └── ICustomerRepository.cs ├── Tests │ ├── TreeResultTest.cs │ └── TreeTableResultTest.cs ├── TreeNodeExtensionsTest.cs ├── Trees │ ├── TestTreeTableResult.cs │ ├── TreeNode.cs │ └── TreeResult.cs └── Util.Application.Tests.csproj ├── Util.Application.WebApi.MySql.Tests.Integration ├── Properties │ └── launchSettings.json ├── Startup.cs ├── Tests │ ├── CustomerControllerTest.cs │ └── ProductControllerTest.cs ├── Util.Application.WebApi.MySql.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Application.WebApi.PostgreSql.Tests.Integration ├── Properties │ └── launchSettings.json ├── Startup.cs ├── Tests │ ├── CustomerControllerTest.cs │ └── ProductControllerTest.cs ├── Util.Application.WebApi.PostgreSql.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Application.WebApi.SqlServer.Tests.Integration ├── Properties │ └── launchSettings.json ├── Startup.cs ├── Tests │ ├── CustomerControllerTest.cs │ └── ProductControllerTest.cs ├── Util.Application.WebApi.SqlServer.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Application.WebApi.Tests.Integration ├── Locks │ ├── LockAttributeTest.cs │ ├── LockTest.cs │ └── LockTestService.cs ├── Properties │ └── launchSettings.json ├── Startup.cs └── Util.Application.WebApi.Tests.Integration.csproj ├── Util.AspNetCore.Tests.Integration ├── Controllers │ ├── Test1Controller.cs │ ├── Test2Controller.cs │ ├── Test3Controller.cs │ └── Test4Controller.cs ├── Helpers │ └── WebTest.cs ├── Http │ ├── HttpClientServiceTest.Delete.cs │ ├── HttpClientServiceTest.Get.cs │ ├── HttpClientServiceTest.Post.cs │ └── HttpClientServiceTest.Put.cs ├── Samples │ ├── Certificate │ │ ├── apiclient_cert.p12 │ │ ├── apiclient_cert.pem │ │ └── apiclient_key.pem │ ├── CustomerDto.cs │ └── CustomerQuery.cs ├── Startup.cs └── Util.AspNetCore.Tests.Integration.csproj ├── Util.Caching.EasyCaching.Tests.Integration ├── Samples │ ├── CacheService.cs │ └── ICacheService.cs ├── Startup.cs ├── Tests │ ├── CacheManagerTest.cs │ ├── LocalCacheAttributeTest.cs │ ├── MemoryCacheManagerTest.cs │ └── RedisCacheManagerTest.cs └── Util.Caching.EasyCaching.Tests.Integration.csproj ├── Util.Core.Tests.Integration ├── Helpers │ ├── CommandLineTest.cs │ ├── ConfigTest.cs │ ├── FileTest.cs │ ├── PlatformTest.cs │ ├── ReflectionTest.cs │ └── XmlTest.cs ├── Infrastructure │ ├── BootstrapperTest.cs │ └── DependencyServiceRegistrarTest.cs ├── Reflections │ ├── AppDomainAssemblyFinderTest.cs │ └── AppDomainTypeFinderTest.cs ├── Samples │ ├── FileSample.txt │ ├── TestDependencyRegistrar.cs │ ├── TestOptions.cs │ ├── TestOptionsExtension.cs │ ├── TestSample.cs │ ├── TestServiceRegistrar.cs │ └── version.xml ├── Util.Core.Tests.Integration.csproj └── appsettings.json ├── Util.Core.Tests ├── Dependency │ └── ContainerTest.cs ├── Exceptions │ └── WarningTest.cs ├── Extensions │ ├── CommonExtensionsTest.cs │ ├── ConvertExtensionsTest.cs │ ├── DateTimeExtensionsTest.cs │ ├── ExpressionExtensionsTest.cs │ ├── ReflectionExtensionsTest.cs │ ├── StringExtensionsTest.cs │ └── ValidationExtensionsTest.cs ├── Helpers │ ├── ConvertTest.cs │ ├── CultureTest.cs │ ├── EnumTest.cs │ ├── JsonTest.cs │ ├── LambdaTest.cs │ ├── RandomTest.cs │ ├── ReflectionTest.cs │ ├── RegexTest.cs │ ├── StringTest.cs │ ├── TimeTest.cs │ ├── UrlTest.cs │ └── ValidationTest.cs ├── Samples │ ├── EnumSample.cs │ ├── JsonTestSample.cs │ ├── Sample.cs │ ├── Sample2.cs │ ├── Sample3.cs │ ├── Sample4.cs │ └── TestSample.cs ├── Util.Core.Tests.csproj └── XUnitHelpers │ └── AssertHelper.cs ├── Util.Data.Dapper.MySql.Tests.Integration ├── Infrastructure │ └── DatabaseScript.cs ├── Metadata │ └── MySqlMetadataServiceTest.cs ├── SqlBuilders │ └── MySqlExistsSqlBuilderTest.cs ├── SqlExecutor │ ├── MySqlExecutorTest.Execute.cs │ ├── MySqlExecutorTest.Id.cs │ ├── MySqlExecutorTest.Insert.cs │ ├── MySqlExecutorTest.Param.cs │ ├── MySqlExecutorTest.Procedure.cs │ ├── MySqlExecutorTest.Transaction.cs │ └── MySqlExecutorTest.cs ├── SqlQuery │ ├── MySqlQueryTest.Exists.cs │ ├── MySqlQueryTest.Procedure.cs │ ├── MySqlQueryTest.Query.cs │ ├── MySqlQueryTest.Scalar.cs │ ├── MySqlQueryTest.Single.cs │ └── MySqlQueryTest.cs ├── Startup.cs ├── Util.Data.Dapper.MySql.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Data.Dapper.PostgreSql.Tests.Integration ├── Infrastructure │ └── DatabaseScript.cs ├── Metadata │ └── PostgreSqlMetadataServiceTest.cs ├── SqlBuilders │ └── PostgreSqlExistsSqlBuilderTest.cs ├── SqlExecutor │ ├── PostgreSqlExecutorTest.Execute.cs │ ├── PostgreSqlExecutorTest.Id.cs │ ├── PostgreSqlExecutorTest.Insert.cs │ ├── PostgreSqlExecutorTest.Param.cs │ ├── PostgreSqlExecutorTest.Procedure.cs │ ├── PostgreSqlExecutorTest.cs │ └── SqlServerSqlExecutorTest.Transaction.cs ├── SqlQuery │ ├── PostgreSqlQueryTest.Exists.cs │ ├── PostgreSqlQueryTest.Procedure.cs │ ├── PostgreSqlQueryTest.Query.cs │ ├── PostgreSqlQueryTest.Scalar.cs │ ├── PostgreSqlQueryTest.Single.cs │ └── PostgreSqlQueryTest.cs ├── Startup.cs ├── Util.Data.Dapper.PostgreSql.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Data.Dapper.SqlServer.Tests.Integration ├── Infrastructure │ └── DatabaseScript.cs ├── Metadata │ └── SqlServerMetadataServiceTest.cs ├── SqlBuilders │ └── SqlServerExistsSqlBuilderTest.cs ├── SqlExecutor │ ├── SqlServerSqlExecutorTest.Execute.cs │ ├── SqlServerSqlExecutorTest.Id.cs │ ├── SqlServerSqlExecutorTest.Insert.cs │ ├── SqlServerSqlExecutorTest.Param.cs │ ├── SqlServerSqlExecutorTest.Procedure.cs │ ├── SqlServerSqlExecutorTest.Transaction.cs │ └── SqlServerSqlExecutorTest.cs ├── SqlQuery │ ├── SqlServerSqlQueryTest.Exists.cs │ ├── SqlServerSqlQueryTest.Procedure.cs │ ├── SqlServerSqlQueryTest.Query.cs │ ├── SqlServerSqlQueryTest.Scalar.cs │ ├── SqlServerSqlQueryTest.Single.cs │ └── SqlServerSqlQueryTest.cs ├── Startup.cs ├── Util.Data.Dapper.SqlServer.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Data.EntityFrameworkCore.MySql.Tests.Integration ├── Filters │ ├── DeleteFilterTest.cs │ └── FilterManagerTest.cs ├── Startup.cs ├── Tests │ ├── CustomerRepositoryTest.cs │ ├── EntityEventsTest.cs │ ├── OperationLogRepositoryTest.cs │ ├── OrderRepositoryTest.cs │ ├── PostRepositoryTest.cs │ ├── ProductRepositoryTest.Queryable.cs │ ├── ProductRepositoryTest.cs │ └── TagRepositoryTest.cs ├── Util.Data.EntityFrameworkCore.MySql.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Data.EntityFrameworkCore.Oracle.Tests.Integration ├── Filters │ ├── DeleteFilterTest.cs │ └── FilterManagerTest.cs ├── Startup.cs ├── Tests │ ├── CustomerRepositoryTest.cs │ ├── EntityEventsTest.cs │ ├── OperationLogRepositoryTest.cs │ ├── OrderRepositoryTest.cs │ ├── PostRepositoryTest.cs │ ├── ProductRepositoryTest.Queryable.cs │ ├── ProductRepositoryTest.cs │ └── TagRepositoryTest.cs ├── Util.Data.EntityFrameworkCore.Oracle.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Data.EntityFrameworkCore.PostgreSql.Tests.Integration ├── Filters │ ├── DeleteFilterTest.cs │ └── FilterManagerTest.cs ├── Startup.cs ├── Tests │ ├── CustomerRepositoryTest.cs │ ├── EntityEventsTest.cs │ ├── OperationLogRepositoryTest.cs │ ├── OrderRepositoryTest.cs │ ├── PostRepositoryTest.cs │ ├── ProductRepositoryTest.Queryable.cs │ ├── ProductRepositoryTest.cs │ └── TagRepositoryTest.cs ├── Util.Data.EntityFrameworkCore.PostgreSql.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Data.EntityFrameworkCore.SqlServer.Tests.Integration ├── Filters │ ├── DeleteFilterTest.cs │ └── FilterManagerTest.cs ├── Samples │ └── Migrations │ │ └── 20230302102051_Init.cs ├── Startup.cs ├── Tests │ ├── CustomerRepositoryTest.cs │ ├── EntityEventsTest.cs │ ├── MigrationFileServiceTest.cs │ ├── OperationLogRepositoryTest.cs │ ├── OrderRepositoryTest.cs │ ├── PostRepositoryTest.cs │ ├── ProductRepositoryTest.Queryable.cs │ ├── ProductRepositoryTest.cs │ ├── TagRepositoryTest.cs │ └── UnitOfWorkActionManagerTest.cs ├── Util.Data.EntityFrameworkCore.SqlServer.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Data.EntityFrameworkCore.Sqlite.Tests.Integration ├── Filters │ ├── DeleteFilterTest.cs │ └── FilterManagerTest.cs ├── Startup.cs ├── Tests │ ├── CustomerRepositoryTest.cs │ ├── EntityEventsTest.cs │ ├── OperationLogRepositoryTest.cs │ ├── OrderRepositoryTest.cs │ ├── PostRepositoryTest.cs │ ├── ProductRepositoryTest.Queryable.cs │ ├── ProductRepositoryTest.cs │ └── TagRepositoryTest.cs ├── Util.Data.EntityFrameworkCore.Sqlite.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Data.Sql.Tests ├── Builders │ ├── Clauses │ │ ├── EndClauseTest.cs │ │ ├── FromClauseTest.cs │ │ ├── GroupByClauseTest.cs │ │ ├── InsertClauseTest.cs │ │ ├── JoinClauseTest.cs │ │ ├── OrderByClauseTest.cs │ │ ├── SelectClauseTest.cs │ │ ├── StartClauseTest.cs │ │ └── WhereClauseTest.cs │ ├── Conditions │ │ ├── AndConditionTest.cs │ │ ├── ContainsConditionTest.cs │ │ ├── EndsConditionTest.cs │ │ ├── EqualConditionTest.cs │ │ ├── ExistsConditionTest.cs │ │ ├── GreaterConditionTest.cs │ │ ├── GreaterEqualConditionTest.cs │ │ ├── InConditionTest.cs │ │ ├── IsNotNullConditionTest.cs │ │ ├── IsNullConditionTest.cs │ │ ├── LessConditionTest.cs │ │ ├── LessEqualConditionTest.cs │ │ ├── NotEqualConditionTest.cs │ │ ├── NotExistsConditionTest.cs │ │ ├── NotInConditionTest.cs │ │ ├── OrConditionTest.cs │ │ ├── SegmentConditionTest.cs │ │ └── StartsConditionTest.cs │ ├── Core │ │ ├── ColumnItemTest.cs │ │ ├── OrderByItemTest.cs │ │ ├── SplitItemTest.cs │ │ ├── SqlBuilderItemTest.cs │ │ ├── SqlConditionFactoryTest.cs │ │ └── TableItemTest.cs │ ├── Params │ │ └── ParameterManagerTest.cs │ ├── Sets │ │ └── SqlBuilderSetTest.cs │ ├── SqlBuilderTest.End.cs │ ├── SqlBuilderTest.From.cs │ ├── SqlBuilderTest.GroupBy.cs │ ├── SqlBuilderTest.Insert.cs │ ├── SqlBuilderTest.Join.cs │ ├── SqlBuilderTest.OrderBy.cs │ ├── SqlBuilderTest.Parameter.cs │ ├── SqlBuilderTest.Select.cs │ ├── SqlBuilderTest.Set.cs │ ├── SqlBuilderTest.Start.cs │ ├── SqlBuilderTest.Where.cs │ └── SqlBuilderTest.cs ├── Samples │ ├── TestColumnCache.cs │ ├── TestDialect.cs │ ├── TestDialect2.cs │ ├── TestParameter.cs │ └── TestSqlBuilder.cs └── Util.Data.Sql.Tests.csproj ├── Util.Data.Tests ├── Pages │ ├── PageListTest.cs │ └── PagerTest.cs ├── Queries │ └── Conditions │ │ ├── DateSegmentConditionTest.cs │ │ ├── DateTimeSegmentConditionTest.cs │ │ ├── DecimalSegmentConditionTest.cs │ │ ├── DoubleSegmentConditionTest.cs │ │ ├── IntSegmentConditionTest.cs │ │ ├── OrIfNotEmptyConditionTest.cs │ │ └── WhereIfNotEmptyConditionTest.cs ├── Samples │ └── Sample.cs └── Util.Data.Tests.csproj ├── Util.Domain.Tests ├── Auditing │ ├── CreationAuditedSetterTest.cs │ └── ModificationAuditedSetterTest.cs ├── Compare │ ├── ChangeValueTest.cs │ ├── KeyListComparatorTest.cs │ └── ListComparatorTest.cs ├── Entities │ ├── GuidEntityTest.cs │ ├── IntEntityTest.cs │ ├── StringEntityTest.cs │ └── ValueObjectBaseTest.cs ├── Samples │ ├── AggregateRootSample.cs │ ├── Auditing │ │ ├── GuidAuditedEntity.cs │ │ ├── IntAuditedEntity.cs │ │ ├── LongAuditedEntity.cs │ │ ├── NullableGuidAuditedEntity.cs │ │ ├── NullableIntAuditedEntity.cs │ │ ├── NullableLongAuditedEntity.cs │ │ └── StringAuditedEntity.cs │ ├── Customer.cs │ ├── EnumSample.cs │ ├── IntAggregateRootSample.cs │ ├── Role.cs │ ├── StringAggregateRootSample.cs │ ├── TreeEntitySample.cs │ ├── ValidationRuleSample.cs │ └── ValueObjectSample.cs ├── TestResource.Designer.cs ├── TestResource.resx ├── Trees │ ├── TreeEntityBaseTest.cs │ └── UpdatePathManagerTest.cs ├── Util.Domain.Tests.csproj └── XUnitHelpers │ └── AssertHelper.cs ├── Util.Events.Tests.Integration ├── Local │ ├── EventBusExtensionsTest.cs │ ├── EventBusTest.cs │ └── LocalEventBusTest.cs ├── Samples │ ├── EventHandlerSample.cs │ └── EventSample.cs ├── Startup.cs └── Util.Events.Tests.Integration.csproj ├── Util.FileStorage.Minio.Tests.Integration ├── Resources │ ├── a.jpg │ └── b.jpg ├── Samples │ └── TestSession.cs ├── Startup.cs ├── Tests │ ├── FileResultTest.cs │ ├── FileSizeTest.cs │ ├── MinioFileStoreTest.cs │ └── UserTimeFileNameProcessorTest.cs └── Util.FileStorage.Minio.Tests.Integration.csproj ├── Util.Generators.Razor.Tests.Integration ├── RazorTemplateFinderTest.cs ├── RazorTemplateTest.cs ├── Startup.cs ├── Templates │ └── Test1 │ │ ├── Parts │ │ └── Test.Part.cshtml │ │ ├── Template.cshtml │ │ └── Test2 │ │ ├── Test.cshtml │ │ └── TestPart.cshtml ├── Util.Generators.Razor.Tests.Integration.csproj └── appsettings.json ├── Util.Generators.Tests ├── Configuration │ └── GeneratorOptionsBuilderTest.cs ├── Contexts │ ├── EntityContextTest.cs │ ├── GeneratorContextBuilderTest.cs │ ├── GeneratorContextTest.cs │ ├── OutputTest.cs │ ├── ProjectContextTest.cs │ └── PropertyTest.cs ├── GeneratorTest.cs ├── Mocks │ ├── MockGeneratorOptionsBuilder.cs │ ├── MockMetadataService.cs │ └── MockMetadataServiceFactory.cs ├── Samples │ └── TestExtend.cs ├── Templates │ └── TemplateFilterManagerTest.cs ├── Util.Generators.Tests.csproj └── appsettings.json ├── Util.Images.Avatar.Tests.Integration ├── Fonts │ └── STZHONGS.TTF ├── Startup.cs ├── Tests │ ├── AvatarManagerTest.cs │ └── AvatarManagerUnitTest.cs └── Util.Images.Avatar.Tests.Integration.csproj ├── Util.Images.ImageSharp.Tests.Integration ├── Fonts │ └── STZHONGS.TTF ├── Startup.cs ├── Tests │ └── DrawTextTest.cs └── Util.Images.ImageSharp.Tests.Integration.csproj ├── Util.Localization.Resources ├── Properties │ └── AssemblyInfo.cs ├── ResourceTypes │ ├── Resource101.cs │ └── Resource102.cs ├── Resources2 │ ├── ResourceTypes.Resource101.en-US.json │ ├── ResourceTypes.Resource101.zh-CN.json │ └── ResourceTypes │ │ └── Resource102.zh-CN.json └── Util.Localization.Resources.csproj ├── Util.Localization.Tests.Integration ├── Properties │ ├── AssemblyInfo.cs │ └── launchSettings.json ├── ResourceTypes │ ├── Resource1.cs │ ├── Resource2.cs │ ├── Resource3.cs │ ├── Resource4.cs │ ├── Resource5.cs │ └── Resource6.cs ├── Resources │ ├── ResourceTypes.Resource1.en-US.json │ ├── ResourceTypes.Resource1.zh-CN.json │ ├── ResourceTypes │ │ ├── Resource2.en-US.json │ │ ├── Resource2.zh-CN.json │ │ ├── Resource2.zh-Hans.json │ │ ├── Resource2.zh.json │ │ ├── Resource3.zh-Hans.json │ │ ├── Resource4.Resource41.zh-CN.json │ │ ├── Resource4.zh.json │ │ ├── Resource5.zh-CN.json │ │ ├── Resource5.zh-Hans.json │ │ └── Resource5.zh.json │ └── zh.json ├── Startup.cs ├── Tests │ ├── JsonStringLocalizerFactoryTest.cs │ ├── PathResolverTest.cs │ └── StringLocalizerTest.cs └── Util.Localization.Tests.Integration.csproj ├── Util.Logging.Serilog.Exceptionless.Tests.Integration ├── LogContextAccessor.cs ├── LogTest.cs ├── Samples │ └── Product.cs ├── Startup.cs ├── Util.Logging.Serilog.Exceptionless.Tests.Integration.csproj ├── appsettings.Production.json └── appsettings.json ├── Util.Logging.Serilog.Tests.Integration ├── LogContextAccessor.cs ├── LogTest.cs ├── Samples │ └── Product.cs ├── Startup.cs ├── Util.Logging.Serilog.Tests.Integration.csproj └── appsettings.json ├── Util.Logging.Tests ├── LogTest.Critical .cs ├── LogTest.Debug .cs ├── LogTest.Error .cs ├── LogTest.Information .cs ├── LogTest.Trace .cs ├── LogTest.Warning .cs ├── LogTest.cs ├── Samples │ └── Product.cs └── Util.Logging.Tests.csproj ├── Util.Microservices.Dapr.Tests.Integration ├── CommandLines │ └── DaprRunCommandTest.cs ├── Fixtures │ ├── GlobalCollection.cs │ └── GlobalFixture.cs ├── Resources │ ├── components │ │ ├── pubsub.yaml │ │ └── statestore.yaml │ └── configuration │ │ └── config.yaml ├── Samples │ ├── CustomerDto.cs │ ├── CustomerQuery.cs │ ├── MockHttpContextAccessor.cs │ ├── ProductDto.cs │ └── ProductQuery.cs ├── ServiceInvocations │ ├── HttpClientTest.cs │ ├── ServiceInvocationTest.NotUnPack.cs │ ├── ServiceInvocationTest.UnPack.cs │ └── ServiceInvocationTest.cs ├── Startup.cs ├── Usings.cs ├── Util.Microservices.Dapr.Tests.Integration.csproj ├── appsettings.Development.json ├── appsettings.json └── clear.ps1 ├── Util.Microservices.Dapr.WebApiSample ├── Authorization │ └── PermissionManager.cs ├── Controllers │ ├── Test1Controller.cs │ ├── Test2Controller.cs │ └── Test3Controller.cs ├── Dtos │ ├── CustomerDto.cs │ └── CustomerQuery.cs ├── Program.cs ├── Properties │ └── launchSettings.json ├── Usings.cs ├── Util.Microservices.Dapr.WebApiSample.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Microservices.Polly.Tests.Integration ├── PolicyTest.Retry.Async.cs ├── PolicyTest.Retry.cs ├── PolicyTest.cs ├── Samples │ ├── SampleException.cs │ └── SampleResult.cs ├── Startup.cs ├── Usings.cs └── Util.Microservices.Polly.Tests.Integration.csproj ├── Util.ObjectMapping.AutoMapper.Tests ├── Configs │ └── TestAutoMapperConfig.cs ├── ObjectMapperExtensionsTest.cs ├── ObjectMapperTest.cs ├── Samples │ ├── EnumSample.cs │ ├── Sample.cs │ ├── Sample2.cs │ ├── Sample3.cs │ ├── Sample4.cs │ ├── Sample5.cs │ ├── Sample6.cs │ ├── Sample7.cs │ └── TreeEntitySample.cs ├── Startup.cs └── Util.ObjectMapping.AutoMapper.Tests.csproj ├── Util.Scheduling.Hangfire.Tests.Integration ├── Jobs │ ├── TestJob1.cs │ └── TestJob2.cs ├── Properties │ └── launchSettings.json ├── SchedulerTest.cs ├── Startup.cs ├── Usings.cs ├── Util.Scheduling.Hangfire.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Scheduling.Quartz.Tests.Integration ├── Jobs │ ├── TestJob1.cs │ └── TestJob2.cs ├── SchedulerTest.cs ├── Startup.cs ├── Util.Scheduling.Quartz.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Security.Tests ├── Authorization │ └── AclPolicyHelperTest.cs ├── Helpers │ └── EncryptTest.cs └── Util.Security.Tests.csproj ├── Util.Templates.Handlebars.Tests.Integration ├── HandlebarsTemplateEngineTest.cs ├── Startup.cs └── Util.Templates.Handlebars.Tests.Integration.csproj ├── Util.Templates.Razor.Tests.Integration ├── Filters │ └── ModelFilterTest.cs ├── Properties │ └── launchSettings.json ├── RazorTemplateEngineTest.Path.cs ├── RazorTemplateEngineTest.cs ├── Samples │ ├── Models │ │ └── TestModel.cs │ └── Templates │ │ ├── Child │ │ ├── Child2 │ │ │ └── TestChildTemplate2.cshtml │ │ └── TestChildTemplate.cshtml │ │ ├── TestTemplate.cshtml │ │ └── TestTemplate2.cshtml ├── Startup.cs └── Util.Templates.Razor.Tests.Integration.csproj ├── Util.TestShare.MySql ├── EntityTypeConfigurations │ ├── CustomerConfiguration.cs │ ├── OperationLogConfiguration.cs │ ├── OrderConfiguration.cs │ ├── OrderItemConfiguration.cs │ ├── PostConfiguration.cs │ ├── ProductConfiguration.cs │ └── TagConfiguration.cs ├── Repositories │ ├── CustomerRepository.cs │ ├── OperationLogRepository.cs │ ├── OrderRepository.cs │ ├── PostRepository.cs │ ├── ProductRepository.cs │ └── TagRepository.cs ├── UnitOfWorks │ └── MySqlUnitOfWork.cs └── Util.TestShare.MySql.csproj ├── Util.TestShare.Oracle ├── EntityTypeConfigurations │ ├── CustomerConfiguration.cs │ ├── OperationLogConfiguration.cs │ ├── OrderConfiguration.cs │ ├── OrderItemConfiguration.cs │ ├── PostConfiguration.cs │ ├── ProductConfiguration.cs │ └── TagConfiguration.cs ├── Repositories │ ├── CustomerRepository.cs │ ├── OperationLogRepository.cs │ ├── OrderRepository.cs │ ├── PostRepository.cs │ ├── ProductRepository.cs │ └── TagRepository.cs ├── UnitOfWorks │ └── OracleUnitOfWork.cs └── Util.TestShare.Oracle.csproj ├── Util.TestShare.PostgreSql ├── EntityTypeConfigurations │ ├── CustomerConfiguration.cs │ ├── OperationLogConfiguration.cs │ ├── OrderConfiguration.cs │ ├── OrderItemConfiguration.cs │ ├── PostConfiguration.cs │ ├── ProductConfiguration.cs │ └── TagConfiguration.cs ├── Repositories │ ├── CustomerRepository.cs │ ├── OperationLogRepository.cs │ ├── OrderRepository.cs │ ├── PostRepository.cs │ ├── ProductRepository.cs │ └── TagRepository.cs ├── UnitOfWorks │ └── PgSqlUnitOfWork.cs └── Util.TestShare.PostgreSql.csproj ├── Util.TestShare.SqlServer ├── EntityTypeConfigurations │ ├── CustomerConfiguration.cs │ ├── OperationLogConfiguration.cs │ ├── OrderConfiguration.cs │ ├── OrderItemConfiguration.cs │ ├── PostConfiguration.cs │ ├── ProductConfiguration.cs │ ├── ResourceConfiguration.cs │ └── TagConfiguration.cs ├── Repositories │ ├── CustomerRepository.cs │ ├── OperationLogRepository.cs │ ├── OrderRepository.cs │ ├── PostRepository.cs │ ├── ProductRepository.cs │ ├── ResourceRepository.cs │ └── TagRepository.cs ├── UnitOfWorks │ └── SqlServerUnitOfWork.cs └── Util.TestShare.SqlServer.csproj ├── Util.TestShare.Sqlite ├── EntityTypeConfigurations │ ├── CustomerConfiguration.cs │ ├── OperationLogConfiguration.cs │ ├── OrderConfiguration.cs │ ├── OrderItemConfiguration.cs │ ├── PostConfiguration.cs │ ├── ProductConfiguration.cs │ └── TagConfiguration.cs ├── Repositories │ ├── CustomerRepository.cs │ ├── OperationLogRepository.cs │ ├── OrderRepository.cs │ ├── PostRepository.cs │ ├── ProductRepository.cs │ └── TagRepository.cs ├── UnitOfWorks │ └── SqliteUnitOfWork.cs └── Util.TestShare.Sqlite.csproj ├── Util.TestShare ├── Conditions │ └── ProductNameCondition.cs ├── Configs │ └── TestConfig.cs ├── Controllers │ ├── CustomerController.cs │ ├── LockController.cs │ └── ProductController.cs ├── Dtos │ ├── CustomerDto.cs │ ├── ProductDto.cs │ └── ResourceDto.cs ├── EventHandlers │ ├── OperationLogChangedEventHandler.cs │ ├── OperationLogDeletedEventHandler.cs │ ├── ProductChangedEventHandler.cs │ ├── ProductCreatedEventHandler.cs │ ├── ProductDeletedEventHandler.cs │ └── ProductUpdatedEventHandler.cs ├── Events │ ├── TestEvent.cs │ └── TestEventBus.cs ├── Fakes │ ├── CustomerFakeService.cs │ ├── OperationLogFakeService.cs │ ├── OrderFakeService.cs │ ├── OrderItemFakeService.cs │ ├── PostFakeService.cs │ ├── ProductFakeService.cs │ ├── ResourceDtoFakeService.cs │ └── TagFakeService.cs ├── Infrastructure │ ├── ControllerTestBase.cs │ ├── TestBase.cs │ ├── TestSession.cs │ └── WebApiResult.cs ├── Middlewares │ └── TestUserMiddleware.cs ├── Models │ ├── ApplicationExtend.cs │ ├── Customer.cs │ ├── OperationLog.cs │ ├── Order.cs │ ├── OrderItem.cs │ ├── Post.cs │ ├── Product.cs │ ├── ProductEnum.cs │ ├── ProductItem.cs │ ├── ProductItem2.cs │ ├── Resource.cs │ └── Tag.cs ├── Queries │ ├── CustomerQuery.cs │ ├── ProductQuery.cs │ └── ResourceQuery.cs ├── Repositories │ ├── ICustomerRepository.cs │ ├── IOperationLogRepository.cs │ ├── IOrderRepository.cs │ ├── IPostRepository.cs │ ├── IProductRepository.cs │ ├── IResourceRepository.cs │ └── ITagRepository.cs ├── Services │ ├── CustomerQueryService.cs │ ├── CustomerService.cs │ ├── ICustomerQueryService.cs │ ├── ICustomerService.cs │ ├── IProductService.cs │ ├── IResourceService.cs │ ├── ProductService.cs │ └── ResourceService.cs ├── UnitOfWorks │ └── ITestUnitOfWork.cs └── Util.TestShare.csproj ├── Util.Ui.NgAlain.Tests ├── I18n │ └── I18nTagHelperTest.cs ├── PageHeaders │ └── PageHeaderTagHelperTest.cs ├── Samples │ └── Customer.cs ├── Startup.cs ├── Tinymce │ ├── TinymceTagHelperTest.Expression.cs │ └── TinymceTagHelperTest.cs └── Util.Ui.NgAlain.Tests.csproj ├── Util.Ui.NgZorro.Tests ├── Affixes │ └── AffixTagHelperTest.cs ├── Alerts │ └── AlertTagHelperTest.cs ├── Anchors │ ├── AnchorTagHelperTest.cs │ └── LinkTagHelperTest.cs ├── Autocompletes │ ├── AutoOptionGroupTagHelperTest.cs │ ├── AutoOptionTagHelperTest.cs │ ├── AutocompleteTagHelperTest.Expression.cs │ ├── AutocompleteTagHelperTest.Extend.cs │ └── AutocompleteTagHelperTest.cs ├── Avatars │ ├── AvatarGroupTagHelperTest.cs │ └── AvatarTagHelperTest.cs ├── Badges │ ├── BadgeTagHelperTest.cs │ └── RibbonTagHelperTest.cs ├── Breadcrumbs │ ├── BreadcrumbItemTagHelperTest.cs │ ├── BreadcrumbSeparatorTagHelperTest.cs │ └── BreadcrumbTagHelperTest.cs ├── Buttons │ ├── ButtonGroupTagHelperTest.cs │ ├── ButtonTagHelperTest.DropDown.cs │ ├── ButtonTagHelperTest.Extend.cs │ ├── ButtonTagHelperTest.Form.cs │ ├── ButtonTagHelperTest.I18n.cs │ ├── ButtonTagHelperTest.Popconfirm.cs │ ├── ButtonTagHelperTest.Popover.cs │ ├── ButtonTagHelperTest.Space.cs │ ├── ButtonTagHelperTest.Tooltip.cs │ └── ButtonTagHelperTest.cs ├── Calendars │ └── CalendarTagHelperTest.cs ├── Cards │ ├── CardGridTagHelperTest.cs │ ├── CardMetaTagHelperTest.cs │ ├── CardTabTagHelperTest.cs │ ├── CardTagHelperTest.I18n.cs │ └── CardTagHelperTest.cs ├── Carousels │ └── CarouselTagHelperTest.cs ├── Cascaders │ └── CascaderTagHelperTest.cs ├── Checkboxes │ ├── CheckboxGroupTagHelperTest.cs │ ├── CheckboxTagHelperTest.Expression.cs │ ├── CheckboxTagHelperTest.Form.cs │ ├── CheckboxTagHelperTest.cs │ └── CheckboxWrapperTagHelperTest.cs ├── Collapses │ ├── CollapsePanelTagHelperTest.cs │ └── CollapseTagHelperTest.cs ├── Comments │ ├── CommentActionTagHelperTest.cs │ ├── CommentContentTagHelperTest.cs │ └── CommentTagHelperTest.cs ├── Containers │ └── ContainerTagHelperTest.cs ├── Data │ └── TreeResultTest.cs ├── DatePickers │ ├── DatePickerTagHelperTest.Expression.cs │ ├── DatePickerTagHelperTest.cs │ ├── RangePickerTagHelperTest.Expression.cs │ └── RangePickerTagHelperTest.cs ├── Descriptions │ ├── DescriptionItemTagHelperTest.Expression.cs │ ├── DescriptionItemTagHelperTest.I18n.cs │ ├── DescriptionItemTagHelperTest.cs │ └── DescriptionTagHelperTest.cs ├── Display │ └── DisplayTagHelperTest.cs ├── Dividers │ └── DividerTagHelperTest.cs ├── Drawers │ └── DrawerTagHelperTest.cs ├── Dropdowns │ └── DropdownMenuTagHelperTest.cs ├── Empties │ └── EmptyTagHelperTest.cs ├── Forms │ ├── FormContainerTagHelperTest.cs │ ├── FormControlTagHelperTest.cs │ ├── FormItemTagHelperTest.cs │ ├── FormLabelTagHelperTest.cs │ ├── FormSplitTagHelperTest.cs │ ├── FormTagHelperTest.cs │ └── FormTextTagHelperTest.cs ├── Grids │ ├── ColumnTagHelperTest .Sm.cs │ ├── ColumnTagHelperTest.Lg.cs │ ├── ColumnTagHelperTest.Md.cs │ ├── ColumnTagHelperTest.XXl.cs │ ├── ColumnTagHelperTest.Xl.cs │ ├── ColumnTagHelperTest.Xs.cs │ ├── ColumnTagHelperTest.cs │ └── RowTagHelperTest.cs ├── Icons │ ├── IconTagHelperTest.Tooltip.cs │ └── IconTagHelperTest.cs ├── Images │ └── ImageTagHelperTest.cs ├── InputNumbers │ ├── InputNumberTagHelperTest.Expression.cs │ ├── InputNumberTagHelperTest.Overide.cs │ ├── InputNumberTagHelperTest.Validation.cs │ └── InputNumberTagHelperTest.cs ├── Inputs │ ├── InputGroupTagHelperTest.cs │ ├── InputTagHelperTest.Autocomplete.cs │ ├── InputTagHelperTest.Base.cs │ ├── InputTagHelperTest.Events.cs │ ├── InputTagHelperTest.Expression.cs │ ├── InputTagHelperTest.Form.cs │ ├── InputTagHelperTest.I18n.cs │ ├── InputTagHelperTest.InputGroup.cs │ ├── InputTagHelperTest.Mention.cs │ ├── InputTagHelperTest.NgIf.cs │ ├── InputTagHelperTest.Space.cs │ ├── InputTagHelperTest.TableEdit.cs │ ├── InputTagHelperTest.Validation.cs │ └── InputTagHelperTest.cs ├── Label │ └── LabelTagHelperTest.cs ├── Layouts │ ├── ContentTagHelperTest.cs │ ├── FooterTagHelperTest.cs │ ├── HeaderTagHelperTest.cs │ ├── LayoutTagHelperTest.cs │ └── SiderTagHelperTest.cs ├── Links │ └── ATagHelperTest.cs ├── Lists │ ├── ListEmptyTagHelperTest.cs │ ├── ListFooterTagHelperTest.cs │ ├── ListHeaderTagHelperTest.cs │ ├── ListItemActionTagHelperTest.cs │ ├── ListItemActionsTagHelperTest.cs │ ├── ListItemExtraTagHelperTest.cs │ ├── ListItemMetaAvatarTagHelperTest.cs │ ├── ListItemMetaDescriptionTagHelperTest.cs │ ├── ListItemMetaTagHelperTest.cs │ ├── ListItemMetaTitleTagHelperTest.cs │ ├── ListItemTagHelperTest.cs │ ├── ListLoadMoreTagHelperTest.cs │ ├── ListPaginationTagHelperTest.cs │ └── ListTagHelperTest.cs ├── Mentions │ └── MentionTagHelperTest.cs ├── Menus │ ├── MenuDividerTagHelperTest.cs │ ├── MenuGroupTagHelperTest.cs │ ├── MenuItemTagHelperTest.I18n.cs │ ├── MenuItemTagHelperTest.Icon.cs │ ├── MenuItemTagHelperTest.cs │ ├── MenuTagHelperTest.cs │ └── SubMenuTagHelperTest.cs ├── Modals │ └── ModalTagHelperTest.cs ├── PageHeaders │ ├── PageHeaderContentTagHelperTest.cs │ ├── PageHeaderExtraTagHelperTest.cs │ ├── PageHeaderFooterTagHelperTest.cs │ ├── PageHeaderSubTitleTagHelperTest.cs │ ├── PageHeaderTagHelperTest.cs │ ├── PageHeaderTagsTagHelperTest.cs │ └── PageHeaderTitleTagHelperTest.cs ├── Paginations │ └── PaginationTagHelperTest.cs ├── Progresses │ └── ProgressTagHelperTest.cs ├── Radios │ ├── RadioGroupTagHelperTest.Expression.cs │ ├── RadioGroupTagHelperTest.Extend.cs │ ├── RadioGroupTagHelperTest.FormItem.cs │ ├── RadioGroupTagHelperTest.cs │ ├── RadioTagHelperTest.Expression.cs │ ├── RadioTagHelperTest.Extend.cs │ ├── RadioTagHelperTest.FormItem.cs │ └── RadioTagHelperTest.cs ├── Rates │ └── RateTagHelperTest.cs ├── Results │ ├── ResultContentTagHelperTest.cs │ ├── ResultExtraTagHelperTest.cs │ ├── ResultSubtitleTagHelperTest.cs │ ├── ResultTagHelperTest.cs │ └── ResultTitleTagHelperTest.cs ├── Samples │ ├── Customer.cs │ └── TreeDto.cs ├── Selects │ ├── OptionGroupTagHelperTest.cs │ ├── OptionTagHelperTest.cs │ ├── SelectTagHelperTest.Expression.cs │ ├── SelectTagHelperTest.Extend.cs │ ├── SelectTagHelperTest.TableEdit.cs │ ├── SelectTagHelperTest.Validation.cs │ └── SelectTagHelperTest.cs ├── Skeletons │ ├── SkeletonElementTagHelperTest.cs │ └── SkeletonTagHelperTest.cs ├── Sliders │ └── SliderTagHelperTest.cs ├── Spaces │ └── SpaceTagHelperTest.cs ├── Spins │ └── SpinTagHelperTest.cs ├── Startup.cs ├── Statistics │ ├── CountdownTagHelperTest.cs │ └── StatisticTagHelperTest.cs ├── Steps │ ├── StepTagHelperTest.cs │ └── StepsTagHelperTest.cs ├── Switches │ ├── SwitchTagHelperTest.Expression.cs │ └── SwitchTagHelperTest.cs ├── Tables │ ├── FilterTriggerTagHelperTest.cs │ ├── TableBodyTagHelperTest.AutoCreate.cs │ ├── TableBodyTagHelperTest.cs │ ├── TableColumnControlTagHelperTest.cs │ ├── TableColumnDisplayTagHelperTest.cs │ ├── TableColumnTagHelperTest.Edit.cs │ ├── TableColumnTagHelperTest.Expression.cs │ ├── TableColumnTagHelperTest.Extend.cs │ ├── TableColumnTagHelperTest.cs │ ├── TableHeadColumnTagHelperTest.Expression.cs │ ├── TableHeadColumnTagHelperTest.Extend.cs │ ├── TableHeadColumnTagHelperTest.cs │ ├── TableHeadTagHelperTest.AutoCreate.cs │ ├── TableHeadTagHelperTest.cs │ ├── TableRowTagHelperTest.cs │ ├── TableTagHelperTest.AutoCreate.cs │ ├── TableTagHelperTest.Checkbox.cs │ ├── TableTagHelperTest.Extend.cs │ ├── TableTagHelperTest.LineNumber.cs │ ├── TableTagHelperTest.Radio.cs │ └── TableTagHelperTest.cs ├── Tabs │ ├── TabSetTagHelperTest.cs │ ├── TabTagHelperTest.Extend.cs │ └── TabTagHelperTest.cs ├── Tags │ ├── TagTagHelperTest.I18n.cs │ └── TagTagHelperTest.cs ├── Templates │ └── TemplateTagHelperTest.cs ├── Textareas │ ├── TextareaCountTagHelperTest.cs │ ├── TextareaTagHelperTest.Base.cs │ ├── TextareaTagHelperTest.Events.cs │ ├── TextareaTagHelperTest.Expression.cs │ └── TextareaTagHelperTest.cs ├── TimePickers │ ├── TimePickerTagHelperTest.Expression.cs │ └── TimePickerTagHelperTest.cs ├── Timelines │ ├── TimelineItemTagHelperTest.cs │ └── TimelineTagHelperTest.cs ├── Transfers │ └── TransferTagHelperTest.cs ├── TreeSelects │ ├── TreeSelectTagHelperTest.Expression.cs │ ├── TreeSelectTagHelperTest.Extend.cs │ └── TreeSelectTagHelperTest.cs ├── TreeTables │ ├── TreeTableColumnTagHelperTest.cs │ ├── TreeTableHeadColumnTagHelperTest.cs │ └── TreeTableTagHelperTest.cs ├── TreeViews │ ├── TreeNodeCheckboxTagHelperTest.cs │ ├── TreeNodeOptionTagHelperTest.cs │ ├── TreeNodeTagHelperTest.cs │ ├── TreeNodeToggleTagHelperTest.cs │ ├── TreeViewTagHelperTest.cs │ └── TreeVirtualScrollViewTagHelperTest.cs ├── Trees │ ├── TreeTagHelperTest.Extend.cs │ └── TreeTagHelperTest.cs ├── Typographies │ ├── ArticleTagHelperTest.cs │ ├── DivTagHelperTest.cs │ ├── HTagHelperTest.cs │ ├── PTagHelperTest.cs │ └── SpanTagHelperTest.cs ├── Upload │ ├── UploadTagHelperTest.Expression.cs │ ├── UploadTagHelperTest.Extend.cs │ ├── UploadTagHelperTest.Validation.cs │ └── UploadTagHelperTest.cs ├── Util.Ui.NgZorro.Tests.csproj └── VirtualScrolls │ ├── VirtualScrollTagHelperTest.cs │ └── VirtualScrollViewportTagHelperTest.cs ├── Util.Ui.Tests ├── Builders │ ├── EmptyContainerTagBuilderTest.cs │ └── TagBuilderTest.cs ├── Configs │ └── ConfigTest.cs ├── Expressions │ └── ExpressionResolverTest.cs ├── Extensions │ └── TagHelperExtensionsTest.cs ├── Razor │ └── GenerateHtmlFilterTest.cs ├── Samples │ ├── Containers │ │ ├── Builders │ │ │ └── ContainerBuilder.cs │ │ ├── ContainerTagHelper.cs │ │ └── Renders │ │ │ └── ContainerRender.cs │ ├── Customer.cs │ ├── Employee.cs │ ├── Templates │ │ ├── Builders │ │ │ └── TemplateBuilder.cs │ │ ├── Renders │ │ │ └── TemplateRender.cs │ │ └── TemplateTagHelper.cs │ ├── TestBuilder.cs │ ├── TestRender.cs │ ├── TestShareConfig.cs │ └── TestTagHelper.cs ├── TagHelpers │ ├── RouterOutletTagHelperTest.cs │ └── TagHelperWrapperTest.cs └── Util.Ui.Tests.csproj └── Util.Validation.Tests ├── DataAnnotationValidationTest.cs ├── Samples ├── ITestService.cs ├── Sample.cs ├── Sample2.cs ├── Sample3.cs └── TestService.cs ├── Startup.cs ├── Util.Validation.Tests.csproj ├── ValidAttributeTest.cs └── Validators └── IdCardAttributeTest.cs /.gitignore: -------------------------------------------------------------------------------- 1 | *.suo 2 | *.user 3 | .vs 4 | *.log 5 | [Dd]ebug/ 6 | [Rr]elease/ 7 | x64/ 8 | [Bb]in/ 9 | [Oo]bj/ 10 | output/ 11 | node_modules/ 12 | BenchmarkDotNet.Artifacts 13 | **/ClientApp/**/html/** 14 | /sample/Util.Ui.NgZorro.Sample/ClientApp/*.lock 15 | /sample/Util.Ui.NgZorro.Sample/ClientApp/src/app/app.component.html 16 | /document/demo/*.pdb 17 | /document/Test/PowerDesigner/*.pdb 18 | /test/Util.Data.Dapper.SqlServer.Tests/Document/PowerDesigner/*.pdb 19 | /documents/PowerDesigner/*.pdb 20 | -------------------------------------------------------------------------------- /Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /build/Build.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | $(NetTargetFramework) 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /build/icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/build/icon.jpg -------------------------------------------------------------------------------- /build/version.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 4 | 1 5 | 11 6 | $(VersionMajor).$(VersionMinor).$(VersionPatch) 7 | 8 | 9 | -------------------------------------------------------------------------------- /clear-bin.ps1: -------------------------------------------------------------------------------- 1 | Write-Host "remove bin,obj..." 2 | Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse } 3 | Write-Host "remove completed." -------------------------------------------------------------------------------- /src/Util.Aop.AspectCore/IgnoreAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Aop; 2 | 3 | /// 4 | /// 忽略拦截 5 | /// 6 | public class IgnoreAttribute : AspectCore.DynamicProxy.NonAspectAttribute { 7 | } -------------------------------------------------------------------------------- /src/Util.Aop.AspectCore/InterceptorBase.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Aop; 2 | 3 | /// 4 | /// 拦截器基类 5 | /// 6 | public abstract class InterceptorBase : AbstractInterceptorAttribute { 7 | } -------------------------------------------------------------------------------- /src/Util.Aop.AspectCore/ParameterInterceptorBase.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Aop; 2 | 3 | /// 4 | /// 参数拦截器基类 5 | /// 6 | public abstract class ParameterInterceptorBase : ParameterInterceptorAttribute { 7 | } -------------------------------------------------------------------------------- /src/Util.Aop.AspectCore/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using Microsoft.Extensions.DependencyInjection; 4 | global using AspectCore.Configuration; 5 | global using AspectCore.DynamicProxy; 6 | global using AspectCore.DynamicProxy.Parameters; 7 | global using AspectCore.Extensions.AspectScope; 8 | global using AspectCore.Extensions.DependencyInjection; -------------------------------------------------------------------------------- /src/Util.Application.EntityFrameworkCore/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | -------------------------------------------------------------------------------- /src/Util.Application.WebApi/Logging/LogContextMiddlewareExtensions.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Applications.Logging; 2 | 3 | /// 4 | /// 日志上下文中间件扩展 5 | /// 6 | public static class LogContextMiddlewareExtensions { 7 | /// 8 | /// 注册日志上下文中间件 9 | /// 10 | /// 应用程序生成器 11 | public static IApplicationBuilder UseLogContext( this IApplicationBuilder builder ) { 12 | return builder.UseMiddleware(); 13 | } 14 | } -------------------------------------------------------------------------------- /src/Util.Application.WebApi/Models/SaveModel.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Applications.Models; 2 | 3 | /// 4 | /// 保存参数 5 | /// 6 | public class SaveModel { 7 | /// 8 | /// 创建列表 9 | /// 10 | public string CreationList { get; set; } 11 | /// 12 | /// 更新列表 13 | /// 14 | public string UpdateList { get; set; } 15 | /// 16 | /// 删除列表 17 | /// 18 | public string DeleteList { get; set; } 19 | } -------------------------------------------------------------------------------- /src/Util.Application/Dtos/DtoBase.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Applications.Dtos; 2 | 3 | /// 4 | /// 数据传输对象 5 | /// 6 | public abstract class DtoBase : RequestBase, IDto { 7 | /// 8 | /// 标识 9 | /// 10 | public string Id { get; set; } 11 | } -------------------------------------------------------------------------------- /src/Util.Application/Dtos/IDto.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Applications.Dtos; 2 | 3 | /// 4 | /// 数据传输对象 5 | /// 6 | public interface IDto : IRequest { 7 | /// 8 | /// 标识 9 | /// 10 | string Id { get; set; } 11 | } -------------------------------------------------------------------------------- /src/Util.Application/Dtos/IRequest.cs: -------------------------------------------------------------------------------- 1 | using Util.Validation; 2 | 3 | namespace Util.Applications.Dtos; 4 | 5 | /// 6 | /// 请求参数 7 | /// 8 | public interface IRequest : IValidation { 9 | } -------------------------------------------------------------------------------- /src/Util.Application/IService.cs: -------------------------------------------------------------------------------- 1 | using Util.Dependency; 2 | 3 | namespace Util.Applications; 4 | 5 | /// 6 | /// 应用服务 7 | /// 8 | public interface IService : IScopeDependency { 9 | } -------------------------------------------------------------------------------- /src/Util.Application/Locks/ILock.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Applications.Locks; 2 | 3 | /// 4 | /// 业务锁 5 | /// 6 | public interface ILock { 7 | /// 8 | /// 锁定,true表示本次操作成功锁定资源,false表示资源已被之前的操作锁定 9 | /// 10 | /// 锁定标识 11 | /// 锁定时间间隔 12 | Task LockAsync( string key, TimeSpan? expiration = null ); 13 | /// 14 | /// 解除锁定 15 | /// 16 | Task UnLockAsync(); 17 | } -------------------------------------------------------------------------------- /src/Util.Application/Locks/LockType.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Applications.Locks; 2 | 3 | /// 4 | /// 业务锁类型 5 | /// 6 | public enum LockType { 7 | /// 8 | /// 用户锁,当用户发出多个执行该操作的请求,只有第一个请求被执行,其它请求被抛弃,其它用户不受影响 9 | /// 10 | User = 0, 11 | /// 12 | /// 全局锁,该操作同时只有一个用户的请求被执行 13 | /// 14 | Global = 1 15 | } -------------------------------------------------------------------------------- /src/Util.Application/Trees/LoadMode.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Applications.Trees; 2 | 3 | /// 4 | /// 加载模式 5 | /// 6 | public enum LoadMode { 7 | /// 8 | /// 同步加载,一次性加载全部节点 9 | /// 10 | Sync = 0, 11 | /// 12 | /// 异步加载,首次加载根节点,点击仅加载直接下级节点 13 | /// 14 | Async = 1, 15 | /// 16 | /// 根节点异步加载,首次加载根节点,点击加载全部下级节点 17 | /// 18 | RootAsync = 2 19 | } -------------------------------------------------------------------------------- /src/Util.Application/Trees/LoadOperation.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Applications.Trees; 2 | 3 | /// 4 | /// 加载操作 5 | /// 6 | public enum LoadOperation { 7 | /// 8 | /// 查询 9 | /// 10 | Query, 11 | /// 12 | /// 加载子节点列表 13 | /// 14 | LoadChildren 15 | } -------------------------------------------------------------------------------- /src/Util.Application/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.ComponentModel.DataAnnotations; 6 | global using Microsoft.Extensions.DependencyInjection; 7 | global using Microsoft.Extensions.DependencyInjection.Extensions; 8 | global using Microsoft.AspNetCore.Mvc; 9 | global using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; -------------------------------------------------------------------------------- /src/Util.AspNetCore/AspNetCore/IJsonSerializerOptionsFactory.cs: -------------------------------------------------------------------------------- 1 | using Util.Dependency; 2 | 3 | namespace Util.AspNetCore; 4 | 5 | /// 6 | /// Json序列化配置工厂 7 | /// 8 | public interface IJsonSerializerOptionsFactory : ISingletonDependency { 9 | /// 10 | /// 创建Json序列化配置 11 | /// 12 | JsonSerializerOptions CreateOptions(); 13 | } -------------------------------------------------------------------------------- /src/Util.AspNetCore/Http/HttpResponseMessageExtensions.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Http; 2 | 3 | /// 4 | /// Http响应消息扩展 5 | /// 6 | public static class HttpResponseMessageExtensions { 7 | /// 8 | /// 获取内容类型 9 | /// 10 | /// Http响应消息 11 | public static string GetContentType( this HttpResponseMessage response ) { 12 | return response?.Content.Headers.ContentType?.MediaType; 13 | } 14 | } -------------------------------------------------------------------------------- /src/Util.AspNetCore/Security/Authorization/AclRequirement.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Security.Authorization; 2 | 3 | /// 4 | /// 授权要求 5 | /// 6 | public class AclRequirement : IAuthorizationRequirement { 7 | /// 8 | /// 是否忽略 9 | /// 10 | public bool Ignore { get; set; } 11 | /// 12 | /// 资源标识 13 | /// 14 | public string Uri { get; set; } 15 | } -------------------------------------------------------------------------------- /src/Util.Caching.EasyCaching/CacheProviderKey.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Caching.EasyCaching; 2 | 3 | /// 4 | /// 缓存提供器标识 5 | /// 6 | public static class CacheProviderKey { 7 | /// 8 | /// 内存缓存提供器标识 9 | /// 10 | public const string MemoryCache = "util.memory.cache"; 11 | /// 12 | /// Redis缓存提供器标识 13 | /// 14 | public const string RedisCache = "util.redis.cache"; 15 | } -------------------------------------------------------------------------------- /src/Util.Caching.EasyCaching/MemoryCacheManager.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Caching.EasyCaching; 2 | 3 | /// 4 | /// EasyCaching内存缓存服务 5 | /// 6 | public class MemoryCacheManager : CacheManager, ILocalCache { 7 | /// 8 | /// 初始化EasyCaching内存缓存服务 9 | /// 10 | /// EasyCaching缓存提供器工厂 11 | public MemoryCacheManager( IEasyCachingProviderFactory factory ) : base( factory?.GetCachingProvider( CacheProviderKey.MemoryCache ) ) { 12 | } 13 | } -------------------------------------------------------------------------------- /src/Util.Caching/CacheKeyExtensions.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Caching; 2 | 3 | /// 4 | /// 缓存键扩展 5 | /// 6 | public static class CacheKeyExtensions { 7 | /// 8 | /// 验证缓存键 9 | /// 10 | /// 缓存键 11 | public static void Validate( this CacheKey cacheKey ) { 12 | cacheKey.CheckNull( nameof( cacheKey ) ); 13 | cacheKey.Key.CheckNull( nameof( cacheKey.Key ) ); 14 | } 15 | } -------------------------------------------------------------------------------- /src/Util.Caching/CacheOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Caching; 2 | 3 | /// 4 | /// 缓存配置 5 | /// 6 | public class CacheOptions { 7 | /// 8 | /// 过期时间间隔,默认值: 8小时 9 | /// 10 | public TimeSpan? Expiration { get; set; } 11 | } -------------------------------------------------------------------------------- /src/Util.Caching/ICacheKeyGenerator.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Caching; 2 | 3 | /// 4 | /// 缓存键生成器 5 | /// 6 | public interface ICacheKeyGenerator { 7 | /// 8 | /// 创建缓存键 9 | /// 10 | /// 方法 11 | /// 参数 12 | /// 缓存键前缀 13 | string CreateCacheKey( MethodInfo methodInfo, object[] args, string prefix ); 14 | } -------------------------------------------------------------------------------- /src/Util.Caching/ILocalCache.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Caching; 2 | 3 | /// 4 | /// 本地缓存 5 | /// 6 | public interface ILocalCache : ICache { 7 | } -------------------------------------------------------------------------------- /src/Util.Caching/IRedisCache.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Caching; 2 | 3 | /// 4 | /// Redis缓存 5 | /// 6 | public interface IRedisCache : ICache { 7 | } -------------------------------------------------------------------------------- /src/Util.Caching/LocalCacheAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Caching; 2 | 3 | /// 4 | /// 本地缓存拦截器 5 | /// 6 | public class LocalCacheAttribute : CacheAttribute { 7 | /// 8 | /// 获取缓存服务 9 | /// 10 | protected override ICache GetCache( AspectContext context ) { 11 | return context.ServiceProvider.GetService(); 12 | } 13 | } -------------------------------------------------------------------------------- /src/Util.Caching/RedisCacheAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Caching; 2 | 3 | /// 4 | /// Redis缓存拦截器 5 | /// 6 | public class RedisCacheAttribute : CacheAttribute { 7 | /// 8 | /// 获取缓存服务 9 | /// 10 | protected override ICache GetCache( AspectContext context ) { 11 | return context.ServiceProvider.GetService(); 12 | } 13 | } -------------------------------------------------------------------------------- /src/Util.Caching/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.Threading; 6 | global using System.Reflection; 7 | global using Microsoft.Extensions.DependencyInjection; 8 | global using AspectCore.DynamicProxy; -------------------------------------------------------------------------------- /src/Util.Core/Applications/StateCode.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Applications; 2 | 3 | /// 4 | /// 业务状态码 5 | /// 6 | public static class StateCode { 7 | /// 8 | /// 失败 9 | /// 10 | public const string Fail = "0"; 11 | /// 12 | /// 成功 13 | /// 14 | public const string Ok = "1"; 15 | /// 16 | /// 未授权 17 | /// 18 | public const string Unauthorized = "2"; 19 | } -------------------------------------------------------------------------------- /src/Util.Core/Configs/IAppBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Configs; 2 | 3 | /// 4 | /// 应用生成器 5 | /// 6 | public interface IAppBuilder { 7 | /// 8 | /// 主机生成器 9 | /// 10 | public IHostBuilder Host { get; } 11 | /// 12 | /// 构建 13 | /// 14 | public IHost Build(); 15 | } -------------------------------------------------------------------------------- /src/Util.Core/Configs/IOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Configs; 2 | 3 | /// 4 | /// 配置项 5 | /// 6 | public interface IOptions { 7 | /// 8 | /// 配置项扩展列表 9 | /// 10 | List Extensions { get; } 11 | /// 12 | /// 添加配置项扩展 13 | /// 14 | /// 配置项扩展 15 | void AddExtension( IOptionsExtension extension ); 16 | } -------------------------------------------------------------------------------- /src/Util.Core/Configs/Options.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Configs; 2 | 3 | /// 4 | /// 配置项 5 | /// 6 | public class Options : OptionsBase { 7 | } -------------------------------------------------------------------------------- /src/Util.Core/Dates/TimeOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Dates; 2 | 3 | /// 4 | /// 时间配置 5 | /// 6 | public static class TimeOptions { 7 | /// 8 | /// 是否使用Utc日期 9 | /// 10 | public static bool IsUseUtc { get; set; } = false; 11 | } -------------------------------------------------------------------------------- /src/Util.Core/Dependency/IDependencyRegistrar.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Dependency; 2 | 3 | /// 4 | /// 依赖注册器 5 | /// 6 | public interface IDependencyRegistrar { 7 | /// 8 | /// 注册依赖 9 | /// 10 | /// 服务集合 11 | void Register( IServiceCollection services ); 12 | /// 13 | /// 注册序号 14 | /// 15 | int Order { get; } 16 | } -------------------------------------------------------------------------------- /src/Util.Core/Dependency/IScopeDependency.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Dependency; 2 | 3 | /// 4 | /// 实现该接口将自动注册到Ioc容器,生命周期为每次请求创建一个实例 5 | /// 6 | public interface IScopeDependency { 7 | } -------------------------------------------------------------------------------- /src/Util.Core/Dependency/ISingletonDependency.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Dependency; 2 | 3 | /// 4 | /// 实现该接口将自动注册到Ioc容器,生命周期为单例 5 | /// 6 | public interface ISingletonDependency { 7 | } -------------------------------------------------------------------------------- /src/Util.Core/Dependency/ITransientDependency.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Dependency; 2 | 3 | /// 4 | /// 实现该接口将自动注册到Ioc容器,生命周期为每次创建一个新实例 5 | /// 6 | public interface ITransientDependency { 7 | } -------------------------------------------------------------------------------- /src/Util.Core/Domain/IDelete.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Domain; 2 | 3 | /// 4 | /// 逻辑删除 5 | /// 6 | public interface IDelete { 7 | /// 8 | /// 是否删除 9 | /// 10 | bool IsDeleted { get; set; } 11 | } -------------------------------------------------------------------------------- /src/Util.Core/Domain/IKey.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Domain; 2 | 3 | /// 4 | /// 标识 5 | /// 6 | /// 标识类型 7 | public interface IKey { 8 | /// 9 | /// 标识 10 | /// 11 | TKey Id { get; } 12 | } -------------------------------------------------------------------------------- /src/Util.Core/Domain/IVersion.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Domain; 2 | 3 | /// 4 | /// 乐观锁 5 | /// 6 | public interface IVersion { 7 | /// 8 | /// 版本号 9 | /// 10 | byte[] Version { get; set; } 11 | } -------------------------------------------------------------------------------- /src/Util.Core/Helpers/Validation.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Helpers; 2 | 3 | /// 4 | /// 验证操作 5 | /// 6 | public static class Validation { 7 | /// 8 | /// 是否数字 9 | /// 10 | /// 输入值 11 | public static bool IsNumber( string input ) { 12 | if( input.IsEmpty() ) 13 | return false; 14 | const string pattern = @"^(-?\d*)(\.\d+)?$"; 15 | return Regex.IsMatch( input, pattern ); 16 | } 17 | } -------------------------------------------------------------------------------- /src/Util.Core/Reflections/IAssemblyFinder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Reflections; 2 | 3 | /// 4 | /// 程序集查找器 5 | /// 6 | public interface IAssemblyFinder { 7 | /// 8 | /// 程序集过滤模式 9 | /// 10 | public string AssemblySkipPattern { get; set; } 11 | /// 12 | /// 查找程序集列表 13 | /// 14 | List Find(); 15 | } -------------------------------------------------------------------------------- /src/Util.Core/Reflections/ITypeFinder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Reflections; 2 | 3 | /// 4 | /// 类型查找器 5 | /// 6 | public interface ITypeFinder { 7 | /// 8 | /// 查找类型列表 9 | /// 10 | /// 查找类型 11 | List Find(); 12 | /// 13 | /// 查找类型列表 14 | /// 15 | /// 查找类型 16 | List Find( Type findType ); 17 | } -------------------------------------------------------------------------------- /src/Util.Core/Sessions/ISession.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Sessions; 2 | 3 | /// 4 | /// 用户会话 5 | /// 6 | public interface ISession { 7 | /// 8 | /// 是否认证 9 | /// 10 | bool IsAuthenticated { get; } 11 | /// 12 | /// 用户标识 13 | /// 14 | string UserId { get; } 15 | } -------------------------------------------------------------------------------- /src/Util.Core/Ui/ModelAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui; 2 | 3 | /// 4 | /// 模型绑定 5 | /// 6 | [AttributeUsage( AttributeTargets.Class )] 7 | public class ModelAttribute : Attribute { 8 | /// 9 | /// 初始化模型绑定 10 | /// 11 | /// 模型 12 | public ModelAttribute( string model ) { 13 | Model = model; 14 | } 15 | 16 | /// 17 | /// 模型 18 | /// 19 | public string Model { get; set; } 20 | } -------------------------------------------------------------------------------- /src/Util.Data.Abstractions/Filters/IFilterOperation.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Filters; 2 | 3 | /// 4 | /// 数据过滤操作 5 | /// 6 | public interface IFilterOperation { 7 | } -------------------------------------------------------------------------------- /src/Util.Data.Abstractions/ICondition.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data; 2 | 3 | /// 4 | /// 查询条件 5 | /// 6 | /// 实体类型 7 | public interface ICondition { 8 | /// 9 | /// 获取查询条件 10 | /// 11 | Expression> GetCondition(); 12 | } -------------------------------------------------------------------------------- /src/Util.Data.Abstractions/IUnitOfWork.cs: -------------------------------------------------------------------------------- 1 | using Util.Data.Filters; 2 | 3 | namespace Util.Data; 4 | 5 | /// 6 | /// 工作单元 7 | /// 8 | [Util.Aop.Ignore] 9 | public interface IUnitOfWork : IDisposable, IFilterOperation { 10 | /// 11 | /// 提交,返回影响的行数 12 | /// 13 | Task CommitAsync(); 14 | } -------------------------------------------------------------------------------- /src/Util.Data.Abstractions/IUnitOfWorkActionManager.cs: -------------------------------------------------------------------------------- 1 | using Util.Dependency; 2 | 3 | namespace Util.Data; 4 | 5 | /// 6 | /// 工作单元操作管理器,用于将操作延迟到工作单元提交后执行 7 | /// 8 | public interface IUnitOfWorkActionManager : IScopeDependency { 9 | /// 10 | /// 注册操作 11 | /// 12 | /// 操作 13 | void Register( Func action ); 14 | /// 15 | /// 执行操作 16 | /// 17 | Task ExecuteAsync(); 18 | } -------------------------------------------------------------------------------- /src/Util.Data.Abstractions/Queries/ITrack.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Queries; 2 | 3 | /// 4 | /// 跟踪 5 | /// 6 | public interface ITrack { 7 | /// 8 | /// 设置为不跟踪实体 9 | /// 10 | void NoTracking(); 11 | } -------------------------------------------------------------------------------- /src/Util.Data.Abstractions/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.Threading; 6 | global using System.Linq.Expressions; -------------------------------------------------------------------------------- /src/Util.Data.Core/IDatabase.cs: -------------------------------------------------------------------------------- 1 | using Util.Aop; 2 | 3 | namespace Util.Data; 4 | 5 | /// 6 | /// 数据库信息 7 | /// 8 | [Ignore] 9 | public interface IDatabase { 10 | /// 11 | /// 获取数据库连接 12 | /// 13 | IDbConnection GetConnection(); 14 | } -------------------------------------------------------------------------------- /src/Util.Data.Core/IDatabaseFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data; 2 | 3 | /// 4 | /// 数据库工厂 5 | /// 6 | public interface IDatabaseFactory { 7 | /// 8 | /// 创建数据库信息 9 | /// 10 | /// 数据库连接字符串 11 | IDatabase Create( string connection ); 12 | } -------------------------------------------------------------------------------- /src/Util.Data.Core/Queries/Boundary.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Queries; 2 | 3 | /// 4 | /// 查询边界 5 | /// 6 | public enum Boundary { 7 | /// 8 | /// 包含左边 9 | /// 10 | Left, 11 | /// 12 | /// 包含右边 13 | /// 14 | Right, 15 | /// 16 | /// 包含两边 17 | /// 18 | Both, 19 | /// 20 | /// 不包含 21 | /// 22 | Neither 23 | } -------------------------------------------------------------------------------- /src/Util.Data.Core/Queries/Conditions/Internal/DateTimeQuery.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Queries.Conditions.Internal; 2 | 3 | /// 4 | /// 日期范围查询参数对象 - 使用该对象的目的是构建参数化条件 5 | /// 6 | internal class DateTimeQuery { 7 | /// 8 | /// 起始时间 9 | /// 10 | public DateTime? BeginTime { get; set; } 11 | /// 12 | /// 结束时间 13 | /// 14 | public DateTime? EndTime { get; set; } 15 | } -------------------------------------------------------------------------------- /src/Util.Data.Core/Queries/Conditions/Internal/DecimalQuery.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Queries.Conditions.Internal; 2 | 3 | /// 4 | /// decimal范围查询参数对象 - 使用该对象的目的是构建参数化条件 5 | /// 6 | internal class DecimalQuery { 7 | /// 8 | /// 最小值 9 | /// 10 | public decimal? MinValue { get; set; } 11 | /// 12 | /// 最大值 13 | /// 14 | public decimal? MaxValue { get; set; } 15 | } -------------------------------------------------------------------------------- /src/Util.Data.Core/Queries/Conditions/Internal/DoubleQuery.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Queries.Conditions.Internal; 2 | 3 | /// 4 | /// double范围查询参数对象 - 使用该对象的目的是构建参数化条件 5 | /// 6 | internal class DoubleQuery { 7 | /// 8 | /// 最小值 9 | /// 10 | public double? MinValue { get; set; } 11 | /// 12 | /// 最大值 13 | /// 14 | public double? MaxValue { get; set; } 15 | } -------------------------------------------------------------------------------- /src/Util.Data.Core/Queries/Conditions/Internal/IntQuery.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Queries.Conditions.Internal; 2 | 3 | /// 4 | /// int范围查询参数对象 - 使用该对象的目的是构建参数化条件 5 | /// 6 | internal class IntQuery { 7 | /// 8 | /// 最小值 9 | /// 10 | public int? MinValue { get; set; } 11 | /// 12 | /// 最大值 13 | /// 14 | public int? MaxValue { get; set; } 15 | } -------------------------------------------------------------------------------- /src/Util.Data.Core/Queries/QueryParameter.cs: -------------------------------------------------------------------------------- 1 | using Util.Ui; 2 | 3 | namespace Util.Data.Queries; 4 | 5 | /// 6 | /// 查询参数 7 | /// 8 | [Model( "queryParam" )] 9 | public class QueryParameter : Pager { 10 | /// 11 | /// 搜索关键字 12 | /// 13 | [Display( Name = "util.keyword" )] 14 | public string Keyword { get; set; } 15 | } -------------------------------------------------------------------------------- /src/Util.Data.Core/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.Data; 6 | global using System.Linq.Dynamic.Core; 7 | global using System.Linq.Expressions; 8 | global using System.ComponentModel.DataAnnotations; 9 | -------------------------------------------------------------------------------- /src/Util.Data.Dapper.All/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using Microsoft.Extensions.DependencyInjection.Extensions; 3 | -------------------------------------------------------------------------------- /src/Util.Data.Dapper.MySql/Sql/MySqlDatabaseFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Dapper.Sql; 2 | 3 | /// 4 | /// MySql数据库工厂 5 | /// 6 | public class MySqlDatabaseFactory : IDatabaseFactory { 7 | /// 8 | /// 创建数据库信息 9 | /// 10 | /// 数据库连接字符串 11 | public IDatabase Create( string connection ) { 12 | return new DefaultDatabase( new MySqlConnection( connection ) ); 13 | } 14 | } -------------------------------------------------------------------------------- /src/Util.Data.Dapper.MySql/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.Text; 6 | global using System.Data; 7 | global using System.Collections.Concurrent; 8 | global using Microsoft.Extensions.DependencyInjection.Extensions; 9 | global using MySqlConnector; 10 | -------------------------------------------------------------------------------- /src/Util.Data.Dapper.PostgreSql/Sql/PostgreSqlDatabaseFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Dapper.Sql; 2 | 3 | /// 4 | /// PostgreSql数据库工厂 5 | /// 6 | public class PostgreSqlDatabaseFactory : IDatabaseFactory { 7 | /// 8 | /// 创建数据库信息 9 | /// 10 | /// 数据库连接字符串 11 | public IDatabase Create( string connection ) { 12 | return new DefaultDatabase( new NpgsqlConnection( connection ) ); 13 | } 14 | } -------------------------------------------------------------------------------- /src/Util.Data.Dapper.PostgreSql/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.Text; 6 | global using System.Data; 7 | global using System.Collections.Concurrent; 8 | global using Microsoft.Extensions.DependencyInjection.Extensions; 9 | global using Npgsql; 10 | -------------------------------------------------------------------------------- /src/Util.Data.Dapper.SqlServer/Sql/SqlServerDatabaseFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Dapper.Sql; 2 | 3 | /// 4 | /// Sql Server数据库工厂 5 | /// 6 | public class SqlServerDatabaseFactory : IDatabaseFactory { 7 | /// 8 | /// 创建数据库信息 9 | /// 10 | /// 数据库连接字符串 11 | public IDatabase Create( string connection ) { 12 | return new DefaultDatabase( new SqlConnection( connection ) ); 13 | } 14 | } -------------------------------------------------------------------------------- /src/Util.Data.Dapper.SqlServer/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.Text; 6 | global using System.Data; 7 | global using System.Collections.Concurrent; 8 | global using Microsoft.Extensions.DependencyInjection.Extensions; 9 | global using Microsoft.Data.SqlClient; 10 | -------------------------------------------------------------------------------- /src/Util.Data.EntityFrameworkCore.MySql/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Data.Common; 3 | global using Microsoft.Extensions.DependencyInjection; 4 | global using Microsoft.EntityFrameworkCore; 5 | global using Microsoft.EntityFrameworkCore.Infrastructure; 6 | global using MySqlConnector; 7 | -------------------------------------------------------------------------------- /src/Util.Data.EntityFrameworkCore.Oracle/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Data.Common; 3 | global using Microsoft.Extensions.DependencyInjection; 4 | global using Microsoft.EntityFrameworkCore; 5 | global using Microsoft.EntityFrameworkCore.Metadata; 6 | global using Oracle.EntityFrameworkCore.Infrastructure; -------------------------------------------------------------------------------- /src/Util.Data.EntityFrameworkCore.PostgreSql/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Data.Common; 3 | global using Microsoft.Extensions.DependencyInjection; 4 | global using Microsoft.EntityFrameworkCore; 5 | global using Npgsql.EntityFrameworkCore.PostgreSQL.Infrastructure; -------------------------------------------------------------------------------- /src/Util.Data.EntityFrameworkCore.SqlServer/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Data.Common; 3 | global using Microsoft.Extensions.DependencyInjection; 4 | global using Microsoft.EntityFrameworkCore; 5 | global using Microsoft.EntityFrameworkCore.Metadata; 6 | global using Microsoft.EntityFrameworkCore.Infrastructure; -------------------------------------------------------------------------------- /src/Util.Data.EntityFrameworkCore.Sqlite/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Data.Common; 3 | global using Microsoft.Extensions.DependencyInjection; 4 | global using Microsoft.EntityFrameworkCore; 5 | global using Microsoft.EntityFrameworkCore.Infrastructure; -------------------------------------------------------------------------------- /src/Util.Data.EntityFrameworkCore/ValueConverters/TrimStringValueConverter.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.EntityFrameworkCore.ValueConverters; 2 | 3 | /// 4 | /// 字符串值转换器,用于清除两端空白 5 | /// 6 | public class TrimStringValueConverter : ValueConverter { 7 | /// 8 | /// 初始化字符串值转换器 9 | /// 10 | public TrimStringValueConverter() 11 | : base( value => value.SafeString(), value => value ) { 12 | } 13 | } -------------------------------------------------------------------------------- /src/Util.Data.Metadata/IMetadataService.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Metadata; 2 | 3 | /// 4 | /// 数据库元数据服务 5 | /// 6 | public interface IMetadataService { 7 | /// 8 | /// 获取数据库信息 9 | /// 10 | Task GetDatabaseInfoAsync(); 11 | } -------------------------------------------------------------------------------- /src/Util.Data.Metadata/IMetadataServiceFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Metadata; 2 | 3 | /// 4 | /// 数据库元数据服务工厂 5 | /// 6 | public interface IMetadataServiceFactory { 7 | /// 8 | /// 创建数据库元数据服务 9 | /// 10 | /// 数据库类型 11 | /// 数据库连接字符串 12 | IMetadataService Create( DatabaseType dbType, string connection ); 13 | } -------------------------------------------------------------------------------- /src/Util.Data.Metadata/ITypeConverter.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Metadata; 2 | 3 | /// 4 | /// 数据类型转换器 5 | /// 6 | public interface ITypeConverter { 7 | /// 8 | /// 将数据类型转换为DbType 9 | /// 10 | /// 数据类型 11 | /// 数据长度 12 | DbType? ToType( string dataType, int? length = null ); 13 | } -------------------------------------------------------------------------------- /src/Util.Data.Metadata/ITypeConverterFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Metadata; 2 | 3 | /// 4 | /// 数据类型转换器工厂 5 | /// 6 | public interface ITypeConverterFactory { 7 | /// 8 | /// 创建数据库元数据服务 9 | /// 10 | /// 数据库类型 11 | ITypeConverter Create( DatabaseType dbType ); 12 | } -------------------------------------------------------------------------------- /src/Util.Data.Metadata/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System.Threading.Tasks; 2 | global using System.Collections.Generic; 3 | global using System.Data; 4 | -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Caches/IColumnCache.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Caches; 2 | 3 | /// 4 | /// 列缓存 5 | /// 6 | public interface IColumnCache { 7 | /// 8 | /// 从缓存中获取处理后的列集合 9 | /// 10 | /// 列集合 11 | string GetSafeColumns( string columns ); 12 | /// 13 | /// 从缓存中获取处理后的列 14 | /// 15 | /// 列 16 | string GetSafeColumn( string column ); 17 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Clauses/ISqlClause.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Clauses; 2 | 3 | /// 4 | /// Sql子句 5 | /// 6 | public interface ISqlClause : ISqlContent { 7 | /// 8 | /// 验证 9 | /// 10 | bool Validate(); 11 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/IExistsSqlBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders; 2 | 3 | /// 4 | /// 判断是否存在Sql生成器 5 | /// 6 | public interface IExistsSqlBuilder { 7 | /// 8 | /// 获取Sql语句 9 | /// 10 | string GetSql(); 11 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/ISqlContent.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders; 2 | 3 | /// 4 | /// Sql内容 5 | /// 6 | public interface ISqlContent { 7 | /// 8 | /// 添加到字符串生成器 9 | /// 10 | /// 字符串生成器 11 | void AppendTo( StringBuilder builder ); 12 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Operations/IEnd.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Operations; 2 | 3 | /// 4 | /// 结束子句操作 5 | /// 6 | public interface IEnd { 7 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Operations/IFrom.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Operations; 2 | 3 | /// 4 | /// From子句操作 5 | /// 6 | public interface IFrom { 7 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Operations/IGroupBy.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Operations; 2 | 3 | /// 4 | /// GroupBy子句操作 5 | /// 6 | public interface IGroupBy { 7 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Operations/IInsert.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Operations; 2 | 3 | /// 4 | /// 插入子句操作 5 | /// 6 | public interface IInsert { 7 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Operations/IJoin.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Operations; 2 | 3 | /// 4 | /// Join子句操作 5 | /// 6 | public interface IJoin { 7 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Operations/IOrderBy.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Operations; 2 | 3 | /// 4 | /// OrderBy子句操作 5 | /// 6 | public interface IOrderBy { 7 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Operations/ISelect.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Operations; 2 | 3 | /// 4 | /// Select子句操作 5 | /// 6 | public interface ISelect { 7 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Operations/ISet.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Operations; 2 | 3 | /// 4 | /// Sql集合操作 5 | /// 6 | public interface ISet { 7 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Operations/ISqlOperation.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Operations; 2 | 3 | /// 4 | /// Sql操作 5 | /// 6 | public interface ISqlOperation : ISqlQueryOperation, IInsert { 7 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Operations/ISqlParameter.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Operations; 2 | 3 | /// 4 | /// Sql参数操作 5 | /// 6 | public interface ISqlParameter { 7 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Operations/ISqlQueryOperation.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Operations; 2 | 3 | /// 4 | /// Sql查询操作 5 | /// 6 | public interface ISqlQueryOperation : IStart, ISelect, IFrom, IJoin, IWhere, IGroupBy, IOrderBy, IEnd, ISqlParameter, ISet { 7 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Operations/IStart.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Operations; 2 | 3 | /// 4 | /// 起始子句操作 5 | /// 6 | public interface IStart { 7 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Operations/IWhere.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Operations; 2 | 3 | /// 4 | /// Where子句操作 5 | /// 6 | public interface IWhere { 7 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Params/IClearParameters.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Params; 2 | 3 | /// 4 | /// 清空Sql参数 5 | /// 6 | public interface IClearParameters { 7 | /// 8 | /// 清空Sql参数 9 | /// 10 | void ClearParams(); 11 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Params/IGetParameter.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Params; 2 | 3 | /// 4 | /// 获取Sql参数 5 | /// 6 | public interface IGetParameter { 7 | /// 8 | /// 获取Sql参数值 9 | /// 10 | /// 参数值类型 11 | /// 参数名 12 | T GetParam( string name ); 13 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Builders/Params/IParamLiteralsResolver.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Builders.Params; 2 | 3 | /// 4 | /// 参数字面值解析器 5 | /// 6 | public interface IParamLiteralsResolver { 7 | /// 8 | /// 获取参数字面值 9 | /// 10 | /// 参数值 11 | string GetParamLiterals( object value ); 12 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Configs/ISqlOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Configs; 2 | 3 | /// 4 | /// Sql配置操作 5 | /// 6 | public interface ISqlOptions { 7 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Configs/ISqlOptionsAccessor.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Configs; 2 | 3 | /// 4 | /// Sql配置访问器 5 | /// 6 | public interface ISqlOptionsAccessor { 7 | /// 8 | /// 获取Sql配置 9 | /// 10 | SqlOptions GetOptions(); 11 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Database/IConnectionManager.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Database; 2 | 3 | /// 4 | /// 数据库连接管理器 5 | /// 6 | public interface IConnectionManager { 7 | /// 8 | /// 设置数据库连接 9 | /// 10 | /// 数据库连接 11 | void SetConnection( IDbConnection connection ); 12 | /// 13 | /// 获取数据库连接 14 | /// 15 | IDbConnection GetConnection(); 16 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/ISqlCondition.cs: -------------------------------------------------------------------------------- 1 | using Util.Data.Sql.Builders; 2 | 3 | namespace Util.Data.Sql; 4 | 5 | /// 6 | /// Sql查询条件 7 | /// 8 | public interface ISqlCondition : ISqlContent { 9 | } -------------------------------------------------------------------------------- /src/Util.Data.Sql/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.Text; 6 | global using System.Data; 7 | global using System.Text.RegularExpressions; 8 | global using System.Collections; 9 | -------------------------------------------------------------------------------- /src/Util.Domain.Biz/Enums/Gender.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Domain.Biz.Enums; 2 | 3 | /// 4 | /// 性别 5 | /// 6 | public enum Gender { 7 | /// 8 | /// 女 9 | /// 10 | [Description( "util.female" )] 11 | Female = 1, 12 | /// 13 | /// 男 14 | /// 15 | [Description( "util.male" )] 16 | Male = 2 17 | } -------------------------------------------------------------------------------- /src/Util.Domain.Biz/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System.ComponentModel; 2 | -------------------------------------------------------------------------------- /src/Util.Domain/Auditing/IAudited.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Domain.Auditing; 2 | 3 | /// 4 | /// 操作审计 5 | /// 6 | public interface IAudited : ICreationAudited, IModificationAudited { 7 | } 8 | 9 | /// 10 | /// 操作审计 11 | /// 12 | /// 操作人编号类型 13 | public interface IAudited : ICreationAudited, IModificationAudited { 14 | } -------------------------------------------------------------------------------- /src/Util.Domain/Auditing/ICreationAudited.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Domain.Auditing; 2 | 3 | /// 4 | /// 创建操作审计 5 | /// 6 | public interface ICreationAudited : ICreationAudited { 7 | } 8 | 9 | /// 10 | /// 创建操作审计 11 | /// 12 | /// 创建人标识类型 13 | public interface ICreationAudited : ICreationTime { 14 | /// 15 | /// 创建人标识 16 | /// 17 | TKey CreatorId { get; set; } 18 | } -------------------------------------------------------------------------------- /src/Util.Domain/Auditing/ICreationTime.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Domain.Auditing; 2 | 3 | /// 4 | /// 创建时间审计 5 | /// 6 | public interface ICreationTime { 7 | /// 8 | /// 创建时间 9 | /// 10 | DateTime? CreationTime { get; set; } 11 | } -------------------------------------------------------------------------------- /src/Util.Domain/Auditing/ILastModificationTime.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Domain.Auditing; 2 | 3 | /// 4 | /// 修改时间审计 5 | /// 6 | public interface ILastModificationTime { 7 | /// 8 | /// 最后修改时间 9 | /// 10 | DateTime? LastModificationTime { get; set; } 11 | } -------------------------------------------------------------------------------- /src/Util.Domain/Compare/ICompareChange.cs: -------------------------------------------------------------------------------- 1 | using Util.Domain.Entities; 2 | 3 | namespace Util.Domain.Compare; 4 | 5 | /// 6 | /// 通过对象比较获取变更属性集 7 | /// 8 | /// 领域对象类型 9 | public interface ICompareChange where T : IDomainObject { 10 | /// 11 | /// 获取变更属性 12 | /// 13 | /// 其它领域对象 14 | ChangeValueCollection GetChanges( T other ); 15 | } -------------------------------------------------------------------------------- /src/Util.Domain/Entities/IDomainObject.cs: -------------------------------------------------------------------------------- 1 | using Util.Validation; 2 | 3 | namespace Util.Domain.Entities; 4 | 5 | /// 6 | /// 领域对象 7 | /// 8 | public interface IDomainObject : IValidation { 9 | } -------------------------------------------------------------------------------- /src/Util.Domain/Events/EntityChangeType.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Domain.Events; 2 | 3 | /// 4 | /// 实体变更类型 5 | /// 6 | public enum EntityChangeType { 7 | /// 8 | /// 新增 9 | /// 10 | Created, 11 | /// 12 | /// 修改 13 | /// 14 | Updated, 15 | /// 16 | /// 删除 17 | /// 18 | Deleted 19 | } -------------------------------------------------------------------------------- /src/Util.Domain/Extending/IExtraProperties.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Domain.Extending; 2 | 3 | /// 4 | /// 扩展属性 5 | /// 6 | public interface IExtraProperties { 7 | } -------------------------------------------------------------------------------- /src/Util.Domain/Services/IDomainService.cs: -------------------------------------------------------------------------------- 1 | using Util.Dependency; 2 | 3 | namespace Util.Domain.Services; 4 | 5 | /// 6 | /// 领域服务 7 | /// 8 | public interface IDomainService : IScopeDependency { 9 | } -------------------------------------------------------------------------------- /src/Util.Domain/Trees/IEnabled.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Domain.Trees; 2 | 3 | /// 4 | /// 启用 5 | /// 6 | public interface IEnabled { 7 | /// 8 | /// 是否启用 9 | /// 10 | bool Enabled { get; set; } 11 | } -------------------------------------------------------------------------------- /src/Util.Domain/Trees/IParentId.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Domain.Trees; 2 | 3 | /// 4 | /// 父标识 5 | /// 6 | /// 父标识类型 7 | public interface IParentId { 8 | /// 9 | /// 父标识 10 | /// 11 | TParentId ParentId { get; set; } 12 | } -------------------------------------------------------------------------------- /src/Util.Domain/Trees/IPath.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Domain.Trees; 2 | 3 | /// 4 | /// 物化路径 5 | /// 6 | public interface IPath { 7 | /// 8 | /// 路径 9 | /// 10 | string Path { get; } 11 | /// 12 | /// 层级 13 | /// 14 | int Level { get; } 15 | } -------------------------------------------------------------------------------- /src/Util.Domain/Trees/ISortId.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Domain.Trees; 2 | 3 | /// 4 | /// 排序号 5 | /// 6 | public interface ISortId { 7 | /// 8 | /// 排序号 9 | /// 10 | int? SortId { get; set; } 11 | } -------------------------------------------------------------------------------- /src/Util.Domain/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.Threading; 6 | global using System.Text; 7 | global using System.Reflection; 8 | global using System.Linq.Expressions; 9 | global using System.ComponentModel.DataAnnotations; -------------------------------------------------------------------------------- /src/Util.Events.Abstractions/IEvent.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Events; 2 | 3 | /// 4 | /// 事件 5 | /// 6 | public interface IEvent { 7 | } -------------------------------------------------------------------------------- /src/Util.Events.Abstractions/IEventBus.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Events; 2 | 3 | /// 4 | /// 事件总线 5 | /// 6 | public interface IEventBus { 7 | /// 8 | /// 发布事件 9 | /// 10 | /// 事件类型 11 | /// 事件 12 | /// 取消令牌 13 | Task PublishAsync( TEvent @event,CancellationToken cancellationToken = default ) where TEvent : IEvent; 14 | } -------------------------------------------------------------------------------- /src/Util.Events.Abstractions/IIntegrationEvent.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Events; 2 | 3 | /// 4 | /// 集成事件 5 | /// 6 | public interface IIntegrationEvent : IEvent { 7 | /// 8 | /// 事件标识 9 | /// 10 | public string EventId { get; } 11 | /// 12 | /// 事件发生时间 13 | /// 14 | public DateTime EventTime { get; } 15 | } -------------------------------------------------------------------------------- /src/Util.Events.Abstractions/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Threading; -------------------------------------------------------------------------------- /src/Util.Events/ILocalEventBus.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Events; 2 | 3 | /// 4 | /// 基于内存的本地事件总线 5 | /// 6 | public interface ILocalEventBus : IEventBus { 7 | } -------------------------------------------------------------------------------- /src/Util.Events/ILocalEventHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Events; 2 | 3 | /// 4 | /// 本地事件处理器 5 | /// 6 | public interface ILocalEventHandler : IEventHandler { 7 | /// 8 | /// 序号 9 | /// 10 | int Order { get; } 11 | } -------------------------------------------------------------------------------- /src/Util.Events/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.Threading; 6 | global using Microsoft.Extensions.DependencyInjection; 7 | global using Microsoft.Extensions.DependencyInjection.Extensions; -------------------------------------------------------------------------------- /src/Util.FileStorage.Minio/IMinioConfigProvider.cs: -------------------------------------------------------------------------------- 1 | using Util.Dependency; 2 | 3 | namespace Util.FileStorage.Minio; 4 | 5 | /// 6 | /// Minio配置提供器 7 | /// 8 | public interface IMinioConfigProvider : ITransientDependency { 9 | /// 10 | /// 获取配置 11 | /// 12 | Task GetConfigAsync(); 13 | } -------------------------------------------------------------------------------- /src/Util.FileStorage.Minio/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.Threading; 6 | global using System.IO; 7 | global using System.Net.Http; 8 | global using Microsoft.Extensions.DependencyInjection; 9 | global using Microsoft.Extensions.DependencyInjection.Extensions; 10 | global using Minio; 11 | global using Minio.Exceptions; -------------------------------------------------------------------------------- /src/Util.FileStorage/BucketNameProcessorFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage; 2 | 3 | /// 4 | /// 存储桶名称处理器工厂 5 | /// 6 | public class BucketNameProcessorFactory : IBucketNameProcessorFactory { 7 | /// 8 | public IBucketNameProcessor CreateProcessor( string policy ) { 9 | if ( policy.IsEmpty() ) 10 | return new BucketNameProcessor(); 11 | throw new NotImplementedException( $"存储桶名称处理策略 {policy} 未实现." ); 12 | } 13 | } -------------------------------------------------------------------------------- /src/Util.FileStorage/DeleteFileArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage; 2 | 3 | /// 4 | /// 删除文件方法参数 5 | /// 6 | public class DeleteFileArgs : FileStorageArgs { 7 | /// 8 | /// 初始化删除文件方法参数 9 | /// 10 | /// 文件名 11 | public DeleteFileArgs( string fileName ) : base( fileName ) { 12 | } 13 | } -------------------------------------------------------------------------------- /src/Util.FileStorage/FileExistsArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage; 2 | 3 | /// 4 | /// 文件是否存在方法参数 5 | /// 6 | public class FileExistsArgs : FileStorageArgs { 7 | /// 8 | /// 初始化文件是否存在方法参数 9 | /// 10 | /// 文件名 11 | public FileExistsArgs( string fileName ) : base( fileName ) { 12 | } 13 | } -------------------------------------------------------------------------------- /src/Util.FileStorage/FileNameProcessor.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage; 2 | 3 | /// 4 | /// 默认文件名处理器,不作任何修改 5 | /// 6 | public class FileNameProcessor : IFileNameProcessor { 7 | /// 8 | public ProcessedName Process( string fileName ) { 9 | return new ProcessedName( fileName ); 10 | } 11 | } -------------------------------------------------------------------------------- /src/Util.FileStorage/GenerateUploadUrlArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage; 2 | 3 | /// 4 | /// 生成上传Url方法参数 5 | /// 6 | public class GenerateUploadUrlArgs : FileStorageArgs { 7 | /// 8 | /// 初始化生成上传Url方法参数 9 | /// 10 | /// 文件名 11 | public GenerateUploadUrlArgs( string fileName ) : base( fileName ) { 12 | } 13 | } -------------------------------------------------------------------------------- /src/Util.FileStorage/GetFileStreamArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage; 2 | 3 | /// 4 | /// 获取文件流方法参数 5 | /// 6 | public class GetFileStreamArgs : FileStorageArgs { 7 | /// 8 | /// 初始化获取文件流方法参数 9 | /// 10 | /// 文件名 11 | public GetFileStreamArgs( string fileName ) : base( fileName ) { 12 | } 13 | } -------------------------------------------------------------------------------- /src/Util.FileStorage/IBucketNameProcessor.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage; 2 | 3 | /// 4 | /// 存储桶名称处理器 5 | /// 6 | public interface IBucketNameProcessor { 7 | /// 8 | /// 处理存储桶名称 9 | /// 10 | /// 存储桶名称 11 | ProcessedName Process( string bucketName ); 12 | } -------------------------------------------------------------------------------- /src/Util.FileStorage/IBucketNameProcessorFactory.cs: -------------------------------------------------------------------------------- 1 | using Util.Dependency; 2 | 3 | namespace Util.FileStorage; 4 | 5 | /// 6 | /// 存储桶名称处理器工厂 7 | /// 8 | public interface IBucketNameProcessorFactory : ITransientDependency { 9 | /// 10 | /// 创建存储桶名称处理器 11 | /// 12 | /// 存储桶名称处理策略 13 | IBucketNameProcessor CreateProcessor( string policy ); 14 | } -------------------------------------------------------------------------------- /src/Util.FileStorage/IFileNameProcessor.cs: -------------------------------------------------------------------------------- 1 | using Util.Dependency; 2 | 3 | namespace Util.FileStorage; 4 | 5 | /// 6 | /// 文件名处理器 7 | /// 8 | public interface IFileNameProcessor : ITransientDependency { 9 | /// 10 | /// 处理文件名 11 | /// 12 | /// 文件名 13 | ProcessedName Process( string fileName ); 14 | } -------------------------------------------------------------------------------- /src/Util.FileStorage/IFileNameProcessorFactory.cs: -------------------------------------------------------------------------------- 1 | using Util.Dependency; 2 | 3 | namespace Util.FileStorage; 4 | 5 | /// 6 | /// 文件名处理器工厂 7 | /// 8 | public interface IFileNameProcessorFactory : ITransientDependency { 9 | /// 10 | /// 创建文件名处理器 11 | /// 12 | /// 文件名处理策略 13 | IFileNameProcessor CreateProcessor( string policy ); 14 | } -------------------------------------------------------------------------------- /src/Util.FileStorage/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Threading; 5 | global using System.IO; 6 | -------------------------------------------------------------------------------- /src/Util.Generators.Razor/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.IO; 5 | global using Microsoft.Extensions.DependencyInjection.Extensions; -------------------------------------------------------------------------------- /src/Util.Generators/Configuration/GeneratorOptionsBuilder.cs: -------------------------------------------------------------------------------- 1 | using Util.Helpers; 2 | 3 | namespace Util.Generators.Configuration; 4 | 5 | /// 6 | /// 生成器配置项构建器 7 | /// 8 | public class GeneratorOptionsBuilder : IGeneratorOptionsBuilder { 9 | /// 10 | /// 构建生成器配置项 11 | /// 12 | public Task BuildAsync() { 13 | var result = Config.Get( "Generator" ); 14 | return Task.FromResult( result ); 15 | } 16 | } -------------------------------------------------------------------------------- /src/Util.Generators/Configuration/IGeneratorOptionsBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Generators.Configuration; 2 | 3 | /// 4 | /// 生成器配置项构建器 5 | /// 6 | public interface IGeneratorOptionsBuilder { 7 | /// 8 | /// 构建生成器配置项 9 | /// 10 | Task BuildAsync(); 11 | } -------------------------------------------------------------------------------- /src/Util.Generators/Configuration/ProjectType.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Generators.Configuration; 2 | 3 | /// 4 | /// 项目类型 5 | /// 6 | public enum ProjectType { 7 | /// 8 | /// 生成Web API相关的项目,不生成UI 9 | /// 10 | WebApi, 11 | /// 12 | /// 生成UI,包含Web API项目 13 | /// 14 | Ui 15 | } -------------------------------------------------------------------------------- /src/Util.Generators/Contexts/IGeneratorContextBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Generators.Contexts; 2 | 3 | /// 4 | /// 生成器上下文构建器 5 | /// 6 | public interface IGeneratorContextBuilder { 7 | /// 8 | /// 创建生成器上下文 9 | /// 10 | Task BuildAsync(); 11 | } -------------------------------------------------------------------------------- /src/Util.Generators/IGenerator.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Generators; 2 | 3 | /// 4 | /// 生成器 5 | /// 6 | public interface IGenerator { 7 | /// 8 | /// 生成 9 | /// 10 | Task GenerateAsync(); 11 | } -------------------------------------------------------------------------------- /src/Util.Generators/NamingConvention.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Generators; 2 | 3 | /// 4 | /// 命名约定 5 | /// 6 | public enum NamingConvention { 7 | /// 8 | /// 帕斯卡命名,所有单词首字母大写 9 | /// 10 | PascalCase, 11 | /// 12 | /// 驼峰命名,第一个单词首字母小写,其余单词首字母大写 13 | /// 14 | CamelCase 15 | } -------------------------------------------------------------------------------- /src/Util.Generators/Templates/ITemplate.cs: -------------------------------------------------------------------------------- 1 | using Util.Generators.Contexts; 2 | 3 | namespace Util.Generators.Templates; 4 | 5 | /// 6 | /// 模板 7 | /// 8 | public interface ITemplate { 9 | /// 10 | /// 模板路径 11 | /// 12 | string Path { get; } 13 | /// 14 | /// 渲染 15 | /// 16 | /// 实体上下文 17 | Task RenderAsync( EntityContext context ); 18 | } -------------------------------------------------------------------------------- /src/Util.Generators/Templates/ITemplateFilter.cs: -------------------------------------------------------------------------------- 1 | using Util.Generators.Contexts; 2 | 3 | namespace Util.Generators.Templates; 4 | 5 | /// 6 | /// 模板过滤器 7 | /// 8 | public interface ITemplateFilter { 9 | /// 10 | /// 是否过滤模板,返回true则不生成该模板 11 | /// 12 | /// 模板绝对路径 13 | /// 项目上下文 14 | bool IsFilter( string path, ProjectContext projectContext ); 15 | } -------------------------------------------------------------------------------- /src/Util.Generators/Templates/ITemplateFinder.cs: -------------------------------------------------------------------------------- 1 | using Util.Generators.Contexts; 2 | 3 | namespace Util.Generators.Templates; 4 | 5 | /// 6 | /// 模板查找器 7 | /// 8 | public interface ITemplateFinder { 9 | /// 10 | /// 查找模板列表 11 | /// 12 | /// 模板根目录绝对路径 13 | /// 项目上下文 14 | IEnumerable Find( string rootPath, ProjectContext projectContext ); 15 | } -------------------------------------------------------------------------------- /src/Util.Generators/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.Diagnostics; 6 | global using System.IO; 7 | global using System.Data; 8 | global using System.ComponentModel.DataAnnotations; 9 | global using Humanizer; 10 | -------------------------------------------------------------------------------- /src/Util.Images.Avatar/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Linq; 4 | global using System.Threading; 5 | global using SixLabors.Fonts; 6 | -------------------------------------------------------------------------------- /src/Util.Images.ImageSharp/Commands/ICommand.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Images.Commands; 2 | 3 | /// 4 | /// 调用命令 5 | /// 6 | public interface ICommand { 7 | /// 8 | /// 调用 9 | /// 10 | /// 图片实例 11 | void Invoke( Image image ); 12 | } -------------------------------------------------------------------------------- /src/Util.Logging.Serilog.Exceptionless/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using Microsoft.Extensions.Configuration; 3 | global using Microsoft.Extensions.DependencyInjection; 4 | global using Microsoft.Extensions.Logging; 5 | global using Serilog; 6 | global using Exceptionless; -------------------------------------------------------------------------------- /src/Util.Logging.Serilog/LogOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Logging.Serilog; 2 | 3 | /// 4 | /// 日志配置 5 | /// 6 | public class LogOptions { 7 | /// 8 | /// 是否清除默认设置的日志提供程序 9 | /// 10 | public bool IsClearProviders { get; set; } 11 | /// 12 | /// 应用程序名称 13 | /// 14 | public string Application { get; set; } 15 | } -------------------------------------------------------------------------------- /src/Util.Logging.Serilog/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using Microsoft.Extensions.Configuration; 3 | global using Microsoft.Extensions.DependencyInjection; 4 | global using Microsoft.Extensions.Logging; 5 | global using Serilog; 6 | global using Serilog.Core; 7 | global using Serilog.Events; 8 | global using Serilog.Configuration; -------------------------------------------------------------------------------- /src/Util.Logging/ILogContextAccessor.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Logging; 2 | 3 | /// 4 | /// 日志上下文访问器 5 | /// 6 | public interface ILogContextAccessor { 7 | /// 8 | /// 日志上下文 9 | /// 10 | LogContext Context { get; set; } 11 | } -------------------------------------------------------------------------------- /src/Util.Logging/ILogFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Logging; 2 | 3 | /// 4 | /// 日志操作工厂 5 | /// 6 | public interface ILogFactory { 7 | /// 8 | /// 创建日志操作 9 | /// 10 | /// 日志类别 11 | ILog CreateLog( string categoryName ); 12 | /// 13 | /// 创建日志操作 14 | /// 15 | /// 日志类别类型 16 | ILog CreateLog( Type type ); 17 | } -------------------------------------------------------------------------------- /src/Util.Logging/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Collections.Generic; 3 | global using System.Diagnostics; 4 | global using System.Text; 5 | global using Microsoft.Extensions.Logging; 6 | -------------------------------------------------------------------------------- /src/Util.Microservices.HealthChecks/EntityFrameworkCore/UnitOfWorkHealthCheck.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/src/Util.Microservices.HealthChecks/EntityFrameworkCore/UnitOfWorkHealthCheck.cs -------------------------------------------------------------------------------- /src/Util.Microservices.HealthChecks/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.Threading; 6 | global using Microsoft.Extensions.DependencyInjection; 7 | global using Microsoft.Extensions.Diagnostics.HealthChecks; 8 | global using Dapr.Client; 9 | global using Util.Data; 10 | global using Util.Data.EntityFrameworkCore; 11 | -------------------------------------------------------------------------------- /src/Util.Microservices.Polly/IPolicy.cs: -------------------------------------------------------------------------------- 1 | using Util.Dependency; 2 | 3 | namespace Util.Microservices; 4 | 5 | /// 6 | /// 弹性处理策略 7 | /// 8 | public interface IPolicy : ITransientDependency { 9 | /// 10 | /// 重试 11 | /// 12 | IRetryPolicyHandler Retry(); 13 | /// 14 | /// 重试 15 | /// 16 | /// 重试次数 17 | IRetryPolicyHandler Retry( int count ); 18 | } -------------------------------------------------------------------------------- /src/Util.Microservices.Polly/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using Polly; 4 | global using Polly.Retry; -------------------------------------------------------------------------------- /src/Util.Microservices/IMicroserviceClient.cs: -------------------------------------------------------------------------------- 1 | using Util.Http; 2 | 3 | namespace Util.Microservices; 4 | 5 | /// 6 | /// 微服务客户端 7 | /// 8 | public interface IMicroserviceClient { 9 | /// 10 | /// Http客户端 11 | /// 12 | IHttpClient HttpClient { get; } 13 | /// 14 | /// WebApi服务调用 15 | /// 16 | IServiceInvocation ServiceInvocation { get; } 17 | } -------------------------------------------------------------------------------- /src/Util.Microservices/IMicroserviceClientFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Microservices; 2 | 3 | /// 4 | /// 微服务客户端工厂 5 | /// 6 | public interface IMicroserviceClientFactory : ITransientDependency { 7 | /// 8 | /// 创建微服务客户端 9 | /// 10 | IMicroserviceClient Create(); 11 | } -------------------------------------------------------------------------------- /src/Util.Microservices/ServiceResult.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Microservices; 2 | 3 | /// 4 | /// 服务约定结果 5 | /// 6 | public class ServiceResult { 7 | /// 8 | /// 状态码 9 | /// 10 | public string Code { get; set; } 11 | /// 12 | /// 消息 13 | /// 14 | public string Message { get; set; } 15 | /// 16 | /// 数据 17 | /// 18 | public TData Data { get; set; } 19 | } -------------------------------------------------------------------------------- /src/Util.Microservices/ServiceState.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Microservices; 2 | 3 | /// 4 | /// 服务状态码 5 | /// 6 | public enum ServiceState { 7 | /// 8 | /// 失败 9 | /// 10 | Fail, 11 | /// 12 | /// 成功 13 | /// 14 | Ok, 15 | /// 16 | /// 未授权 17 | /// 18 | Unauthorized 19 | } -------------------------------------------------------------------------------- /src/Util.Microservices/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Collections.Generic; 3 | global using System.Threading.Tasks; 4 | global using System.Threading; 5 | global using System.Net.Http; 6 | global using System.Text.Json; 7 | global using Microsoft.AspNetCore.Http; 8 | global using Util.Dependency; -------------------------------------------------------------------------------- /src/Util.ObjectMapping.AutoMapper/IAutoMapperConfig.cs: -------------------------------------------------------------------------------- 1 | namespace Util.ObjectMapping; 2 | 3 | /// 4 | /// AutoMapper配置 5 | /// 6 | public interface IAutoMapperConfig { 7 | /// 8 | /// 配置映射 9 | /// 10 | /// 配置映射表达式 11 | void Config( IMapperConfigurationExpression expression ); 12 | } -------------------------------------------------------------------------------- /src/Util.ObjectMapping.AutoMapper/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Linq; 3 | global using System.Linq.Expressions; 4 | global using Microsoft.Extensions.DependencyInjection; 5 | global using AutoMapper; 6 | global using AutoMapper.Internal; 7 | -------------------------------------------------------------------------------- /src/Util.Scheduling.Hangfire/HangfireJobInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Scheduling; 2 | 3 | /// 4 | /// Hangfire任务信息 5 | /// 6 | public class HangfireJobInfo : IJobInfo { 7 | /// 8 | /// 任务标识 9 | /// 10 | public string Id { get; set; } 11 | /// 12 | /// 队列名称 13 | /// 14 | public string Queue { get; set; } = "default"; 15 | } -------------------------------------------------------------------------------- /src/Util.Scheduling.Hangfire/HangfireTrigger.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Scheduling; 2 | 3 | /// 4 | /// Hangfire触发器 5 | /// 6 | public class HangfireTrigger : IJobTrigger { 7 | /// 8 | /// 延迟执行时间间隔 9 | /// 10 | public TimeSpan? Delay { get; set; } 11 | /// 12 | /// Cron表达式 13 | /// 14 | public string Cron { get; set; } 15 | } -------------------------------------------------------------------------------- /src/Util.Scheduling.Hangfire/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Threading; 4 | global using System.Linq.Expressions; 5 | global using Microsoft.Extensions.DependencyInjection; 6 | global using Microsoft.Extensions.DependencyInjection.Extensions; 7 | global using Hangfire; 8 | -------------------------------------------------------------------------------- /src/Util.Scheduling.Quartz/QuartzJobInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Scheduling; 2 | 3 | /// 4 | /// Quartz任务信息 5 | /// 6 | public class QuartzJobInfo : IJobInfo { 7 | /// 8 | /// 任务名称 9 | /// 10 | public string Name { get; set; } 11 | /// 12 | /// 任务组名称 13 | /// 14 | public string Group { get; set; } 15 | } -------------------------------------------------------------------------------- /src/Util.Scheduling.Quartz/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Threading; 4 | global using Microsoft.Extensions.DependencyInjection; 5 | global using Microsoft.Extensions.DependencyInjection.Extensions; 6 | global using Quartz; 7 | -------------------------------------------------------------------------------- /src/Util.Scheduling/IJob.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Scheduling; 2 | 3 | /// 4 | /// 后台任务 5 | /// 6 | public interface IJob { 7 | /// 8 | /// 配置 9 | /// 10 | void Config(); 11 | } -------------------------------------------------------------------------------- /src/Util.Scheduling/IJobInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Scheduling; 2 | 3 | /// 4 | /// 后台任务信息 5 | /// 6 | public interface IJobInfo { 7 | } -------------------------------------------------------------------------------- /src/Util.Scheduling/IJobTrigger.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Scheduling; 2 | 3 | /// 4 | /// 后台任务触发器 5 | /// 6 | public interface IJobTrigger { 7 | } -------------------------------------------------------------------------------- /src/Util.Scheduling/IScan.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Scheduling; 2 | 3 | /// 4 | /// 自动扫描,后台任务实现该接口,当关闭全局扫描时也会自动加入 5 | /// 6 | public interface IScan { 7 | } -------------------------------------------------------------------------------- /src/Util.Scheduling/SchedulerOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Scheduling; 2 | 3 | /// 4 | /// 后台任务调度器配置 5 | /// 6 | public class SchedulerOptions { 7 | /// 8 | /// 是否扫描加载后台任务 9 | /// 10 | public bool IsScanJobs { get; set; } 11 | } -------------------------------------------------------------------------------- /src/Util.Scheduling/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.Threading; 6 | global using Microsoft.Extensions.DependencyInjection; 7 | global using Microsoft.Extensions.Hosting; 8 | global using Microsoft.Extensions.Options; -------------------------------------------------------------------------------- /src/Util.Security/Security/Authentication/UnauthenticatedIdentity.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Security.Authentication; 2 | 3 | /// 4 | /// 未认证的身份标识 5 | /// 6 | public class UnauthenticatedIdentity : ClaimsIdentity { 7 | /// 8 | /// 是否认证 9 | /// 10 | public override bool IsAuthenticated => false; 11 | 12 | /// 13 | /// 未认证的身份标识实例 14 | /// 15 | public static readonly UnauthenticatedIdentity Instance = new(); 16 | } -------------------------------------------------------------------------------- /src/Util.Security/Security/Authorization/IPermissionManager.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Security.Authorization; 2 | 3 | /// 4 | /// 权限管理器 5 | /// 6 | public interface IPermissionManager { 7 | /// 8 | /// 检查当前用户是否具有该资源的访问权限,返回true表示允许访问,false表示拒绝访问 9 | /// 10 | /// 资源标识 11 | Task HasPermissionAsync( string resourceUri ); 12 | } -------------------------------------------------------------------------------- /src/Util.Security/Security/Encryptors/IEncryptor.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Security.Encryptors; 2 | 3 | /// 4 | /// 加密器 5 | /// 6 | public interface IEncryptor { 7 | /// 8 | /// 加密 9 | /// 10 | /// 原始数据 11 | string Encrypt( string data ); 12 | /// 13 | /// 解密 14 | /// 15 | /// 已加密数据 16 | string Decrypt( string data ); 17 | } -------------------------------------------------------------------------------- /src/Util.Security/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Linq; 4 | global using System.Text; 5 | global using System.Security.Cryptography; 6 | global using System.Security.Claims; 7 | global using System.Security.Principal; 8 | -------------------------------------------------------------------------------- /src/Util.Templates.Handlebars/HandlebarsDotNet/IHandlebarsTemplateEngine.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Templates.HandlebarsDotNet; 2 | 3 | /// 4 | /// Handlebars模板引擎 5 | /// 6 | public interface IHandlebarsTemplateEngine : ITemplateEngine { 7 | } -------------------------------------------------------------------------------- /src/Util.Templates.Handlebars/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Concurrent; 4 | global using Microsoft.Extensions.DependencyInjection; 5 | global using HandlebarsDotNet; -------------------------------------------------------------------------------- /src/Util.Templates.Razor/Razor/Filters/PartialAsyncFilter.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Templates.Razor.Filters; 2 | 3 | /// 4 | /// 部分视图过滤器,移除模板中的await 5 | /// 6 | public class PartialAsyncFilter : ITemplateFilter { 7 | /// 8 | /// 过滤模板 9 | /// 10 | /// 模板字符串 11 | public string Filter( string template ) { 12 | return Util.Helpers.Regex.Replace( template, @"await\s+Html.PartialAsync", "Html.PartialAsync" ); 13 | } 14 | } -------------------------------------------------------------------------------- /src/Util.Templates.Razor/Razor/IRazorTemplateEngine.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Templates.Razor; 2 | 3 | /// 4 | /// Razor模板引擎 5 | /// 6 | public interface IRazorTemplateEngine : ITemplateEngine { 7 | } -------------------------------------------------------------------------------- /src/Util.Templates.Razor/RazorEngineCore/RazorEngineTemplateBaseT.cs: -------------------------------------------------------------------------------- 1 | namespace RazorEngineCore; 2 | 3 | public abstract class RazorEngineTemplateBase : RazorEngineTemplateBase 4 | { 5 | public new T Model { get; set; } 6 | } -------------------------------------------------------------------------------- /src/Util.Templates.Razor/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.Text; 6 | global using System.IO; 7 | global using System.Reflection; 8 | global using System.Runtime.InteropServices; 9 | global using System.Collections.Concurrent; 10 | global using Microsoft.Extensions.DependencyInjection; 11 | global using RazorEngineCore; -------------------------------------------------------------------------------- /src/Util.Templates/ITemplateFilter.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Templates; 2 | 3 | /// 4 | /// 模板过滤器 5 | /// 6 | public interface ITemplateFilter { 7 | /// 8 | /// 过滤模板 9 | /// 10 | /// 模板字符串 11 | string Filter( string template ); 12 | } -------------------------------------------------------------------------------- /src/Util.Templates/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; -------------------------------------------------------------------------------- /src/Util.Ui.Angular/Builders/RouterOutletBuilder.cs: -------------------------------------------------------------------------------- 1 | using Util.Ui.Configs; 2 | 3 | namespace Util.Ui.Angular.Builders; 4 | 5 | /// 6 | /// router-outlet标签生成器 7 | /// 8 | public class RouterOutletBuilder : AngularTagBuilder { 9 | /// 10 | /// 初始化router-outlet标签生成器 11 | /// 12 | /// 配置 13 | public RouterOutletBuilder( Config config ) : base( config, "router-outlet" ) { 14 | } 15 | } -------------------------------------------------------------------------------- /src/Util.Ui.Angular/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using Microsoft.AspNetCore.Html; 3 | global using Microsoft.AspNetCore.Razor.TagHelpers; 4 | -------------------------------------------------------------------------------- /src/Util.Ui.NgAlain/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System.Text; 2 | global using System.ComponentModel; 3 | global using Microsoft.AspNetCore.Html; 4 | -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Components/Avatars/Builders/AvatarGroupBuilder.cs: -------------------------------------------------------------------------------- 1 | using Util.Ui.Angular.Builders; 2 | using Util.Ui.Configs; 3 | 4 | namespace Util.Ui.NgZorro.Components.Avatars.Builders; 5 | 6 | /// 7 | /// 头像组标签生成器 8 | /// 9 | public class AvatarGroupBuilder : AngularTagBuilder { 10 | /// 11 | /// 初始化头像组标签生成器 12 | /// 13 | public AvatarGroupBuilder( Config config ) : base( config,"nz-avatar-group" ) { 14 | } 15 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Components/Comments/Configs/CommentShareConfig.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Components.Comments.Configs; 2 | 3 | /// 4 | /// 评论共享配置 5 | /// 6 | public class CommentShareConfig { 7 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Components/Forms/Builders/FormTextBuilder.cs: -------------------------------------------------------------------------------- 1 | using Util.Ui.Angular.Builders; 2 | using Util.Ui.Configs; 3 | 4 | namespace Util.Ui.NgZorro.Components.Forms.Builders; 5 | 6 | /// 7 | /// 表单文本标签生成器 8 | /// 9 | public class FormTextBuilder : AngularTagBuilder { 10 | /// 11 | /// 初始化表单文本标签生成器 12 | /// 13 | /// 配置 14 | public FormTextBuilder( Config config ) : base( config,"nz-form-text" ) { 15 | } 16 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Components/Layouts/Builders/ContentBuilder.cs: -------------------------------------------------------------------------------- 1 | using Util.Ui.Angular.Builders; 2 | using Util.Ui.Configs; 3 | 4 | namespace Util.Ui.NgZorro.Components.Layouts.Builders; 5 | 6 | /// 7 | /// 内容区布局标签生成器 8 | /// 9 | public class ContentBuilder : AngularTagBuilder { 10 | /// 11 | /// 初始化内容区布局标签生成器 12 | /// 13 | /// 配置 14 | public ContentBuilder( Config config ) : base( config,"nz-content" ) { 15 | } 16 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Components/Layouts/Builders/FooterBuilder.cs: -------------------------------------------------------------------------------- 1 | using Util.Ui.Angular.Builders; 2 | using Util.Ui.Configs; 3 | 4 | namespace Util.Ui.NgZorro.Components.Layouts.Builders; 5 | 6 | /// 7 | /// 底部布局标签生成器 8 | /// 9 | public class FooterBuilder : AngularTagBuilder { 10 | /// 11 | /// 初始化底部布局标签生成器 12 | /// 13 | /// 配置 14 | public FooterBuilder( Config config ) : base( config,"nz-footer" ) { 15 | } 16 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Components/Layouts/Builders/HeaderBuilder.cs: -------------------------------------------------------------------------------- 1 | using Util.Ui.Angular.Builders; 2 | using Util.Ui.Configs; 3 | 4 | namespace Util.Ui.NgZorro.Components.Layouts.Builders; 5 | 6 | /// 7 | /// 顶部布局标签生成器 8 | /// 9 | public class HeaderBuilder : AngularTagBuilder { 10 | /// 11 | /// 初始化顶部布局标签生成器 12 | /// 13 | /// 配置 14 | public HeaderBuilder( Config config ) : base( config,"nz-header" ) { 15 | } 16 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Components/Layouts/Builders/LayoutBuilder.cs: -------------------------------------------------------------------------------- 1 | using Util.Ui.Angular.Builders; 2 | using Util.Ui.Configs; 3 | 4 | namespace Util.Ui.NgZorro.Components.Layouts.Builders; 5 | 6 | /// 7 | /// 布局标签生成器 8 | /// 9 | public class LayoutBuilder : AngularTagBuilder { 10 | /// 11 | /// 初始化布局标签生成器 12 | /// 13 | /// 配置 14 | public LayoutBuilder( Config config ) : base( config,"nz-layout" ) { 15 | } 16 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Components/Mentions/Configs/MentionShareConfig.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Components.Mentions.Configs; 2 | 3 | /// 4 | /// 提及共享配置 5 | /// 6 | public class MentionShareConfig { 7 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Components/PageHeaders/Configs/PageHeaderShareConfig.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Components.PageHeaders.Configs; 2 | 3 | /// 4 | /// 页头共享配置 5 | /// 6 | public class PageHeaderShareConfig { 7 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Components/Tables/Builders/Contents/ITableColumnContent.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Components.Tables.Builders.Contents; 2 | 3 | /// 4 | /// 表格列内容 5 | /// 6 | public interface ITableColumnContent { 7 | /// 8 | /// 获取显示内容 9 | /// 10 | /// 表格单元格标签生成器 11 | IHtmlContent GetDisplayContent( TableColumnBuilder builder ); 12 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Components/Tables/Builders/Contents/ITableColumnContentLoader.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Components.Tables.Builders.Contents; 2 | 3 | /// 4 | /// 表格列内容加载器 5 | /// 6 | public interface ITableColumnContentLoader { 7 | /// 8 | /// 加载内容 9 | /// 10 | /// 表格单元格标签生成器 11 | /// 显示内容 12 | void Load( TableColumnBuilder builder, IHtmlContent displayContent ); 13 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Components/Tables/Configs/TableBodyShareConfig.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Components.Tables.Configs; 2 | 3 | /// 4 | /// 表格主体共享配置 5 | /// 6 | public class TableBodyShareConfig { 7 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Components/Tables/Configs/TableHeadShareConfig.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Components.Tables.Configs; 2 | 3 | /// 4 | /// 表格头共享配置 5 | /// 6 | public class TableHeadShareConfig { 7 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/Align.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 垂直对齐方式 5 | /// 6 | public enum Align { 7 | /// 8 | /// 顶部对齐 9 | /// 10 | [Description( "top" )] 11 | Top, 12 | /// 13 | /// 中间对齐 14 | /// 15 | [Description( "middle" )] 16 | Middle, 17 | /// 18 | /// 底部对齐 19 | /// 20 | [Description( "bottom" )] 21 | Bottom 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/AvatarShape.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 头像形状 5 | /// 6 | public enum AvatarShape { 7 | /// 8 | /// 圆形 9 | /// 10 | [Description( "circle" )] 11 | Circle, 12 | /// 13 | /// 方形 14 | /// 15 | [Description( "square" )] 16 | Square 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/AvatarSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 头像大小 5 | /// 6 | public enum AvatarSize { 7 | /// 8 | /// 默认 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// 小尺寸 14 | /// 15 | [Description( "small" )] 16 | Small, 17 | /// 18 | /// 大尺寸 19 | /// 20 | [Description( "large" )] 21 | Large 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/ButtonShape.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 按钮形状 5 | /// 6 | public enum ButtonShape { 7 | /// 8 | /// 默认 9 | /// 10 | [Description( "" )] 11 | Default, 12 | /// 13 | /// 圆形 14 | /// 15 | [Description( "circle" )] 16 | Circle, 17 | /// 18 | /// 圆角 19 | /// 20 | [Description( "round" )] 21 | Round 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/ButtonSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 按钮大小 5 | /// 6 | public enum ButtonSize { 7 | /// 8 | /// 默认 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// 小尺寸 14 | /// 15 | [Description( "small" )] 16 | Small, 17 | /// 18 | /// 大尺寸 19 | /// 20 | [Description( "large" )] 21 | Large 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/CalendarMode.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 日历显示模式 5 | /// 6 | public enum CalendarMode { 7 | /// 8 | /// 月 9 | /// 10 | [Description( "month" )] 11 | Month, 12 | /// 13 | /// 年 14 | /// 15 | [Description( "year" )] 16 | Year 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/CardSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 卡片大小 5 | /// 6 | public enum CardSize { 7 | /// 8 | /// 默认尺寸 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// 小尺寸 14 | /// 15 | [Description( "small" )] 16 | Small 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/CardType.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 卡片类型 5 | /// 6 | public enum CardType { 7 | /// 8 | /// 默认 9 | /// 10 | Default, 11 | /// 12 | /// 内部卡片 13 | /// 14 | Inner 15 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/CarouselEffect.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 走马灯动画效果 5 | /// 6 | public enum CarouselEffect { 7 | /// 8 | /// X轴滚动 9 | /// 10 | [Description( "scrollx" )] 11 | ScrollX, 12 | /// 13 | /// 渐显 14 | /// 15 | [Description( "fade" )] 16 | Fade 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/CascaderExpandTrigger.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 级联选择展开方式 5 | /// 6 | public enum CascaderExpandTrigger { 7 | /// 8 | /// 点击展开 9 | /// 10 | [Description( "click" )] 11 | Click, 12 | /// 13 | /// 鼠标悬停展开 14 | /// 15 | [Description( "hover" )] 16 | Hover 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/CollapseIconPosition.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 折叠图标位置 5 | /// 6 | public enum CollapseIconPosition { 7 | /// 8 | /// 左方 9 | /// 10 | [Description( "left" )] 11 | Left, 12 | /// 13 | /// 右方 14 | /// 15 | [Description( "right" )] 16 | Right 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/DataType.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 数据类型 5 | /// 6 | public enum DataType { 7 | /// 8 | /// 布尔 9 | /// 10 | Bool, 11 | /// 12 | /// 日期 13 | /// 14 | Date, 15 | /// 16 | /// 枚举 17 | /// 18 | Enum 19 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/DescriptionSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 描述列表大小 5 | /// 6 | public enum DescriptionSize { 7 | /// 8 | /// 默认 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// 中 14 | /// 15 | [Description( "middle" )] 16 | Middle, 17 | /// 18 | /// 小 19 | /// 20 | [Description( "small" )] 21 | Small 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/Direction.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 方向 5 | /// 6 | public enum Direction { 7 | /// 8 | /// 从左到右 9 | /// 10 | [Description( "ltr" )] 11 | Ltr, 12 | /// 13 | /// 从右到左 14 | /// 15 | [Description( "rtl" )] 16 | Rtl 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/DividerOrientation.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 分隔线中间文字方向 5 | /// 6 | public enum DividerOrientation { 7 | /// 8 | /// 中 9 | /// 10 | [Description( "center" )] 11 | Center, 12 | /// 13 | /// 左 14 | /// 15 | [Description( "left" )] 16 | Left, 17 | /// 18 | /// 右 19 | /// 20 | [Description( "right" )] 21 | Right 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/DividerType.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 分隔线类型 5 | /// 6 | public enum DividerType { 7 | /// 8 | /// 水平 9 | /// 10 | [Description( "horizontal" )] 11 | Horizontal, 12 | /// 13 | /// 垂直 14 | /// 15 | [Description( "vertical" )] 16 | Vertical 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/DropdownMenuTrigger.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 下拉菜单触发方式 5 | /// 6 | public enum DropdownMenuTrigger { 7 | /// 8 | /// 移入触发 9 | /// 10 | [Description( "hover" )] 11 | Hover, 12 | /// 13 | /// 点击触发 14 | /// 15 | [Description( "click" )] 16 | Click 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/IconTheme.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 图标主题风格 5 | /// 6 | public enum IconTheme { 7 | /// 8 | /// 实心主题 9 | /// 10 | [Description( "fill" )] 11 | Fill, 12 | /// 13 | /// 描线主题 14 | /// 15 | [Description( "outline" )] 16 | Outline, 17 | /// 18 | /// 双色主题 19 | /// 20 | [Description( "twotone" )] 21 | Twotone 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/InputNumberPrecisionMode.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 数字输入精度模式 5 | /// 6 | public enum InputNumberPrecisionMode { 7 | /// 8 | /// 多余的位数直接截断 9 | /// 10 | [Description( "cut" )] 11 | Cut, 12 | /// 13 | /// 四舍五入 14 | /// 15 | [Description( "toFixed" )] 16 | ToFixed 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/InputSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 输入框大小 5 | /// 6 | public enum InputSize { 7 | /// 8 | /// 默认尺寸 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// 小尺寸 14 | /// 15 | [Description( "small" )] 16 | Small, 17 | /// 18 | /// 大尺寸 19 | /// 20 | [Description( "large" )] 21 | Large 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/ListItemLayout.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 列表项布局方式 5 | /// 6 | public enum ListItemLayout { 7 | /// 8 | /// 水平排列 9 | /// 10 | [Description( "horizontal" )] 11 | Horizontal, 12 | /// 13 | /// 垂直排列 14 | /// 15 | [Description( "vertical" )] 16 | Vertical 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/ListSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 列表大小 5 | /// 6 | public enum ListSize { 7 | /// 8 | /// 默认 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// 小尺寸 14 | /// 15 | [Description( "small" )] 16 | Small, 17 | /// 18 | /// 大尺寸 19 | /// 20 | [Description( "large" )] 21 | Large 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/MentionPlacement.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 提及建议框位置 5 | /// 6 | public enum MentionPlacement { 7 | /// 8 | /// 向上展开建议框 9 | /// 10 | [Description( "top" )] 11 | Top, 12 | /// 13 | /// 向下展开建议框 14 | /// 15 | [Description( "bottom" )] 16 | Bottom 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/MenuMode.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 菜单模式 5 | /// 6 | public enum MenuMode { 7 | /// 8 | /// 垂直 9 | /// 10 | [Description( "vertical" )] 11 | Vertical, 12 | /// 13 | /// 水平 14 | /// 15 | [Description( "horizontal" )] 16 | Horizontal, 17 | /// 18 | /// 内嵌 19 | /// 20 | [Description( "inline" )] 21 | Inline 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/MenuTheme.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 菜单主题 5 | /// 6 | public enum MenuTheme { 7 | /// 8 | /// 浅色 9 | /// 10 | [Description( "light" )] 11 | Light, 12 | /// 13 | /// 深色 14 | /// 15 | [Description( "dark" )] 16 | Dark 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/ModalAutofocus.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 对话框自动聚焦 5 | /// 6 | public enum ModalAutofocus { 7 | /// 8 | /// 聚集到确认按钮 9 | /// 10 | [Description( "ok" )] 11 | Ok, 12 | /// 13 | /// 聚集到取消按钮 14 | /// 15 | [Description( "cancel" )] 16 | Cancel, 17 | /// 18 | /// 自动聚焦 19 | /// 20 | [Description( "auto" )] 21 | Auto 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/PaginationSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 分页大小 5 | /// 6 | public enum PaginationSize { 7 | /// 8 | /// 默认尺寸 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// 小尺寸 14 | /// 15 | [Description( "small" )] 16 | Small 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/PopoverTrigger.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 气泡框触发行为 5 | /// 6 | public enum PopoverTrigger { 7 | /// 8 | /// 点击触发 9 | /// 10 | [Description( "click" )] 11 | Click, 12 | /// 13 | /// 获得焦点触发 14 | /// 15 | [Description( "focus" )] 16 | Focus, 17 | /// 18 | /// 移入触发 19 | /// 20 | [Description( "hover" )] 21 | Hover 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/ProgressStrokeLinecap.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 进度条端点形状 5 | /// 6 | public enum ProgressStrokeLinecap { 7 | /// 8 | /// 圆角边缘 9 | /// 10 | [Description( "round" )] 11 | Round, 12 | /// 13 | /// 方角边缘 14 | /// 15 | [Description( "square" )] 16 | Square 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/ProgressType.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 进度条类型 5 | /// 6 | public enum ProgressType { 7 | /// 8 | /// 进度条 9 | /// 10 | [Description( "line" )] 11 | Line, 12 | /// 13 | /// 进度圈 14 | /// 15 | [Description( "circle" )] 16 | Circle, 17 | /// 18 | /// 仪表盘 19 | /// 20 | [Description( "dashboard" )] 21 | Dashboard 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/RadioStyle.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 单选框风格 5 | /// 6 | public enum RadioStyle { 7 | /// 8 | /// 描边风格 9 | /// 10 | [Description( "outline" )] 11 | Outline, 12 | /// 13 | /// 填色风格 14 | /// 15 | [Description( "solid" )] 16 | Solid 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/RibbonPlacement.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 缎带徽标位置 5 | /// 6 | public enum RibbonPlacement { 7 | /// 8 | /// 起始位置 9 | /// 10 | [Description( "start" )] 11 | Start, 12 | /// 13 | /// 结束位置 14 | /// 15 | [Description( "end" )] 16 | End 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/SelectMode.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 选择模式 5 | /// 6 | public enum SelectMode { 7 | /// 8 | /// 默认 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// 多选 14 | /// 15 | [Description( "multiple" )] 16 | Multiple, 17 | /// 18 | /// 标签 19 | /// 20 | [Description( "tags" )] 21 | Tags 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/SiderTheme.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 侧边栏主题颜色 5 | /// 6 | public enum SiderTheme { 7 | /// 8 | /// 浅色 9 | /// 10 | [Description( "light" )] 11 | Light, 12 | /// 13 | /// 深色 14 | /// 15 | [Description( "dark" )] 16 | Dark 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/SkeletonElementShape.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 骨架屏元素形状 5 | /// 6 | public enum SkeletonElementShape { 7 | /// 8 | /// 圆形 9 | /// 10 | [Description( "circle" )] 11 | Circle, 12 | /// 13 | /// 方形 14 | /// 15 | [Description( "square" )] 16 | Square 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/SpaceDirection.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 间距方向 5 | /// 6 | public enum SpaceDirection { 7 | /// 8 | /// 水平方向 9 | /// 10 | [Description( "horizontal" )] 11 | Horizontal, 12 | /// 13 | /// 垂直方向 14 | /// 15 | [Description( "vertical" )] 16 | Vertical 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/SpaceSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 间距大小 5 | /// 6 | public enum SpaceSize { 7 | /// 8 | /// 小 9 | /// 10 | [Description( "small" )] 11 | Small, 12 | /// 13 | /// 中 14 | /// 15 | [Description( "middle" )] 16 | Middle, 17 | /// 18 | /// 大 19 | /// 20 | [Description( "large" )] 21 | Large 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/SpinSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 加载中组件大小 5 | /// 6 | public enum SpinSize { 7 | /// 8 | /// 默认 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// 小尺寸 14 | /// 15 | [Description( "small" )] 16 | Small, 17 | /// 18 | /// 大尺寸 19 | /// 20 | [Description( "large" )] 21 | Large 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/StepsDirection.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 步骤条方向 5 | /// 6 | public enum StepsDirection { 7 | /// 8 | /// 水平方向 9 | /// 10 | [Description( "horizontal" )] 11 | Horizontal, 12 | /// 13 | /// 垂直方向 14 | /// 15 | [Description( "vertical" )] 16 | Vertical 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/StepsLabelPlacement.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 步骤条标签位置 5 | /// 6 | public enum StepsLabelPlacement { 7 | /// 8 | /// 水平放图标右侧 9 | /// 10 | [Description( "horizontal" )] 11 | Horizontal, 12 | /// 13 | /// 垂直放图标下方 14 | /// 15 | [Description( "vertical" )] 16 | Vertical 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/StepsSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 步骤条大小 5 | /// 6 | public enum StepsSize { 7 | /// 8 | /// 默认尺寸 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// 小尺寸 14 | /// 15 | [Description( "small" )] 16 | Small 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/StepsType.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 步骤条类型 5 | /// 6 | public enum StepsType { 7 | /// 8 | /// 默认类型 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// 导航类型 14 | /// 15 | [Description( "navigation" )] 16 | Navigation 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/SwitchSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 开关大小 5 | /// 6 | public enum SwitchSize { 7 | /// 8 | /// 默认尺寸 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// 小尺寸 14 | /// 15 | [Description( "small" )] 16 | Small 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/TabSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 标签大小 5 | /// 6 | public enum TabSize { 7 | /// 8 | /// 默认 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// 小尺寸 14 | /// 15 | [Description( "small" )] 16 | Small, 17 | /// 18 | /// 大尺寸 19 | /// 20 | [Description( "large" )] 21 | Large 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/TabType.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 标签类型 5 | /// 6 | public enum TabType { 7 | /// 8 | /// 常规标签 9 | /// 10 | [Description( "line" )] 11 | Line, 12 | /// 13 | /// 卡片式标签 14 | /// 15 | [Description( "card" )] 16 | Card, 17 | /// 18 | /// 可关闭的卡片式标签 19 | /// 20 | [Description( "editable-card" )] 21 | EditableCard 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/TableColumnType.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 表格列类型 5 | /// 6 | public enum TableColumnType { 7 | /// 8 | /// 布尔 9 | /// 10 | Bool, 11 | /// 12 | /// 日期 13 | /// 14 | Date, 15 | /// 16 | /// 枚举 17 | /// 18 | Enum 19 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/TableLayout.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 表格布局 5 | /// 6 | public enum TableLayout { 7 | /// 8 | /// 自动布局 9 | /// 10 | [Description( "auto" )] 11 | Auto, 12 | /// 13 | /// 固定布局 14 | /// 15 | [Description( "fixed" )] 16 | Fixed 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/TablePaginationSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 表格分页大小 5 | /// 6 | public enum TablePaginationSize { 7 | /// 8 | /// 默认尺寸 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// 小尺寸 14 | /// 15 | [Description( "small" )] 16 | Small 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/TableSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 表格大小 5 | /// 6 | public enum TableSize { 7 | /// 8 | /// 默认尺寸 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// 中等尺寸 14 | /// 15 | [Description( "middle" )] 16 | Middle, 17 | /// 18 | /// 小尺寸 19 | /// 20 | [Description( "small" )] 21 | Small 22 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/TimelineItemPosition.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 时间轴节点位置 5 | /// 6 | public enum TimelineItemPosition { 7 | /// 8 | /// 左侧显示 9 | /// 10 | [Description( "left" )] 11 | Left, 12 | /// 13 | /// 右侧显示 14 | /// 15 | [Description( "right" )] 16 | Right 17 | } -------------------------------------------------------------------------------- /src/Util.Ui/Builders/ArticleBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Builders; 2 | 3 | /// 4 | /// article标签生成器 5 | /// 6 | public class ArticleBuilder : TagBuilder { 7 | /// 8 | /// 初始化article标签生成器 9 | /// 10 | public ArticleBuilder() : base( "article" ) { 11 | } 12 | } -------------------------------------------------------------------------------- /src/Util.Ui/Builders/CodeBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Builders; 2 | 3 | /// 4 | /// code标签生成器 5 | /// 6 | public class CodeBuilder : TagBuilder { 7 | /// 8 | /// 初始化code标签生成器 9 | /// 10 | public CodeBuilder() : base( "code" ) { 11 | } 12 | } -------------------------------------------------------------------------------- /src/Util.Ui/Builders/DelBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Builders; 2 | 3 | /// 4 | /// del标签生成器 5 | /// 6 | public class DelBuilder : TagBuilder { 7 | /// 8 | /// 初始化del标签生成器 9 | /// 10 | public DelBuilder() : base( "del" ) { 11 | } 12 | } -------------------------------------------------------------------------------- /src/Util.Ui/Builders/DivBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Builders; 2 | 3 | /// 4 | /// div生成器 5 | /// 6 | public class DivBuilder : TagBuilder { 7 | /// 8 | /// 初始化div生成器 9 | /// 10 | public DivBuilder() : base( "div" ) { 11 | } 12 | } -------------------------------------------------------------------------------- /src/Util.Ui/Builders/ItalicBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Builders; 2 | 3 | /// 4 | /// i标签生成器 5 | /// 6 | public class ItalicBuilder : TagBuilder { 7 | /// 8 | /// 初始化i标签生成器 9 | /// 10 | public ItalicBuilder() : base( "i" ) { 11 | } 12 | } -------------------------------------------------------------------------------- /src/Util.Ui/Builders/KbdBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Builders; 2 | 3 | /// 4 | /// kbd标签生成器 5 | /// 6 | public class KbdBuilder : TagBuilder { 7 | /// 8 | /// 初始化kbd标签生成器 9 | /// 10 | public KbdBuilder() : base( "kbd" ) { 11 | } 12 | } -------------------------------------------------------------------------------- /src/Util.Ui/Builders/LiBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Builders; 2 | 3 | /// 4 | /// li标签生成器 5 | /// 6 | public class LiBuilder : TagBuilder { 7 | /// 8 | /// 初始化li标签生成器 9 | /// 10 | public LiBuilder() : base( "li" ) { 11 | } 12 | } -------------------------------------------------------------------------------- /src/Util.Ui/Builders/MarkBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Builders; 2 | 3 | /// 4 | /// mark标签生成器 5 | /// 6 | public class MarkBuilder : TagBuilder { 7 | /// 8 | /// 初始化mark标签生成器 9 | /// 10 | public MarkBuilder() : base( "mark" ) { 11 | } 12 | } -------------------------------------------------------------------------------- /src/Util.Ui/Builders/PBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Builders; 2 | 3 | /// 4 | /// p标签生成器 5 | /// 6 | public class PBuilder : TagBuilder { 7 | /// 8 | /// 初始化p标签生成器 9 | /// 10 | public PBuilder() : base( "p" ) { 11 | } 12 | } -------------------------------------------------------------------------------- /src/Util.Ui/Builders/SpanBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Builders; 2 | 3 | /// 4 | /// span生成器 5 | /// 6 | public class SpanBuilder : TagBuilder { 7 | /// 8 | /// 初始化span生成器 9 | /// 10 | public SpanBuilder() : base( "span" ) { 11 | } 12 | } -------------------------------------------------------------------------------- /src/Util.Ui/Builders/StrongBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Builders; 2 | 3 | /// 4 | /// strong标签生成器 5 | /// 6 | public class StrongBuilder : TagBuilder { 7 | /// 8 | /// 初始化strong标签生成器 9 | /// 10 | public StrongBuilder() : base( "strong" ) { 11 | } 12 | } -------------------------------------------------------------------------------- /src/Util.Ui/Builders/UBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Builders; 2 | 3 | /// 4 | /// u标签生成器 5 | /// 6 | public class UBuilder : TagBuilder { 7 | /// 8 | /// 初始化u标签生成器 9 | /// 10 | public UBuilder() : base( "u" ) { 11 | } 12 | } -------------------------------------------------------------------------------- /src/Util.Ui/Builders/UlBuilder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Builders; 2 | 3 | /// 4 | /// ul标签生成器 5 | /// 6 | public class UlBuilder : TagBuilder { 7 | /// 8 | /// 初始化ul标签生成器 9 | /// 10 | public UlBuilder() : base( "ul" ) { 11 | } 12 | } -------------------------------------------------------------------------------- /src/Util.Ui/Expressions/IExpressionLoader.cs: -------------------------------------------------------------------------------- 1 | using Util.Ui.Configs; 2 | 3 | namespace Util.Ui.Expressions; 4 | 5 | /// 6 | /// 表达式加载器 7 | /// 8 | public interface IExpressionLoader { 9 | /// 10 | /// 加载模型表达式配置 11 | /// 12 | /// 配置 13 | /// 模型表达式属性名,默认值为for 14 | void Load( Config config, string expressionPropertyName = "for" ); 15 | } -------------------------------------------------------------------------------- /src/Util.Ui/Expressions/IExpressionResolver.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Expressions; 2 | 3 | /// 4 | /// 模型表达式解析器 5 | /// 6 | public interface IExpressionResolver { 7 | /// 8 | /// 解析 9 | /// 10 | /// 模型表达式 11 | ModelExpressionInfo Resolve( ModelExpression expression ); 12 | } -------------------------------------------------------------------------------- /src/Util.Ui/Razor/RazorOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Razor; 2 | 3 | /// 4 | /// Razor配置 5 | /// 6 | public class RazorOptions { 7 | /// 8 | /// 是否在Razor页面运行时自动生成html文件 9 | /// 10 | public bool IsGenerateHtml { get; set; } 11 | } -------------------------------------------------------------------------------- /src/Util.Ui/Renders/IRender.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Renders; 2 | 3 | /// 4 | /// 渲染器 5 | /// 6 | public interface IRender : IHtmlContent { 7 | /// 8 | /// 复制副本 9 | /// 10 | IHtmlContent Clone(); 11 | } -------------------------------------------------------------------------------- /src/Util.Validation/IValidation.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Validation; 2 | 3 | /// 4 | /// 验证操作 5 | /// 6 | public interface IValidation { 7 | /// 8 | /// 验证 9 | /// 10 | ValidationResultCollection Validate(); 11 | } -------------------------------------------------------------------------------- /src/Util.Validation/IValidationHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Validation; 2 | 3 | /// 4 | /// 验证处理器 5 | /// 6 | public interface IValidationHandler { 7 | /// 8 | /// 处理验证错误 9 | /// 10 | /// 验证结果集合 11 | void Handle( ValidationResultCollection results ); 12 | } -------------------------------------------------------------------------------- /src/Util.Validation/IValidationRule.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Validation; 2 | 3 | /// 4 | /// 验证规则 5 | /// 6 | public interface IValidationRule { 7 | /// 8 | /// 验证 9 | /// 10 | ValidationResult Validate(); 11 | } -------------------------------------------------------------------------------- /src/Util.Validation/NothingHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Validation; 2 | 3 | /// 4 | /// 验证失败,不做任何处理 5 | /// 6 | public class NothingHandler : IValidationHandler { 7 | /// 8 | /// 处理验证错误 9 | /// 10 | /// 验证结果集合 11 | public void Handle( ValidationResultCollection results ) { 12 | } 13 | } -------------------------------------------------------------------------------- /src/Util.Validation/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.Globalization; 6 | global using System.ComponentModel.DataAnnotations; -------------------------------------------------------------------------------- /src/Util.Validation/Validators/ValidatePattern.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Validation.Validators; 2 | 3 | /// 4 | /// 验证模式 5 | /// 6 | public static class ValidatePattern { 7 | /// 8 | /// 手机号验证正则表达式 9 | /// 10 | public static string MobilePhonePattern = "^1[0-9]{10}$"; 11 | /// 12 | /// 身份证验证正则表达式 13 | /// 14 | public static string IdCardPattern = @"(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)"; 15 | } -------------------------------------------------------------------------------- /test/Util.Aop.AspectCore.Tests/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Aop.AspectCore.Tests/Startup.cs -------------------------------------------------------------------------------- /test/Util.Application.EntityFrameworkCore.MySql.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Application.EntityFrameworkCore.MySql.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Application.EntityFrameworkCore.MySql.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft": "Trace" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "server=127.0.0.1;user=root;password=admin;database=Util.Application.EntityFrameworkCore.Test;port=3306;charset=utf8" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Application.EntityFrameworkCore.MySql.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "server=mysql.common;user=root;password=admin;database=Util.Application.EntityFrameworkCore.Test;port=3306;charset=utf8" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Application.EntityFrameworkCore.PostgreSql.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Application.EntityFrameworkCore.PostgreSql.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Application.EntityFrameworkCore.PostgreSql.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft": "Trace" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "server=127.0.0.1;User Id=admin;password=admin;database=Util.Application.EntityFrameworkCore.Test" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Application.EntityFrameworkCore.PostgreSql.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "server=postgresql.common;User Id=admin;password=admin;database=Util.Application.EntityFrameworkCore.Test" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Application.EntityFrameworkCore.SqlServer.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Application.EntityFrameworkCore.SqlServer.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Application.EntityFrameworkCore.SqlServer.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft": "Trace" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "Server=.\\sql2019;Database=Util.Application.EntityFrameworkCore.Test;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /test/Util.Application.EntityFrameworkCore.SqlServer.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "Server=192.168.31.123\\sql2019;Database=Util.Application.EntityFrameworkCore.Test;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Application.Tests/Dtos/TreeDto.cs: -------------------------------------------------------------------------------- 1 | using Util.Applications.Trees; 2 | 3 | namespace Util.Applications.Dtos { 4 | /// 5 | /// 树形参数 6 | /// 7 | public class TreeDto : TreeDtoBase { 8 | 9 | public string Text { get; set; } 10 | 11 | public override string GetText() { 12 | return Text; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/Util.Application.Tests/Repositories/ICustomerRepository.cs: -------------------------------------------------------------------------------- 1 | using Util.Applications.Models; 2 | using Util.Domain.Repositories; 3 | 4 | namespace Util.Applications.Repositories { 5 | /// 6 | /// 客户仓储 7 | /// 8 | public interface ICustomerRepository : IRepository { 9 | } 10 | } -------------------------------------------------------------------------------- /test/Util.Application.WebApi.MySql.Tests.Integration/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Util.Application.WebApi.MySql.Tests.Integration": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "https://localhost:65194;http://localhost:65195" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /test/Util.Application.WebApi.MySql.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Application.WebApi.MySql.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Application.WebApi.MySql.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft": "Trace" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "server=127.0.0.1;user=root;password=admin;database=Util.WebApi.Test;port=3306;charset=utf8" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Application.WebApi.MySql.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "server=mysql.common;user=root;password=admin;database=Util.WebApi.Test;port=3306;charset=utf8" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Application.WebApi.PostgreSql.Tests.Integration/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Util.Application.WebApi.PostgreSql.Tests.Integration": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "https://localhost:3603;http://localhost:3604" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /test/Util.Application.WebApi.PostgreSql.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Application.WebApi.PostgreSql.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Application.WebApi.PostgreSql.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft": "Trace" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "server=127.0.0.1;User Id=admin;password=admin;database=Util.WebApi.Test" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Application.WebApi.PostgreSql.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "server=postgresql.common;User Id=admin;password=admin;database=Util.WebApi.Test" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Application.WebApi.SqlServer.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Application.WebApi.SqlServer.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Application.WebApi.SqlServer.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft": "Trace" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "Server=.\\sql2019;Database=Util.WebApi.Test;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /test/Util.Application.WebApi.SqlServer.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "Server=192.168.31.123\\sql2019;Database=Util.WebApi.Test;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Application.WebApi.Tests.Integration/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Util.Application.WebApi.Tests.Integration": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "https://localhost:17185;http://localhost:17186" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /test/Util.Application.WebApi.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Application.WebApi.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Delete.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Delete.cs -------------------------------------------------------------------------------- /test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Get.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Get.cs -------------------------------------------------------------------------------- /test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Post.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Post.cs -------------------------------------------------------------------------------- /test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Put.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Put.cs -------------------------------------------------------------------------------- /test/Util.AspNetCore.Tests.Integration/Samples/Certificate/apiclient_cert.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.AspNetCore.Tests.Integration/Samples/Certificate/apiclient_cert.p12 -------------------------------------------------------------------------------- /test/Util.AspNetCore.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.AspNetCore.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Caching.EasyCaching.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Caching.EasyCaching.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Caching.EasyCaching.Tests.Integration/Tests/CacheManagerTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Caching.EasyCaching.Tests.Integration/Tests/CacheManagerTest.cs -------------------------------------------------------------------------------- /test/Util.Caching.EasyCaching.Tests.Integration/Tests/MemoryCacheManagerTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Caching.EasyCaching.Tests.Integration/Tests/MemoryCacheManagerTest.cs -------------------------------------------------------------------------------- /test/Util.Caching.EasyCaching.Tests.Integration/Tests/RedisCacheManagerTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Caching.EasyCaching.Tests.Integration/Tests/RedisCacheManagerTest.cs -------------------------------------------------------------------------------- /test/Util.Core.Tests.Integration/Samples/FileSample.txt: -------------------------------------------------------------------------------- 1 | test -------------------------------------------------------------------------------- /test/Util.Core.Tests.Integration/Samples/TestOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Tests.Samples; 2 | 3 | public class TestOptions { 4 | public int Code { get; set; } 5 | public string Name { get; set; } 6 | } -------------------------------------------------------------------------------- /test/Util.Core.Tests.Integration/Samples/version.xml: -------------------------------------------------------------------------------- 1 |  2 | 1 3 | 2 4 | 3 5 | -------------------------------------------------------------------------------- /test/Util.Core.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Test": { 3 | "Code": 1, 4 | "Name": "a" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Exists.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Exists.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Procedure.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Procedure.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Query.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Query.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Scalar.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Scalar.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Single.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Single.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.MySql.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.MySql.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.MySql.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft": "Trace" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "server=127.0.0.1;user=root;password=admin;database=Util.Data.Dapper.Test;port=3306;charset=utf8" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.Dapper.MySql.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "server=mysql.common;user=root;password=admin;database=Util.Data.Dapper.Test;port=3306;charset=utf8" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Exists.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Exists.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Procedure.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Procedure.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Query.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Query.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Scalar.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Scalar.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Single.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Single.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.PostgreSql.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.PostgreSql.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.PostgreSql.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft": "Trace" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "server=127.0.0.1;User Id=admin;password=admin;database=Util.Data.Dapper.Test" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.Dapper.PostgreSql.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "server=postgresql.common;User Id=admin;password=admin;database=Util.Data.Dapper.Test" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Exists.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Exists.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Procedure.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Procedure.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Query.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Query.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Scalar.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Scalar.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Single.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Single.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.SqlServer.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.SqlServer.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.SqlServer.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft": "Trace" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "Server=.\\sql2019;Database=Util.Data.Dapper.Test;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.Dapper.SqlServer.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "Server=192.168.31.123\\sql2019;Database=Util.Data.Dapper.Test;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.EntityFrameworkCore.MySql.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.EntityFrameworkCore.MySql.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Data.EntityFrameworkCore.MySql.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft": "Trace" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "server=127.0.0.1;user=root;password=admin;database=Util.Data.EntityFrameworkCore.Test;port=3306;charset=utf8" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.EntityFrameworkCore.MySql.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "server=mysql.common;user=root;password=admin;database=Util.Data.EntityFrameworkCore.Test;port=3306;charset=utf8" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.EntityFrameworkCore.Oracle.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.EntityFrameworkCore.Oracle.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Data.EntityFrameworkCore.Oracle.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft": "Trace" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "User Id=admin;Password=admin;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)));" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /test/Util.Data.EntityFrameworkCore.Oracle.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "User Id=TEST;Password=123456;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=gateway.docker.internal)(PORT=11521)))(CONNECT_DATA=(SERVICE_NAME=xe)))" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.EntityFrameworkCore.PostgreSql.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.EntityFrameworkCore.PostgreSql.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Data.EntityFrameworkCore.PostgreSql.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft": "Trace" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "server=127.0.0.1;User Id=admin;password=admin;database=Util.Data.EntityFrameworkCore.Test" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.EntityFrameworkCore.PostgreSql.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "server=postgresql.common;User Id=admin;password=admin;database=Util.Data.EntityFrameworkCore.Test" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.EntityFrameworkCore.SqlServer.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.EntityFrameworkCore.SqlServer.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Data.EntityFrameworkCore.SqlServer.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Information" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "Server=.\\sql2019;Database=Util.Data.EntityFrameworkCore.Test;uid=sa;pwd=sa;TrustServerCertificate=true" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.EntityFrameworkCore.SqlServer.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "Server=192.168.31.123\\sql2019;Database=Util.Data.EntityFrameworkCore.Test;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.EntityFrameworkCore.Sqlite.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.EntityFrameworkCore.Sqlite.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Data.EntityFrameworkCore.Sqlite.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft": "Trace" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "Filename=Util.Data.EntityFrameworkCore.Test.db" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.EntityFrameworkCore.Sqlite.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "Filename=Util.Data.EntityFrameworkCore.Test.db" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.Sql.Tests/Samples/TestParameter.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.Sql.Tests.Samples; 2 | 3 | /// 4 | /// 测试参数 5 | /// 6 | public class TestParameter { 7 | /// 8 | /// 编码 9 | /// 10 | public string Code { get; set; } 11 | } -------------------------------------------------------------------------------- /test/Util.Domain.Tests/Compare/ChangeValueTest.cs: -------------------------------------------------------------------------------- 1 | using Util.Domain.Compare; 2 | using Xunit; 3 | 4 | namespace Util.Domain.Tests.Compare; 5 | 6 | /// 7 | /// 变更值测试 8 | /// 9 | public class ChangeValueTest { 10 | /// 11 | /// 测试变更值输出结果 12 | /// 13 | [Fact] 14 | public void TestToString() { 15 | var result = new ChangeValue( "a", "b", "1", "2" ).ToString(); 16 | Assert.Equal( "a(b),原始值:1,新值:2", result ); 17 | } 18 | } -------------------------------------------------------------------------------- /test/Util.Domain.Tests/Samples/EnumSample.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace Util.Domain.Tests.Samples; 4 | 5 | /// 6 | /// 枚举测试样例 7 | /// 8 | public enum EnumSample { 9 | A = 1, 10 | [Description( "B2" )] 11 | B = 2, 12 | [Description( "C3" )] 13 | C = 3, 14 | [Description( "D4" )] 15 | D = 4, 16 | [Description( "E5" )] 17 | E = 5 18 | } -------------------------------------------------------------------------------- /test/Util.Events.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Events.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.FileStorage.Minio.Tests.Integration/Resources/a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.FileStorage.Minio.Tests.Integration/Resources/a.jpg -------------------------------------------------------------------------------- /test/Util.FileStorage.Minio.Tests.Integration/Resources/b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.FileStorage.Minio.Tests.Integration/Resources/b.jpg -------------------------------------------------------------------------------- /test/Util.FileStorage.Minio.Tests.Integration/Samples/TestSession.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Util.Sessions; 3 | 4 | namespace Util.FileStorage.Minio.Samples; 5 | 6 | /// 7 | /// 测试用户会话 8 | /// 9 | public class TestSession : ISession { 10 | public static Guid TestUserId = new ( "2af5e99e-391c-451b-9112-f7a3eb9b0a55" ); 11 | public bool IsAuthenticated => true; 12 | public string UserId => TestUserId.ToString(); 13 | } -------------------------------------------------------------------------------- /test/Util.FileStorage.Minio.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.FileStorage.Minio.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Generators.Razor.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Generators.Razor.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Generators.Razor.Tests.Integration/Templates/Test1/Parts/Test.Part.cshtml: -------------------------------------------------------------------------------- 1 | @model Util.Generators.Contexts.EntityContext 2 | 3 | @Model.Name,Test.Part -------------------------------------------------------------------------------- /test/Util.Generators.Razor.Tests.Integration/Templates/Test1/Template.cshtml: -------------------------------------------------------------------------------- 1 | @model Util.Generators.Contexts.EntityContext 2 | @{ 3 | Model.Output.Extension = ".cs"; 4 | } 5 | @Model.Name,World -------------------------------------------------------------------------------- /test/Util.Generators.Razor.Tests.Integration/Templates/Test1/Test2/Test.cshtml: -------------------------------------------------------------------------------- 1 | @using Util.Generators 2 | @model Util.Generators.Contexts.EntityContext 3 | 4 | @{ 5 | Model.Output.Extension = ".ts"; 6 | Model.Output.NamingConvention = NamingConvention.CamelCase; 7 | } 8 | 9 | @Model.Name,Test2 -------------------------------------------------------------------------------- /test/Util.Generators.Razor.Tests.Integration/Templates/Test1/Test2/TestPart.cshtml: -------------------------------------------------------------------------------- 1 | @model Util.Generators.Contexts.EntityContext 2 | 3 | @Model.Name,TestPart -------------------------------------------------------------------------------- /test/Util.Generators.Tests/Samples/TestExtend.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Generators.Tests.Samples { 2 | /// 3 | /// 测试扩展 4 | /// 5 | public class TestExtend { 6 | /// 7 | /// 标识 8 | /// 9 | public string Id { get; set; } 10 | /// 11 | /// 名称 12 | /// 13 | public string Name { get; set; } 14 | 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /test/Util.Images.Avatar.Tests.Integration/Fonts/STZHONGS.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Images.Avatar.Tests.Integration/Fonts/STZHONGS.TTF -------------------------------------------------------------------------------- /test/Util.Images.Avatar.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Images.Avatar.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Images.ImageSharp.Tests.Integration/Fonts/STZHONGS.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Images.ImageSharp.Tests.Integration/Fonts/STZHONGS.TTF -------------------------------------------------------------------------------- /test/Util.Images.ImageSharp.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Images.ImageSharp.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Localization.Resources/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.Localization; 2 | [assembly: ResourceLocation( "Resources2" )] -------------------------------------------------------------------------------- /test/Util.Localization.Resources/ResourceTypes/Resource101.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Localization.Resources.ResourceTypes; 2 | 3 | /// 4 | /// 资源类型101 5 | /// 6 | public class Resource101 { 7 | } -------------------------------------------------------------------------------- /test/Util.Localization.Resources/ResourceTypes/Resource102.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Localization.Resources.ResourceTypes; 2 | 3 | /// 4 | /// 资源类型102 5 | /// 6 | public class Resource102 { 7 | } -------------------------------------------------------------------------------- /test/Util.Localization.Resources/Resources2/ResourceTypes.Resource101.en-US.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello": "hi" 3 | } 4 | -------------------------------------------------------------------------------- /test/Util.Localization.Resources/Resources2/ResourceTypes.Resource101.zh-CN.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello": "哈楼" 3 | } 4 | -------------------------------------------------------------------------------- /test/Util.Localization.Resources/Resources2/ResourceTypes/Resource102.zh-CN.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello": "哈罗" 3 | } 4 | -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.Localization; 2 | [assembly: RootNamespace( "Util.Localization" )] -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Util.Localization.Tests.Integration": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "https://localhost:54279;http://localhost:54280" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/ResourceTypes/Resource1.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Localization.ResourceTypes; 2 | 3 | /// 4 | /// 资源类型1 5 | /// 6 | public class Resource1 { 7 | } -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/ResourceTypes/Resource2.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Localization.ResourceTypes; 2 | 3 | /// 4 | /// 资源类型2 5 | /// 6 | public class Resource2 { 7 | } -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/ResourceTypes/Resource3.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Localization.ResourceTypes; 2 | 3 | /// 4 | /// 资源类型3 5 | /// 6 | public class Resource3 { 7 | } -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/ResourceTypes/Resource4.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Localization.ResourceTypes; 2 | 3 | /// 4 | /// 资源类型4 5 | /// 6 | public class Resource4 { 7 | 8 | /// 9 | /// 资源类型41 - 测试内部类 10 | /// 11 | public class Resource41 { 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/ResourceTypes/Resource5.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Localization.ResourceTypes; 2 | 3 | /// 4 | /// 资源类型5 5 | /// 6 | public class Resource5 { 7 | } -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/ResourceTypes/Resource6.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Localization.ResourceTypes; 2 | 3 | /// 4 | /// 资源类型6 5 | /// 6 | public class Resource6 { 7 | } -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/Resources/ResourceTypes.Resource1.en-US.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello": "hi" 3 | } 4 | -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/Resources/ResourceTypes.Resource1.zh-CN.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello": "哈楼" 3 | } 4 | -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource2.en-US.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello": "hi" 3 | } 4 | -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource2.zh-CN.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello": "哈楼", 3 | "World": "世界", 4 | "Hello,{0},{1},World": "哈楼,{0},{1},世界" 5 | } 6 | -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource2.zh-Hans.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello": "哈哈", 3 | "World": "世界" 4 | } 5 | -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource2.zh.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello": "嘿嘿", 3 | "World": "世界" 4 | } 5 | -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource3.zh-Hans.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello": "哈哈", 3 | "World": "世界" 4 | } 5 | -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource4.Resource41.zh-CN.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello": "嘻嘻", 3 | "World": "世界" 4 | } 5 | -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource4.zh.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello": "嘿嘿", 3 | "World": "世界" 4 | } 5 | -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource5.zh-CN.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello": "哈楼", 3 | "World": "世界" 4 | } 5 | -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource5.zh-Hans.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello2": "哈楼2", 3 | "World2": "世界2" 4 | } -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource5.zh.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello3": "哈楼3", 3 | "World3": "世界3" 4 | } -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/Resources/zh.json: -------------------------------------------------------------------------------- 1 | { 2 | "Hello": "呜呜", 3 | "World": "世界" 4 | } 5 | -------------------------------------------------------------------------------- /test/Util.Localization.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Localization.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Logging.Serilog.Exceptionless.Tests.Integration/LogTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Serilog.Exceptionless.Tests.Integration/LogTest.cs -------------------------------------------------------------------------------- /test/Util.Logging.Serilog.Exceptionless.Tests.Integration/Samples/Product.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Logging.Tests.Samples; 2 | 3 | /// 4 | /// 产品 5 | /// 6 | public class Product { 7 | /// 8 | /// 产品编码 9 | /// 10 | public string Code { get; set; } 11 | /// 12 | /// 产品名称 13 | /// 14 | public string Name { get; set; } 15 | /// 16 | /// 价格 17 | /// 18 | public decimal Price { get; set; } 19 | } -------------------------------------------------------------------------------- /test/Util.Logging.Serilog.Exceptionless.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Serilog.Exceptionless.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Logging.Serilog.Exceptionless.Tests.Integration/appsettings.Production.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft": "Warning" 6 | } 7 | }, 8 | "Exceptionless": { 9 | "ApiKey": "0yYDCrbsgdGZX7PImygwk06KMTf5dNI5opsrKA6x", 10 | "ServerUrl": "http://exceptionless.common/", 11 | "QueueMaxAttempts": 1 12 | } 13 | } -------------------------------------------------------------------------------- /test/Util.Logging.Serilog.Exceptionless.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft": "Warning" 6 | } 7 | }, 8 | "Exceptionless": { 9 | "ApiKey": "0ntTeU4QFBKCm1FIM9sjr4NKaXkXTEBeRKch5tL9", 10 | "ServerUrl": "http://127.0.0.1:8095", 11 | "QueueMaxAttempts": 1 12 | } 13 | } -------------------------------------------------------------------------------- /test/Util.Logging.Serilog.Tests.Integration/LogTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Serilog.Tests.Integration/LogTest.cs -------------------------------------------------------------------------------- /test/Util.Logging.Serilog.Tests.Integration/Samples/Product.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Logging.Tests.Samples; 2 | 3 | /// 4 | /// 产品 5 | /// 6 | public class Product { 7 | /// 8 | /// 产品编码 9 | /// 10 | public string Code { get; set; } 11 | /// 12 | /// 产品名称 13 | /// 14 | public string Name { get; set; } 15 | /// 16 | /// 价格 17 | /// 18 | public decimal Price { get; set; } 19 | } -------------------------------------------------------------------------------- /test/Util.Logging.Serilog.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Serilog.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Logging.Tests/LogTest.Critical .cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Tests/LogTest.Critical .cs -------------------------------------------------------------------------------- /test/Util.Logging.Tests/LogTest.Debug .cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Tests/LogTest.Debug .cs -------------------------------------------------------------------------------- /test/Util.Logging.Tests/LogTest.Error .cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Tests/LogTest.Error .cs -------------------------------------------------------------------------------- /test/Util.Logging.Tests/LogTest.Information .cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Tests/LogTest.Information .cs -------------------------------------------------------------------------------- /test/Util.Logging.Tests/LogTest.Trace .cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Tests/LogTest.Trace .cs -------------------------------------------------------------------------------- /test/Util.Logging.Tests/LogTest.Warning .cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Tests/LogTest.Warning .cs -------------------------------------------------------------------------------- /test/Util.Logging.Tests/LogTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Tests/LogTest.cs -------------------------------------------------------------------------------- /test/Util.Logging.Tests/Samples/Product.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Logging.Tests.Samples; 2 | 3 | /// 4 | /// 产品 5 | /// 6 | public class Product { 7 | /// 8 | /// 产品编码 9 | /// 10 | public string Code { get; set; } 11 | /// 12 | /// 产品名称 13 | /// 14 | public string Name { get; set; } 15 | /// 16 | /// 价格 17 | /// 18 | public int Price { get; set; } 19 | } -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.Tests.Integration/Fixtures/GlobalCollection.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Microservices.Dapr.Tests.Fixtures; 2 | 3 | /// 4 | /// 全局测试集合 5 | /// 6 | [CollectionDefinition( "Global" )] 7 | public class GlobalCollection : ICollectionFixture { 8 | } -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.Tests.Integration/Resources/components/pubsub.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: dapr.io/v1alpha1 2 | kind: Component 3 | metadata: 4 | name: pubsub 5 | spec: 6 | type: pubsub.redis 7 | metadata: 8 | - name: redisHost 9 | value: localhost:6379 10 | - name: redisPassword 11 | value: "" 12 | -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.Tests.Integration/Resources/components/statestore.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: dapr.io/v1alpha1 2 | kind: Component 3 | metadata: 4 | name: statestore 5 | spec: 6 | type: state.redis 7 | metadata: 8 | - name: redisHost 9 | value: localhost:6379 10 | - name: redisPassword 11 | value: "" 12 | - name: actorStateStore 13 | value: "true" 14 | -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.Tests.Integration/Resources/configuration/config.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: dapr.io/v1alpha1 2 | kind: Configuration 3 | metadata: 4 | name: daprConfig 5 | spec: 6 | tracing: 7 | samplingRate: "1" 8 | zipkin: 9 | endpointAddress: http://localhost:9411/api/v2/spans -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Microservices.Dapr.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft": "Trace" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.Tests.Integration/clear.ps1: -------------------------------------------------------------------------------- 1 | Write-Host "Stop-Process -Name Util.Microservices.Dapr*" 2 | Stop-Process -Name "Util.Microservices.Dapr*" 3 | Write-Host "Stop-Process -Name dapr*" 4 | Stop-Process -Name "dapr*" 5 | Write-Host "Stop-Process -Name dotnet*" 6 | Stop-Process -Name "dotnet*" -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.WebApiSample/Controllers/Test1Controller.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Microservices.Dapr.WebApiSample/Controllers/Test1Controller.cs -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.WebApiSample/Controllers/Test2Controller.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Microservices.Dapr.WebApiSample/Controllers/Test2Controller.cs -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.WebApiSample/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Collections.Generic; 4 | global using System.Linq; 5 | global using System.Threading; 6 | global using Microsoft.Extensions.Logging; 7 | global using Microsoft.Extensions.DependencyInjection; 8 | global using Microsoft.Extensions.DependencyInjection.Extensions; 9 | global using Microsoft.AspNetCore.Mvc; 10 | global using Util; -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.WebApiSample/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft.AspNetCore": "Trace" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /test/Util.Microservices.Polly.Tests.Integration/PolicyTest.Retry.Async.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Microservices.Polly.Tests.Integration/PolicyTest.Retry.Async.cs -------------------------------------------------------------------------------- /test/Util.Microservices.Polly.Tests.Integration/PolicyTest.Retry.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Microservices.Polly.Tests.Integration/PolicyTest.Retry.cs -------------------------------------------------------------------------------- /test/Util.Microservices.Polly.Tests.Integration/PolicyTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Microservices.Polly.Tests.Integration/PolicyTest.cs -------------------------------------------------------------------------------- /test/Util.Microservices.Polly.Tests.Integration/Samples/SampleException.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Microservices.Polly.Tests.Samples; 2 | 3 | /// 4 | /// 样例异常 5 | /// 6 | public class SampleException : Exception { 7 | } -------------------------------------------------------------------------------- /test/Util.Microservices.Polly.Tests.Integration/Samples/SampleResult.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Microservices.Polly.Tests.Samples; 2 | 3 | /// 4 | /// 样例结果 5 | /// 6 | public class SampleResult { 7 | /// 8 | /// 结果 9 | /// 10 | public string Result { get; set; } 11 | } -------------------------------------------------------------------------------- /test/Util.Microservices.Polly.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Microservices.Polly.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.ObjectMapping.AutoMapper.Tests/ObjectMapperExtensionsTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.ObjectMapping.AutoMapper.Tests/ObjectMapperExtensionsTest.cs -------------------------------------------------------------------------------- /test/Util.ObjectMapping.AutoMapper.Tests/ObjectMapperTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.ObjectMapping.AutoMapper.Tests/ObjectMapperTest.cs -------------------------------------------------------------------------------- /test/Util.ObjectMapping.AutoMapper.Tests/Samples/EnumSample.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace Util.ObjectMapping.AutoMapper.Tests.Samples; 4 | 5 | /// 6 | /// 枚举测试样例 7 | /// 8 | public enum EnumSample { 9 | A = 1, 10 | [Description( "B2" )] 11 | B = 2, 12 | [Description( "C3" )] 13 | C = 3, 14 | [Description( "D4" )] 15 | D = 4, 16 | [Description( "E5" )] 17 | E = 5 18 | } -------------------------------------------------------------------------------- /test/Util.ObjectMapping.AutoMapper.Tests/Samples/Sample4.cs: -------------------------------------------------------------------------------- 1 | namespace Util.ObjectMapping.AutoMapper.Tests.Samples; 2 | 3 | /// 4 | /// 测试样例4 5 | /// 6 | public class Sample4 { 7 | /// 8 | /// string值 9 | /// 10 | public string StringValue { get; set; } 11 | } -------------------------------------------------------------------------------- /test/Util.ObjectMapping.AutoMapper.Tests/Samples/Sample5.cs: -------------------------------------------------------------------------------- 1 | namespace Util.ObjectMapping.AutoMapper.Tests.Samples; 2 | 3 | /// 4 | /// 样例5 5 | /// 6 | public class Sample5 { 7 | public string Name { get; set; } 8 | public Sample6 Sample61 { get; set; } 9 | } 10 | 11 | /// 12 | /// 样例转换5 13 | /// 14 | public class Sample5to { 15 | public string Name { get; set; } 16 | public Sample6to Sample61 { get; set; } 17 | } -------------------------------------------------------------------------------- /test/Util.ObjectMapping.AutoMapper.Tests/Samples/Sample6.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.ObjectMapping.AutoMapper.Tests/Samples/Sample6.cs -------------------------------------------------------------------------------- /test/Util.ObjectMapping.AutoMapper.Tests/Samples/Sample7.cs: -------------------------------------------------------------------------------- 1 | namespace Util.ObjectMapping.AutoMapper.Tests.Samples; 2 | 3 | /// 4 | /// 样例7 5 | /// 6 | public class Sample7 { 7 | public string Name { get; set; } 8 | public Sample5 Sample75 { get; set; } 9 | } 10 | 11 | /// 12 | /// 样例转换7 13 | /// 14 | public class Sample7to { 15 | public string Name { get; set; } 16 | public Sample5 Sample75 { get; set; } 17 | } -------------------------------------------------------------------------------- /test/Util.ObjectMapping.AutoMapper.Tests/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.ObjectMapping.AutoMapper.Tests/Startup.cs -------------------------------------------------------------------------------- /test/Util.Scheduling.Hangfire.Tests.Integration/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Util.Scheduling.Hangfire.Tests.Integration": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "https://localhost:63169;http://localhost:63170" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /test/Util.Scheduling.Hangfire.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Scheduling.Hangfire.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Scheduling.Quartz.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Scheduling.Quartz.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Scheduling.Quartz.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Information" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "Server=.\\sql2019;Database=Util.Scheduling.Quartz.Tests;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Scheduling.Quartz.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "Server=192.168.31.123\\sql2019;Database=Util.Scheduling.Quartz.Tests;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Templates.Handlebars.Tests.Integration/HandlebarsTemplateEngineTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Templates.Handlebars.Tests.Integration/HandlebarsTemplateEngineTest.cs -------------------------------------------------------------------------------- /test/Util.Templates.Handlebars.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Templates.Handlebars.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Templates.Razor.Tests.Integration/RazorTemplateEngineTest.Path.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Templates.Razor.Tests.Integration/RazorTemplateEngineTest.Path.cs -------------------------------------------------------------------------------- /test/Util.Templates.Razor.Tests.Integration/RazorTemplateEngineTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Templates.Razor.Tests.Integration/RazorTemplateEngineTest.cs -------------------------------------------------------------------------------- /test/Util.Templates.Razor.Tests.Integration/Samples/Templates/Child/Child2/TestChildTemplate2.cshtml: -------------------------------------------------------------------------------- 1 | @using Util.Templates.Razor.Tests.Integration.Samples.Models 2 | @model TestModel3 3 | @Model.Name -------------------------------------------------------------------------------- /test/Util.Templates.Razor.Tests.Integration/Samples/Templates/Child/TestChildTemplate.cshtml: -------------------------------------------------------------------------------- 1 | @using Util.Templates.Razor.Tests.Integration.Samples.Models 2 | @model TestModel2 3 | @Model.Name,@Html.PartialAsync( "~/Samples/Templates/Child/Child2/TestChildTemplate2.cshtml",Model.Model3 ) -------------------------------------------------------------------------------- /test/Util.Templates.Razor.Tests.Integration/Samples/Templates/TestTemplate.cshtml: -------------------------------------------------------------------------------- 1 | @using Util.Templates.Razor.Tests.Integration.Samples.Models 2 | @model TestModel 3 | hello,@Model.Name -------------------------------------------------------------------------------- /test/Util.Templates.Razor.Tests.Integration/Samples/Templates/TestTemplate2.cshtml: -------------------------------------------------------------------------------- 1 | @using Util.Templates.Razor.Tests.Integration.Samples.Models 2 | @model TestModel 3 | @Model.Name,@await Html.PartialAsync( "~/Samples/Templates/Child/TestChildTemplate.cshtml",Model.Model2 ) -------------------------------------------------------------------------------- /test/Util.Templates.Razor.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Templates.Razor.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.TestShare/Events/TestEvent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Util.Events; 3 | 4 | namespace Util.Tests.Events; 5 | 6 | /// 7 | /// 测试事件 8 | /// 9 | public class TestEvent : IEvent { 10 | public Guid Id { get; set; } 11 | public string Name { get; set; } 12 | } -------------------------------------------------------------------------------- /test/Util.TestShare/Infrastructure/WebApiResult.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Tests.Infrastructure; 2 | 3 | /// 4 | /// Web Api操作结果 5 | /// 6 | public class WebApiResult { 7 | /// 8 | /// 状态码 9 | /// 10 | public string Code { get; set; } 11 | /// 12 | /// 消息 13 | /// 14 | public string Message { get; set; } 15 | /// 16 | /// 数据 17 | /// 18 | public T Data { get; set; } 19 | } -------------------------------------------------------------------------------- /test/Util.TestShare/Models/ProductEnum.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Tests.Models; 2 | 3 | /// 4 | /// 用于测试枚举扩展属性 5 | /// 6 | public enum ProductEnum { 7 | Hello, 8 | World 9 | } -------------------------------------------------------------------------------- /test/Util.TestShare/Models/ProductItem.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Tests.Models; 2 | 3 | /// 4 | /// 用于测试扩展属性 5 | /// 6 | public class ProductItem { 7 | /// 8 | /// 编码 9 | /// 10 | public int Code { get; set; } 11 | /// 12 | /// 名称 13 | /// 14 | public string Name { get; set; } 15 | /// 16 | /// 枚举 17 | /// 18 | public ProductEnum EnumValue { get; set; } 19 | } -------------------------------------------------------------------------------- /test/Util.TestShare/Repositories/ICustomerRepository.cs: -------------------------------------------------------------------------------- 1 | using Util.Domain.Repositories; 2 | using Util.Tests.Models; 3 | 4 | namespace Util.Tests.Repositories; 5 | 6 | /// 7 | /// 客户仓储 8 | /// 9 | public interface ICustomerRepository : IRepository { 10 | } -------------------------------------------------------------------------------- /test/Util.TestShare/Repositories/IOperationLogRepository.cs: -------------------------------------------------------------------------------- 1 | using Util.Domain.Repositories; 2 | using Util.Tests.Models; 3 | 4 | namespace Util.Tests.Repositories; 5 | 6 | /// 7 | /// 操作日志仓储 8 | /// 9 | public interface IOperationLogRepository : IRepository { 10 | } -------------------------------------------------------------------------------- /test/Util.TestShare/Repositories/IOrderRepository.cs: -------------------------------------------------------------------------------- 1 | using Util.Domain.Repositories; 2 | using Util.Tests.Models; 3 | 4 | namespace Util.Tests.Repositories; 5 | 6 | /// 7 | /// 订单仓储 8 | /// 9 | public interface IOrderRepository : IRepository { 10 | } -------------------------------------------------------------------------------- /test/Util.TestShare/Repositories/IPostRepository.cs: -------------------------------------------------------------------------------- 1 | using Util.Domain.Repositories; 2 | using Util.Tests.Models; 3 | 4 | namespace Util.Tests.Repositories; 5 | 6 | /// 7 | /// 贴子仓储 8 | /// 9 | public interface IPostRepository : IRepository { 10 | } -------------------------------------------------------------------------------- /test/Util.TestShare/Repositories/IProductRepository.cs: -------------------------------------------------------------------------------- 1 | using Util.Domain.Repositories; 2 | using Util.Tests.Models; 3 | 4 | namespace Util.Tests.Repositories; 5 | 6 | /// 7 | /// 产品仓储 8 | /// 9 | public interface IProductRepository : IRepository { 10 | /// 11 | /// 更新产品 12 | /// 13 | /// 产品 14 | public void UpdateProduct( Product product ); 15 | } -------------------------------------------------------------------------------- /test/Util.TestShare/Repositories/IResourceRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using System; 3 | using Util.Domain.Trees; 4 | using Util.Tests.Models; 5 | 6 | namespace Util.Tests.Repositories; 7 | 8 | /// 9 | /// 资源仓储 10 | /// 11 | public interface IResourceRepository : ITreeRepository { 12 | /// 13 | /// 生成排序号 14 | /// 15 | /// 父标识 16 | Task GenerateSortIdAsync( Guid? parentId ); 17 | } -------------------------------------------------------------------------------- /test/Util.TestShare/Repositories/ITagRepository.cs: -------------------------------------------------------------------------------- 1 | using Util.Domain.Repositories; 2 | using Util.Tests.Models; 3 | 4 | namespace Util.Tests.Repositories; 5 | 6 | /// 7 | /// 标签仓储 8 | /// 9 | public interface ITagRepository : IRepository { 10 | } -------------------------------------------------------------------------------- /test/Util.TestShare/Services/ICustomerQueryService.cs: -------------------------------------------------------------------------------- 1 | using Util.Applications; 2 | using Util.Tests.Dtos; 3 | using Util.Tests.Queries; 4 | 5 | namespace Util.Tests.Services; 6 | 7 | /// 8 | /// 客户查询服务 9 | /// 10 | public interface ICustomerQueryService : IQueryService { 11 | } -------------------------------------------------------------------------------- /test/Util.TestShare/Services/ICustomerService.cs: -------------------------------------------------------------------------------- 1 | using Util.Applications; 2 | using Util.Tests.Dtos; 3 | using Util.Tests.Queries; 4 | 5 | namespace Util.Tests.Services; 6 | 7 | /// 8 | /// 客户服务 9 | /// 10 | public interface ICustomerService : ICrudService { 11 | } -------------------------------------------------------------------------------- /test/Util.TestShare/Services/IProductService.cs: -------------------------------------------------------------------------------- 1 | using Util.Applications; 2 | using Util.Tests.Dtos; 3 | using Util.Tests.Queries; 4 | 5 | namespace Util.Tests.Services; 6 | 7 | /// 8 | /// 产品服务 9 | /// 10 | public interface IProductService : ICrudService { 11 | } -------------------------------------------------------------------------------- /test/Util.TestShare/Services/IResourceService.cs: -------------------------------------------------------------------------------- 1 | using Util.Applications.Trees; 2 | using Util.Tests.Dtos; 3 | using Util.Tests.Queries; 4 | 5 | namespace Util.Tests.Services; 6 | 7 | /// 8 | /// 资源服务 9 | /// 10 | public interface IResourceService : ITreeService { 11 | } -------------------------------------------------------------------------------- /test/Util.TestShare/UnitOfWorks/ITestUnitOfWork.cs: -------------------------------------------------------------------------------- 1 | using Util.Data; 2 | 3 | namespace Util.Tests.UnitOfWorks; 4 | 5 | /// 6 | /// 工作单元 7 | /// 8 | public interface ITestUnitOfWork : IUnitOfWork { 9 | } -------------------------------------------------------------------------------- /test/Util.Ui.NgAlain.Tests/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Ui.NgAlain.Tests/Startup.cs -------------------------------------------------------------------------------- /test/Util.Ui.NgZorro.Tests/Samples/TreeDto.cs: -------------------------------------------------------------------------------- 1 | using Util.Applications.Trees; 2 | 3 | namespace Util.Ui.NgZorro.Tests.Samples { 4 | /// 5 | /// 树形参数 6 | /// 7 | public class TreeDto : TreeDtoBase { 8 | public string Text { get; set; } 9 | 10 | public override string GetText() { 11 | return Text; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/Util.Ui.NgZorro.Tests/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Ui.NgZorro.Tests/Startup.cs -------------------------------------------------------------------------------- /test/Util.Validation.Tests/Samples/Sample2.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace Util.Validation.Tests.Samples; 4 | 5 | /// 6 | /// 验证样例2 7 | /// 8 | public class Sample2 { 9 | /// 10 | /// 验证身份证 11 | /// 12 | [IdCard] 13 | public string IdCard { get; set; } 14 | } -------------------------------------------------------------------------------- /test/Util.Validation.Tests/Samples/Sample3.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace Util.Validation.Tests.Samples; 4 | 5 | /// 6 | /// 验证样例3 7 | /// 8 | public class Sample3 { 9 | /// 10 | /// 验证身份证 11 | /// 12 | [IdCard( ErrorMessage = "IdCard" )] 13 | public string IdCard { get; set; } 14 | } -------------------------------------------------------------------------------- /test/Util.Validation.Tests/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Validation.Tests/Startup.cs --------------------------------------------------------------------------------