├── .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 │ ├── AopOptions.cs │ ├── AppBuilderExtensions.cs │ ├── ExceptionExtensions.cs │ ├── IAopProxy.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 │ │ ├── ErrorLogFilterAttribute.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 │ └── 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 │ ├── 08-Util.AspNetCore.csproj │ ├── AppBuilderExtensions.cs │ ├── AspNetCore │ │ └── IJsonSerializerOptionsFactory.cs │ ├── Helpers │ │ ├── Ip.cs │ │ └── Web.cs │ ├── IdentityExtensions.cs │ ├── Infrastructure │ │ └── AspNetCoreServiceRegistrar.cs │ ├── Security │ │ ├── AclAttribute.cs │ │ ├── AclOptions.cs │ │ ├── Authorization │ │ │ ├── AclFilter.cs │ │ │ ├── AclHandler.cs │ │ │ ├── AclMiddlewareResultHandler.cs │ │ │ ├── AclPolicyHelper.cs │ │ │ ├── AclPolicyProvider.cs │ │ │ ├── AclRequirement.cs │ │ │ ├── IUnauthorizedResultFactory.cs │ │ │ └── UnauthorizedResultFactory.cs │ │ └── Encryptors │ │ │ └── DataProtectionEncryptor.cs │ ├── Sessions │ │ ├── SessionExtensions.cs │ │ └── UserSession.cs │ ├── Usings.cs │ └── WebApplicationBuilderExtensions.cs ├── Util.Caching.EasyCaching │ ├── 02-Util.Caching.EasyCaching.csproj │ ├── AppBuilderExtensions.cs │ ├── CacheKeyGenerator.cs │ ├── CacheManager.cs │ ├── CacheProviderKey.cs │ ├── CachingOptions.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 │ ├── NullCache.cs │ ├── RedisCacheAttribute.cs │ └── Usings.cs ├── Util.Core │ ├── 01-Util.Core.csproj │ ├── Applications │ │ └── StateCode.cs │ ├── CommonExtensions.cs │ ├── Configs │ │ ├── AppBuilder.cs │ │ └── IAppBuilder.cs │ ├── ConvertExtensions.cs │ ├── Data │ │ ├── IDataKey.cs │ │ └── Operator.cs │ ├── DateTimeExtensions.cs │ ├── Dates │ │ ├── AppBuilderExtensions.cs │ │ └── TimeOptions.cs │ ├── Dependency │ │ ├── Container.cs │ │ ├── IScopeDependency.cs │ │ ├── ISingletonDependency.cs │ │ ├── ITransientDependency.cs │ │ └── IocAttribute.cs │ ├── DictionaryExtensions.cs │ ├── DisposeAction.cs │ ├── Domain │ │ ├── IDelete.cs │ │ ├── IKey.cs │ │ └── IVersion.cs │ ├── Exceptions │ │ ├── ConcurrencyException.cs │ │ └── Warning.cs │ ├── ExpressionExtensions.cs │ ├── Expressions │ │ ├── ParameterRebinder.cs │ │ └── PredicateExpressionBuilder.cs │ ├── FormatExtensions.cs │ ├── Helpers │ │ ├── CommandLine.cs │ │ ├── Common.cs │ │ ├── Config.cs │ │ ├── Const.cs │ │ ├── Convert.cs │ │ ├── Culture.cs │ │ ├── Enum.cs │ │ ├── Environment.cs │ │ ├── File.cs │ │ ├── FileWatcher.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 │ ├── IHostBuilderExtensions.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 │ │ ├── EnumJsonConverter.cs │ │ ├── EnumJsonConverterFactory.cs │ │ ├── LongJsonConverter.cs │ │ ├── NullableDateTimeJsonConverter.cs │ │ ├── NullableLongJsonConverter.cs │ │ ├── UtcDateTimeJsonConverter.cs │ │ └── UtcNullableDateTimeJsonConverter.cs │ ├── Ui │ │ ├── HtmlAttribute.cs │ │ └── ModelAttribute.cs │ ├── Usings.cs │ └── ValidationExtensions.cs ├── Util.Data.Abstractions │ ├── 06-Util.Data.Abstractions.csproj │ ├── ConnectionStringCollection.cs │ ├── ConnectionStringNameAttribute.cs │ ├── Filters │ │ └── IFilterOperation.cs │ ├── ICondition.cs │ ├── IUnitOfWork.cs │ ├── IUnitOfWorkActionManager.cs │ ├── NullUnitOfWorkActionManager.cs │ ├── PageList.cs │ ├── Queries │ │ ├── IPage.cs │ │ ├── ITrack.cs │ │ ├── Pager.cs │ │ └── QueryParameter.cs │ ├── StoreExtensions.cs │ ├── Stores │ │ ├── IQueryStore.cs │ │ └── IStore.cs │ ├── Trees │ │ ├── ITreeQueryParameter.cs │ │ └── TreeQueryParameter.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 │ ├── QueryableExtensions.cs │ ├── Trees │ │ └── TreeCondition.cs │ ├── UnitOfWorkActionManager.cs │ └── Usings.cs ├── Util.Data.Dapper.All │ ├── 06-Util.Data.Dapper.All.csproj │ ├── 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.Oracle │ ├── 05-Util.Data.Dapper.Oracle.csproj │ ├── Sql │ │ ├── AppBuilderExtensions.cs │ │ ├── Builders │ │ │ ├── OracleColumnCache.cs │ │ │ ├── OracleDialect.cs │ │ │ ├── OracleExistsSqlBuilder.cs │ │ │ ├── OracleParameterManager.cs │ │ │ └── OracleSqlBuilder.cs │ │ ├── OracleDatabaseFactory.cs │ │ ├── OracleSqlExecutor.cs │ │ ├── OracleSqlExecutorBase.cs │ │ ├── OracleSqlQuery.cs │ │ └── OracleSqlQueryBase.cs │ ├── TypeHandlers │ │ └── GuidTypeHandler.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 │ ├── OracleEntityFrameworkCoreOptions.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 │ │ └── TenantFilter.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 │ │ └── IDomainEventManager.cs │ ├── Extending │ │ ├── ExtraProperty.cs │ │ ├── ExtraPropertyDictionary.cs │ │ └── IExtraProperties.cs │ ├── ExtraPropertyDictionaryExtensions.cs │ ├── ITreeRepositoryExtensions.cs │ ├── ListCompareExtensions.cs │ ├── Properties │ │ ├── DomainResource.Designer.cs │ │ └── DomainResource.resx │ ├── Repositories │ │ ├── IQueryRepository.cs │ │ └── IRepository.cs │ ├── Services │ │ ├── DomainServiceBase.cs │ │ ├── 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 │ ├── EventBusExtensions.cs │ ├── IEvent.cs │ ├── IEventBus.cs │ ├── IEventHandler.cs │ ├── IIntegrationEvent.cs │ ├── IIntegrationEventBus.cs │ ├── ILocalEventBus.cs │ ├── IntegrationEvent.cs │ ├── NullEventBus.cs │ └── Usings.cs ├── Util.Events.MediatR │ ├── 03-Util.Events.MediatR.csproj │ ├── AppBuilderExtensions.cs │ ├── EventBase.cs │ ├── EventHandlerBase.cs │ ├── Infrastructure │ │ ├── MediatREventBusServiceRegistrar.cs │ │ └── ServiceRegistrarConfigExtensions.cs │ ├── MediatREventBus.cs │ ├── MediatROptions.cs │ └── Usings.cs ├── Util.Events │ ├── 02-Util.Events.csproj │ ├── EventHandlerBase.cs │ ├── ILocalEventHandler.cs │ ├── Infrastructure │ │ ├── LocalEventBusServiceRegistrar.cs │ │ └── ServiceRegistrarConfigExtensions.cs │ ├── LocalEventBus.cs │ ├── Properties │ │ ├── EventBusResource.Designer.cs │ │ └── EventBusResource.resx │ └── Usings.cs ├── Util.FileStorage.Abstractions │ ├── 01-Util.FileStorage.Abstractions.csproj │ ├── DeleteFileArgs.cs │ ├── DirectUploadParam.cs │ ├── FileExistsArgs.cs │ ├── FileResult.cs │ ├── FileSize.cs │ ├── FileSizeUnit.cs │ ├── FileStorageArgs.cs │ ├── FileStorageInfo.cs │ ├── GenerateDownloadUrlArgs.cs │ ├── GenerateTempDownloadUrlArgs.cs │ ├── GenerateUploadUrlArgs.cs │ ├── GetFileStreamArgs.cs │ ├── IBucketNameProcessor.cs │ ├── IBucketNameProcessorFactory.cs │ ├── IFileExtensionInspector.cs │ ├── IFileNameFilter.cs │ ├── IFileNameProcessor.cs │ ├── IFileNameProcessorFactory.cs │ ├── IFileStore.cs │ ├── ILocalFileStore.cs │ ├── ProcessedName.cs │ ├── SaveFileArgs.cs │ ├── SaveFileByUrlArgs.cs │ └── Usings.cs ├── Util.FileStorage.Aliyun │ ├── 04-Util.FileStorage.Aliyun.csproj │ ├── AliyunFileStore.cs │ ├── AliyunOssConfigProvider.cs │ ├── AliyunOssOptions.cs │ ├── AppBuilderExtensions.cs │ ├── CreateBucketArgs.cs │ ├── DirectUploadData.cs │ ├── IAliyunOssConfigProvider.cs │ ├── IAliyunOssFileStore.cs │ └── Usings.cs ├── Util.FileStorage.All │ ├── 05-Util.FileStorage.All.csproj │ ├── FileStoreFactory.cs │ ├── IFileStoreFactory.cs │ └── Usings.cs ├── Util.FileStorage.Minio │ ├── 03-Util.FileStorage.Minio.csproj │ ├── AppBuilderExtensions.cs │ ├── IMinioConfigProvider.cs │ ├── MinioConfigProvider.cs │ ├── MinioFileStore.cs │ ├── MinioOptions.cs │ └── Usings.cs ├── Util.FileStorage │ ├── 02-Util.FileStorage.csproj │ ├── AppBuilderExtensions.cs │ ├── BucketNameProcessor.cs │ ├── BucketNameProcessorFactory.cs │ ├── FileNameFilter.cs │ ├── FileNameProcessor.cs │ ├── FileNameProcessorFactory.cs │ ├── FileStoreExtensions.cs │ ├── FileValidation.cs │ ├── Local │ │ ├── ILocalStoreConfigProvider.cs │ │ ├── LocalFileStore.cs │ │ ├── LocalStoreConfigProvider.cs │ │ └── LocalStoreOptions.cs │ ├── Signatures │ │ └── FileExtensionInspector.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.Http │ ├── 07-Util.Http.csproj │ ├── Helpers │ │ └── Http.cs │ ├── Http │ │ ├── FileData.cs │ │ ├── HttpClientService.cs │ │ ├── HttpContentType.cs │ │ ├── HttpRequest.cs │ │ ├── HttpResponseMessageExtensions.cs │ │ ├── IHttpClient.cs │ │ └── IHttpRequest.cs │ └── Usings.cs ├── Util.IdGenerator │ ├── 10-Util.IdGenerator.csproj │ ├── Helpers │ │ ├── Id.IdGenerator.cs │ │ ├── Id.Nanoid.cs │ │ └── Id.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 │ ├── ImageSharpExtensions.cs │ ├── ImageWrapper.cs │ └── Usings.cs ├── Util.Localization │ ├── 09-Util.Localization.csproj │ ├── AppBuilderExtensions.cs │ ├── Base │ │ └── StringLocalizerBase.cs │ ├── Caching │ │ └── CacheHelper.cs │ ├── Json │ │ ├── IPathResolver.cs │ │ ├── JsonStringLocalizer.cs │ │ ├── JsonStringLocalizerFactory.cs │ │ ├── JsonStringLocalizerLoggerExtensions.cs │ │ └── PathResolver.cs │ ├── JsonLocalizationOptions.cs │ ├── LocalizationOptions.cs │ ├── LocalizedTypeAttribute.cs │ ├── NullStringLocalizer.cs │ ├── Store │ │ ├── ILocalizedManager.cs │ │ ├── ILocalizedStore.cs │ │ ├── LocalizedManager.cs │ │ ├── StoreStringLocalizer.cs │ │ ├── StoreStringLocalizerFactory.cs │ │ └── StoreStringLocalizerLoggerExtensions.cs │ ├── StringLocalizer.cs │ └── Usings.cs ├── Util.Logging.Serilog.Exceptionless │ ├── 03-Util.Logging.Serilog.Exceptionless.csproj │ ├── AppBuilderExtensions.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 │ ├── CloudEventHeadersMiddlewareExtensions.cs │ ├── CommandLines │ │ ├── DaprRunCommand.cs │ │ └── DaprStopCommand.cs │ ├── DaprHelper.cs │ ├── DaprMicroserviceClient.cs │ ├── DaprMicroserviceClientFactory.cs │ ├── DaprOptions.cs │ ├── Events │ │ ├── CloudEvent.cs │ │ ├── CloudEventHeadersMiddleware.cs │ │ ├── DaprEventBus.cs │ │ ├── DaprIntegrationEventBus.cs │ │ ├── EventLogPubsubCallback.cs │ │ ├── Filters │ │ │ ├── SubscriptionErroLogFilterAttribute.cs │ │ │ ├── SubscriptionExceptionHandlerAttribute.cs │ │ │ └── SubscriptionFilterAttribute.cs │ │ ├── GetAppIdService.cs │ │ ├── IGetAppId.cs │ │ ├── IntegrationEventCount.cs │ │ ├── IntegrationEventLogStore.cs │ │ ├── IntegrationEventManager.cs │ │ ├── NullPubsubCallback.cs │ │ ├── PubsubResult.cs │ │ └── TopicAttribute.cs │ ├── IntegrationEventControllerBase.cs │ ├── MicroserviceClientFactoryExtensions.cs │ ├── PubsubOptions.cs │ ├── ServiceInvocationOptions.cs │ ├── ServiceInvocations │ │ ├── DaprServiceInvocation.cs │ │ ├── DaprServiceInvocationBase.cs │ │ ├── RequestFilterBase.cs │ │ ├── ResponseFilterBase.cs │ │ └── ServiceInvocationArgument.cs │ ├── StateConditionExtensions.cs │ ├── StateManagements │ │ ├── DaprStateManager.cs │ │ ├── DaprStateManagerBase.Query.cs │ │ ├── DaprStateManagerBase.cs │ │ ├── DaprStateManagerOfT.cs │ │ ├── IKeyGenerator.cs │ │ ├── KeyGenerator.cs │ │ └── Queries │ │ │ ├── Conditions │ │ │ ├── AndCondition.cs │ │ │ ├── EqualCondition.cs │ │ │ ├── InCondition.cs │ │ │ └── OrCondition.cs │ │ │ ├── OrderByItem.cs │ │ │ ├── StateFilter.cs │ │ │ ├── StatePage.cs │ │ │ ├── StateQuery.cs │ │ │ ├── StateQueryHelper.cs │ │ │ └── StateSort.cs │ ├── StateManagerExtensions.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 │ ├── Events │ │ ├── EventState.cs │ │ ├── IIntegrationEventLogStore.cs │ │ ├── IIntegrationEventManager.cs │ │ ├── IPubsubCallback.cs │ │ ├── IntegrationEventLog.cs │ │ ├── PubsubArgument.cs │ │ ├── SubscriptionLog.cs │ │ ├── SubscriptionRetryLog.cs │ │ └── SubscriptionState.cs │ ├── IDataType.cs │ ├── IETag.cs │ ├── IMicroserviceClient.cs │ ├── IMicroserviceClientFactory.cs │ ├── IRequestFilter.cs │ ├── IResponseFilter.cs │ ├── IServiceInvocation.cs │ ├── IServiceInvocationBase.cs │ ├── IStateCondition.cs │ ├── IStateManager.cs │ ├── IStateManagerBase.cs │ ├── PubsubNameAttribute.cs │ ├── RequestContext.cs │ ├── ResponseContext.cs │ ├── ServiceResult.cs │ ├── ServiceState.cs │ ├── StateBase.cs │ ├── TopicNameAttribute.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.QrCode.ZXing │ ├── 03-Util.QrCode.ZXing.csproj │ ├── ErrorCorrectionLevel.cs │ ├── IQrCodeService.cs │ ├── QrSize.cs │ ├── Usings.cs │ └── ZXing │ │ └── ZXingQrCodeService.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 │ │ │ ├── DefaultPermissionManager.cs │ │ │ └── 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.Tenants.Abstractions │ ├── 01-Util.Tenants.Abstractions.csproj │ ├── IDomainTenantResolver.cs │ ├── ISwitchTenantManager.cs │ ├── ITenant.cs │ ├── ITenantManager.cs │ ├── ITenantStore.cs │ ├── IViewAllTenantManager.cs │ ├── NullTenantManager.cs │ ├── NullTenantStore.cs │ ├── TenantInfo.cs │ └── Usings.cs ├── Util.Tenants │ ├── 02-Util.Tenants.csproj │ ├── AppBuilderExtensions.cs │ ├── ITenantResolver.cs │ ├── Managements │ │ ├── SwitchTenantManager.cs │ │ ├── TenantManager.cs │ │ └── ViewAllTenantManager.cs │ ├── Middlewares │ │ └── TenantMiddleware.cs │ ├── Resolvers │ │ ├── CookieTenantResolver.cs │ │ ├── DefaultTenantResolver.cs │ │ ├── DomainTenantResolver.cs │ │ ├── DomainTenantResolverHelper.cs │ │ ├── HeaderTenantResolver.cs │ │ ├── ITenantDomainStore.cs │ │ ├── Internal │ │ │ └── DomainTenantResolver.cs │ │ ├── NullTenantDomainStore.cs │ │ ├── QueryStringTenantResolver.cs │ │ └── TenantResolverBase.cs │ ├── TenantMiddlewareExtensions.cs │ ├── TenantOptions.cs │ ├── TenantResolverCollection.cs │ └── Usings.cs ├── Util.Ui.Angular │ ├── 02-Util.Ui.Angular.csproj │ ├── Builders │ │ └── AngularTagBuilder.cs │ ├── Configs │ │ └── AngularConst.cs │ ├── Enums │ │ └── QueryParamsHandling.cs │ ├── Extensions │ │ └── TagBuilderExtensions.cs │ ├── TagHelpers │ │ └── AngularTagHelperBase.cs │ └── Usings.cs ├── Util.Ui.NgAlain │ ├── 04-Util.Ui.NgAlain.csproj │ ├── Components │ │ ├── Ellipsis │ │ │ ├── Builders │ │ │ │ └── EllipsisBuilder.cs │ │ │ ├── EllipsisTagHelper.cs │ │ │ ├── Helpers │ │ │ │ └── EllipsisExpressionLoader.cs │ │ │ └── Renders │ │ │ │ └── EllipsisRender.cs │ │ ├── FooterToolbars │ │ │ ├── Builders │ │ │ │ └── FooterToolbarBuilder.cs │ │ │ ├── FooterToolbarTagHelper.cs │ │ │ └── Renders │ │ │ │ └── FooterToolbarRender.cs │ │ ├── I18n │ │ │ ├── Builders │ │ │ │ └── I18nBuilder.cs │ │ │ ├── I18nTagHelper.cs │ │ │ └── Renders │ │ │ │ └── I18nRender.cs │ │ ├── PageHeaders │ │ │ ├── Builders │ │ │ │ └── PageHeaderBuilder.cs │ │ │ ├── PageHeaderTagHelper.cs │ │ │ └── Renders │ │ │ │ └── PageHeaderRender.cs │ │ ├── Sg │ │ │ ├── Builders │ │ │ │ ├── SgBuilder.cs │ │ │ │ └── SgContainerBuilder.cs │ │ │ ├── Renders │ │ │ │ ├── SgContainerRender.cs │ │ │ │ └── SgRender.cs │ │ │ ├── SgContainerTagHelper.cs │ │ │ └── SgTagHelper.cs │ │ ├── Sv │ │ │ ├── Builders │ │ │ │ ├── SvBuilder.cs │ │ │ │ ├── SvContainerBuilder.cs │ │ │ │ ├── SvTitleBuilder.cs │ │ │ │ └── SvValueBuilder.cs │ │ │ ├── Helpers │ │ │ │ └── SvExpressionLoader.cs │ │ │ ├── Renders │ │ │ │ ├── SvContainerRender.cs │ │ │ │ ├── SvRender.cs │ │ │ │ ├── SvTitleRender.cs │ │ │ │ └── SvValueRender.cs │ │ │ ├── SvContainerTagHelper.cs │ │ │ ├── SvTagHelper.cs │ │ │ ├── SvTitleTagHelper.cs │ │ │ └── SvValueTagHelper.cs │ │ └── Tinymce │ │ │ ├── Builders │ │ │ └── TinymceBuilder.cs │ │ │ ├── Renders │ │ │ └── TinymceRender.cs │ │ │ └── TinymceTagHelper.cs │ ├── Enums │ │ ├── SvLayout.cs │ │ ├── SvSize.cs │ │ ├── SvType.cs │ │ ├── SvValueSize.cs │ │ └── 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 │ │ │ │ ├── AutocompleteExpressionLoader.cs │ │ │ │ └── AutocompleteService.cs │ │ │ └── Renders │ │ │ │ ├── AutoOptionGroupRender.cs │ │ │ │ ├── AutoOptionRender.cs │ │ │ │ └── AutocompleteRender.cs │ │ ├── Avatars │ │ │ ├── AvatarGroupTagHelper.cs │ │ │ ├── AvatarTagHelper.cs │ │ │ ├── Builders │ │ │ │ ├── AvatarBuilder.cs │ │ │ │ └── AvatarGroupBuilder.cs │ │ │ └── Renders │ │ │ │ ├── AvatarGroupRender.cs │ │ │ │ └── AvatarRender.cs │ │ ├── BackTops │ │ │ ├── BackTopTagHelper.cs │ │ │ ├── Builders │ │ │ │ └── BackTopBuilder.cs │ │ │ └── Renders │ │ │ │ └── BackTopRender.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 │ │ │ ├── DatePickerTagHelperBase.cs │ │ │ ├── FormContainerTagHelperBase.cs │ │ │ ├── FormControlBuilderBase.cs │ │ │ ├── FormControlContainerTagHelperBase.cs │ │ │ ├── FormControlRenderBase.cs │ │ │ ├── FormControlTagHelperBase.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 │ │ │ ├── ATagHelper.cs │ │ │ ├── Builders │ │ │ │ ├── ABuilder.cs │ │ │ │ ├── ButtonBuilder.cs │ │ │ │ └── ButtonGroupBuilder.cs │ │ │ ├── ButtonGroupTagHelper.cs │ │ │ ├── ButtonTagHelper.cs │ │ │ └── Renders │ │ │ │ ├── ARender.cs │ │ │ │ ├── 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 │ │ │ │ └── CarouselContentBuilder.cs │ │ │ ├── CarouselContentTagHelper.cs │ │ │ ├── CarouselTagHelper.cs │ │ │ └── Renders │ │ │ │ ├── CarouselContentRender.cs │ │ │ │ └── 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 │ │ ├── ColorPickers │ │ │ ├── Builders │ │ │ │ ├── ColorBlockBuilder.cs │ │ │ │ └── ColorPickerBuilder.cs │ │ │ ├── ColorBlockTagHelper.cs │ │ │ ├── ColorPickerTagHelper.cs │ │ │ └── Renders │ │ │ │ ├── ColorBlockRender.cs │ │ │ │ └── ColorPickerRender.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 │ │ │ │ └── RouterOutletBuilder.cs │ │ │ ├── ContainerTagHelper.cs │ │ │ ├── Renders │ │ │ │ ├── ContainerRender.cs │ │ │ │ └── RouterOutletRender.cs │ │ │ └── RouterOutletTagHelper.cs │ │ ├── DatePickers │ │ │ ├── Builders │ │ │ │ ├── DatePickerBuilder.cs │ │ │ │ └── RangePickerBuilder.cs │ │ │ ├── DatePickerTagHelper.cs │ │ │ ├── Helpers │ │ │ │ ├── RangePickerExpressionLoader.cs │ │ │ │ └── RangePickerService.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 │ │ │ │ ├── DrawerContentBuilder.cs │ │ │ │ └── DrawerFooterBuilder.cs │ │ │ ├── Configs │ │ │ │ └── DrawerShareConfig.cs │ │ │ ├── DrawerContentTagHelper.cs │ │ │ ├── DrawerFooterTagHelper.cs │ │ │ ├── DrawerTagHelper.cs │ │ │ ├── Helpers │ │ │ │ └── DrawerService.cs │ │ │ └── Renders │ │ │ │ ├── DrawerContentRender.cs │ │ │ │ ├── DrawerFooterRender.cs │ │ │ │ └── DrawerRender.cs │ │ ├── Dropdowns │ │ │ ├── Builders │ │ │ │ └── DropdownMenuBuilder.cs │ │ │ ├── Configs │ │ │ │ └── DropdownMenuShareConfig.cs │ │ │ ├── DropdownMenuTagHelper.cs │ │ │ ├── Helpers │ │ │ │ └── DropdownMenuService.cs │ │ │ └── Renders │ │ │ │ └── DropdownMenuRender.cs │ │ ├── Empties │ │ │ ├── Builders │ │ │ │ └── EmptyBuilder.cs │ │ │ ├── EmptyTagHelper.cs │ │ │ └── Renders │ │ │ │ └── EmptyRender.cs │ │ ├── Flex │ │ │ ├── Builders │ │ │ │ └── FlexBuilder.cs │ │ │ ├── FlexTagHelper.cs │ │ │ └── Renders │ │ │ │ └── FlexRender.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 │ │ │ └── SearchFormTagHelper.cs │ │ ├── Grids │ │ │ ├── Builders │ │ │ │ ├── ColumnBuilder.cs │ │ │ │ └── RowBuilder.cs │ │ │ ├── ColumnTagHelper.cs │ │ │ ├── Helpers │ │ │ │ ├── ColumnModel.cs │ │ │ │ ├── ColumnService.cs │ │ │ │ └── GridModel.cs │ │ │ ├── Renders │ │ │ │ ├── ColumnRender.cs │ │ │ │ └── RowRender.cs │ │ │ └── RowTagHelper.cs │ │ ├── HashCodes │ │ │ ├── Builders │ │ │ │ └── HashCodeBuilder.cs │ │ │ ├── HashCodeTagHelper.cs │ │ │ └── Renders │ │ │ │ └── HashCodeRender.cs │ │ ├── Icons │ │ │ ├── Builders │ │ │ │ └── IconBuilder.cs │ │ │ ├── IconTagHelper.cs │ │ │ └── Renders │ │ │ │ └── IconRender.cs │ │ ├── Images │ │ │ ├── Builders │ │ │ │ ├── ImageBuilder.cs │ │ │ │ └── ImageGroupBuilder.cs │ │ │ ├── ImageGroupTagHelper.cs │ │ │ ├── ImageTagHelper.cs │ │ │ └── Renders │ │ │ │ ├── ImageGroupRender.cs │ │ │ │ └── ImageRender.cs │ │ ├── InputNumbers │ │ │ ├── Builders │ │ │ │ ├── InputNumberBuilder.cs │ │ │ │ └── InputNumberGroupBuilder.cs │ │ │ ├── InputNumberGroupTagHelper.cs │ │ │ ├── InputNumberTagHelper.cs │ │ │ └── Renders │ │ │ │ ├── InputNumberGroupRender.cs │ │ │ │ └── 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 │ │ ├── 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 │ │ │ │ ├── ModalContentBuilder.cs │ │ │ │ ├── ModalFooterBuilder.cs │ │ │ │ └── ModalTitleBuilder.cs │ │ │ ├── Configs │ │ │ │ └── ModalShareConfig.cs │ │ │ ├── Helpers │ │ │ │ └── ModalService.cs │ │ │ ├── ModalContentTagHelper.cs │ │ │ ├── ModalFooterTagHelper.cs │ │ │ ├── ModalTagHelper.cs │ │ │ ├── ModalTitleTagHelper.cs │ │ │ └── Renders │ │ │ │ ├── ModalContentRender.cs │ │ │ │ ├── ModalFooterRender.cs │ │ │ │ ├── ModalRender.cs │ │ │ │ └── ModalTitleRender.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 │ │ ├── QrCodes │ │ │ ├── Builders │ │ │ │ └── QrCodeBuilder.cs │ │ │ ├── QrCodeTagHelper.cs │ │ │ └── Renders │ │ │ │ └── QrCodeRender.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 │ │ ├── Resizable │ │ │ └── Builders │ │ │ │ └── ResizeHandleBuilder.cs │ │ ├── Results │ │ │ ├── Builders │ │ │ │ ├── ResultBuilder.cs │ │ │ │ ├── ResultContentBuilder.cs │ │ │ │ ├── ResultExtraBuilder.cs │ │ │ │ ├── ResultIconBuilder.cs │ │ │ │ ├── ResultSubtitleBuilder.cs │ │ │ │ └── ResultTitleBuilder.cs │ │ │ ├── Renders │ │ │ │ ├── ResultContentRender.cs │ │ │ │ ├── ResultExtraRender.cs │ │ │ │ ├── ResultIconRender.cs │ │ │ │ ├── ResultRender.cs │ │ │ │ ├── ResultSubtitleRender.cs │ │ │ │ └── ResultTitleRender.cs │ │ │ ├── ResultContentTagHelper.cs │ │ │ ├── ResultExtraTagHelper.cs │ │ │ ├── ResultIconTagHelper.cs │ │ │ ├── ResultSubtitleTagHelper.cs │ │ │ ├── ResultTagHelper.cs │ │ │ └── ResultTitleTagHelper.cs │ │ ├── Segments │ │ │ ├── Builders │ │ │ │ └── SegmentedBuilder.cs │ │ │ ├── Helpers │ │ │ │ ├── SegmentedExpressionLoader.cs │ │ │ │ └── SegmentedService.cs │ │ │ ├── Renders │ │ │ │ └── SegmentedRender.cs │ │ │ └── SegmentedTagHelper.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 │ │ │ │ │ ├── TableColumnDateContent.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 │ │ │ │ ├── TableSettingsBuilder.cs │ │ │ │ └── TotalTemplateBuilder.cs │ │ │ ├── Configs │ │ │ │ ├── TableBodyShareConfig.cs │ │ │ │ ├── TableColumnDisplayShareConfig.cs │ │ │ │ ├── TableColumnShareConfig.cs │ │ │ │ ├── TableHeadColumnShareConfig.cs │ │ │ │ ├── TableHeadShareConfig.cs │ │ │ │ └── TableShareConfig.cs │ │ │ ├── FilterTriggerTagHelper.cs │ │ │ ├── Helpers │ │ │ │ ├── ColumnInfo.cs │ │ │ │ ├── CustomColumn.cs │ │ │ │ ├── HeadColumnInfo.cs │ │ │ │ ├── ScrollInfo.cs │ │ │ │ ├── TableAutoCreateService.cs │ │ │ │ ├── TableBodyAutoCreateService.cs │ │ │ │ ├── TableBodyService.cs │ │ │ │ ├── TableColumnControlService.cs │ │ │ │ ├── TableColumnDisplayService.cs │ │ │ │ ├── TableColumnExpressionLoader.cs │ │ │ │ ├── TableColumnService.cs │ │ │ │ ├── TableHeadAutoCreateService.cs │ │ │ │ ├── TableHeadColumnExpressionLoader.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 │ │ │ │ ├── TagContainerTagBuilder.cs │ │ │ │ └── TagTagBuilder.cs │ │ │ ├── Helpers │ │ │ │ └── TagExpressionLoader.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 │ │ │ ├── Configs │ │ │ │ └── TreeNodeToggleShareConfig.cs │ │ │ ├── Helpers │ │ │ │ └── TreeNodeToggleService.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 │ │ │ ├── Builders │ │ │ │ ├── ArticleBuilder.cs │ │ │ │ ├── DivBuilder.cs │ │ │ │ ├── HBuilder.cs │ │ │ │ ├── PBuilder.cs │ │ │ │ └── SpanBuilder.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 │ │ └── WaterMarks │ │ │ ├── Builders │ │ │ └── WaterMarkBuilder.cs │ │ │ ├── Helpers │ │ │ └── FontType.cs │ │ │ ├── Renders │ │ │ └── WaterMarkRender.cs │ │ │ └── WaterMarkTagHelper.cs │ ├── Configs │ │ ├── ConfigExtensions.cs │ │ ├── I18nKeys.cs │ │ └── NgZorroOptionsService.cs │ ├── Controllers │ │ ├── GenerateHtmlController.cs │ │ ├── NgZorroTreeControllerBase.cs │ │ └── NgZorroTreeQueryControllerBase.cs │ ├── Data │ │ ├── NgZorroTreeNode.cs │ │ ├── NgZorroTreeResult.cs │ │ └── TreeResult.cs │ ├── Directives │ │ ├── Popconfirms │ │ │ └── TagBuilderExtensions.cs │ │ ├── Popover │ │ │ └── TagBuilderExtensions.cs │ │ └── Tooltips │ │ │ └── TagBuilderExtensions.cs │ ├── Enums │ │ ├── AlertType.cs │ │ ├── Align.cs │ │ ├── AnchorDirection.cs │ │ ├── AntDesignColor.cs │ │ ├── AntDesignIcon.cs │ │ ├── AvatarShape.cs │ │ ├── AvatarSize.cs │ │ ├── BadgeSize.cs │ │ ├── BadgeStatus.cs │ │ ├── ButtonShape.cs │ │ ├── ButtonSize.cs │ │ ├── ButtonType.cs │ │ ├── CalendarMode.cs │ │ ├── CardSize.cs │ │ ├── CardType.cs │ │ ├── CarouselDotPosition.cs │ │ ├── CarouselEffect.cs │ │ ├── CascaderExpandTrigger.cs │ │ ├── CascaderTriggerAction.cs │ │ ├── CollapseIconPosition.cs │ │ ├── ColorPickerFormat.cs │ │ ├── ColorPickerTrigger.cs │ │ ├── CursorType.cs │ │ ├── DataType.cs │ │ ├── DatePickerMode.cs │ │ ├── DatePickerPlacement.cs │ │ ├── DescriptionDataType.cs │ │ ├── DescriptionLayout.cs │ │ ├── DescriptionSize.cs │ │ ├── Direction.cs │ │ ├── DividerOrientation.cs │ │ ├── DividerType.cs │ │ ├── DrawerPlacement.cs │ │ ├── DrawerSize.cs │ │ ├── DropdownMenuPlacement.cs │ │ ├── DropdownMenuTrigger.cs │ │ ├── FlexAlign.cs │ │ ├── FlexGap.cs │ │ ├── FlexJustify.cs │ │ ├── FlexWrap.cs │ │ ├── FormControlStatus.cs │ │ ├── FormLayout.cs │ │ ├── GridSize.cs │ │ ├── HashCodeMode.cs │ │ ├── HashCodeType.cs │ │ ├── IconTheme.cs │ │ ├── InputMode.cs │ │ ├── InputNumberPrecisionMode.cs │ │ ├── InputSize.cs │ │ ├── InputType.cs │ │ ├── Justify.cs │ │ ├── LabelAlign.cs │ │ ├── ListItemLayout.cs │ │ ├── ListSize.cs │ │ ├── MentionPlacement.cs │ │ ├── MenuMode.cs │ │ ├── MenuTheme.cs │ │ ├── ModalAutofocus.cs │ │ ├── PaginationSize.cs │ │ ├── PopconfirmAutoFocus.cs │ │ ├── PopconfirmPlacement.cs │ │ ├── PopconfirmTrigger.cs │ │ ├── PopoverPlacement.cs │ │ ├── PopoverTrigger.cs │ │ ├── ProgressGapPosition.cs │ │ ├── ProgressSize.cs │ │ ├── ProgressStatus.cs │ │ ├── ProgressStrokeLinecap.cs │ │ ├── ProgressType.cs │ │ ├── QrCodeCorrectionLevel.cs │ │ ├── QrCodeStatus.cs │ │ ├── RadioStyle.cs │ │ ├── ResizeDirection.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 │ │ ├── TagColor.cs │ │ ├── TagMode.cs │ │ ├── TextType.cs │ │ ├── TimelineItemPosition.cs │ │ ├── TimelineMode.cs │ │ ├── TooltipPlacement.cs │ │ ├── TooltipTrigger.cs │ │ ├── TreeSelectPlacement.cs │ │ ├── UploadListType.cs │ │ └── ValidateStatus.cs │ ├── Expressions │ │ ├── NgZorroExpressionLoaderBase.cs │ │ └── NgZorroExpressionResolver.cs │ ├── Extensions │ │ └── TagBuilderExtensions.cs │ ├── NgZorroOptions.cs │ ├── Services │ │ └── NgZorroTreeQueryAction.cs │ ├── TreeResultExtensions.cs │ ├── Usings.cs │ ├── WatchHostedService.cs │ └── WebApplicationExtensions.cs ├── Util.Ui │ ├── 01-Util.Ui.csproj │ ├── Builders │ │ ├── CodeBuilder.cs │ │ ├── DelBuilder.cs │ │ ├── EmptyContainerTagBuilder.cs │ │ ├── EmptyTagBuilder.cs │ │ ├── ItalicBuilder.cs │ │ ├── KbdBuilder.cs │ │ ├── LiBuilder.cs │ │ ├── MarkBuilder.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 │ ├── Helpers │ │ └── SizeHelper.cs │ ├── ModelName.cs │ ├── Razor │ │ ├── GenerateHtmlFilter.cs │ │ ├── HtmlGenerator.cs │ │ ├── IRazorWatchService.cs │ │ ├── Internal │ │ │ ├── IPartViewPathFinder.cs │ │ │ ├── IPartViewPathResolver.cs │ │ │ ├── IViewContentResolver.cs │ │ │ ├── MainView.cs │ │ │ ├── PartView.cs │ │ │ ├── PartViewPathFinder.cs │ │ │ ├── PartViewPathResolver.cs │ │ │ ├── RazorView.cs │ │ │ ├── RazorViewContainer.cs │ │ │ └── ViewContentResolver.cs │ │ ├── PageRouteConvention.cs │ │ ├── RazorOptions.cs │ │ ├── RazorPageExtensions.cs │ │ └── RazorWatchService.cs │ ├── Renders │ │ ├── IRender.cs │ │ └── RenderBase.cs │ ├── Sources │ │ └── Spa │ │ │ ├── AngularCli │ │ │ ├── AngularCliBuilder.cs │ │ │ ├── AngularCliMiddleware.cs │ │ │ └── AngularCliMiddlewareExtensions.cs │ │ │ ├── DefaultSpaBuilder.cs │ │ │ ├── ISpaBuilder.cs │ │ │ ├── Npm │ │ │ └── NodeScriptRunner.cs │ │ │ ├── Prerendering │ │ │ └── ISpaPrerendererBuilder.cs │ │ │ ├── Proxying │ │ │ ├── ConditionalProxyMiddleware.cs │ │ │ ├── SpaProxy.cs │ │ │ └── SpaProxyingExtensions.cs │ │ │ ├── SpaApplicationBuilderExtensions.cs │ │ │ ├── SpaDefaultPageMiddleware.cs │ │ │ ├── SpaOptions.cs │ │ │ ├── StaticFiles │ │ │ ├── DefaultSpaStaticFileProvider.cs │ │ │ ├── ISpaStaticFileProvider.cs │ │ │ ├── SpaStaticFilesExtensions.cs │ │ │ └── SpaStaticFilesOptions.cs │ │ │ └── Util │ │ │ ├── EventedStreamReader.cs │ │ │ ├── EventedStreamStringReader.cs │ │ │ ├── LoggerFinder.cs │ │ │ ├── TaskTimeoutExtensions.cs │ │ │ └── TcpPortFinder.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 ├── Authorization │ └── AclTest.cs ├── Controllers │ ├── Test1Controller.cs │ ├── Test2Controller.cs │ ├── Test3Controller.cs │ ├── Test4Controller.cs │ ├── Test5Controller.cs │ └── Test6Controller.cs ├── Helpers │ └── WebTest.cs ├── Http │ ├── HttpClientServiceTest.Delete.cs │ ├── HttpClientServiceTest.Get.cs │ ├── HttpClientServiceTest.Post.cs │ └── HttpClientServiceTest.Put.cs ├── Resources │ └── a.png ├── 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 ├── appsettings.Development.json └── appsettings.json ├── 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 │ ├── TestOptions.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.Oracle.Tests.Integration ├── SqlExecutor │ ├── OracleExecutorTest.Execute.cs │ ├── OracleExecutorTest.Id.cs │ ├── OracleExecutorTest.Insert.cs │ ├── OracleExecutorTest.Param.cs │ ├── OracleExecutorTest.Transaction.cs │ └── OracleExecutorTest.cs ├── SqlQuery │ ├── OracleQueryTest.Exists.cs │ ├── OracleQueryTest.Query.cs │ ├── OracleQueryTest.Scalar.cs │ ├── OracleQueryTest.Single.cs │ └── OracleQueryTest.cs ├── Startup.cs ├── Usings.cs ├── Util.Data.Dapper.Oracle.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 ├── 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 ├── 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 ├── 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 │ ├── Test.cs │ └── TestFilter.cs ├── Startup.cs ├── Tests │ ├── CustomerRepositoryTest.cs │ ├── EntityEventsTest.cs │ ├── MigrationFileServiceTest.cs │ ├── OperationLogRepositoryTest.cs │ ├── OrderRepositoryTest.cs │ ├── PostRepositoryTest.cs │ ├── ProductRepositoryTest.Queryable.cs │ ├── ProductRepositoryTest.cs │ └── TagRepositoryTest.cs ├── Util.Data.EntityFrameworkCore.SqlServer.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Data.EntityFrameworkCore.Sqlite.Tests.Integration ├── 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.MediatR.Tests.Integration ├── Local │ ├── EventBusExtensionsTest.cs │ ├── EventBusTest.cs │ └── LocalEventBusTest.cs ├── Samples │ ├── EventHandlerSample.cs │ └── EventSample.cs ├── Startup.cs ├── Usings.cs └── Util.Events.MediatR.Tests.Integration.csproj ├── 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.Aliyun.Tests.Integration ├── Resources │ └── a.png ├── Samples │ └── TestSession.cs ├── Startup.cs ├── Tests │ └── AliyunFileStoreTest.cs ├── Usings.cs ├── Util.FileStorage.Aliyun.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.FileStorage.Minio.Tests.Integration ├── Resources │ ├── a.jpg │ └── b.jpg ├── Samples │ └── TestSession.cs ├── Startup.cs ├── Tests │ ├── MinioFileStoreTest.cs │ └── UserTimeFileNameProcessorTest.cs ├── Util.FileStorage.Minio.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.FileStorage.Tests.Integration ├── Resources │ ├── 1.jpg │ ├── 2.png │ ├── 3.gif │ ├── 4.pdf │ ├── 5.docx │ ├── 6.xlsx │ ├── a.jpg │ ├── a.pdf │ ├── b.png │ └── c.gif ├── Samples │ ├── TestFileNameProcessor.cs │ └── TestFileNameProcessorFactory.cs ├── Startup.cs ├── Tests │ ├── FileExtensionInspectorTest.cs │ ├── FileResultTest.cs │ ├── FileSizeTest.cs │ ├── FileValidationTest.cs │ └── LocalFileStoreTest.cs ├── Usings.cs ├── Util.FileStorage.Tests.Integration.csproj ├── appsettings.Development.json └── appsettings.json ├── 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.IdGenerator.Tests ├── Helpers │ └── IdTest.cs ├── Usings.cs └── Util.IdGenerator.Tests.csproj ├── 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.Localization.Tests ├── Samples │ └── TestType.cs ├── Tests │ ├── LocalizedManagerTest.cs │ ├── StoreStringLocalizerFactoryTest.cs │ └── StoreStringLocalizerTest.cs ├── Usings.cs └── Util.Localization.Tests.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.PubsubSample ├── Controllers │ └── IntegrationEventController.cs ├── Dtos │ ├── CustomerDto.cs │ └── CustomerQuery.cs ├── Events │ └── TestEvent.cs ├── Program.cs ├── Properties │ └── launchSettings.json ├── Usings.cs ├── Util.Microservices.Dapr.PubsubSample.csproj ├── appsettings.Development.json └── appsettings.json ├── Util.Microservices.Dapr.Tests.Integration ├── Events │ ├── PubsubTest.EventLog.cs │ └── PubsubTest.cs ├── Fixtures │ ├── GlobalCollection.cs │ └── GlobalFixture.cs ├── Resources │ ├── components │ │ ├── event-state-store.yaml │ │ ├── pubsub.yaml │ │ ├── resiliency-pubsub.yaml │ │ └── statestore.yaml │ └── configuration │ │ └── config.yaml ├── Samples │ ├── CustomerDto.cs │ ├── CustomerQuery.cs │ ├── MockHttpContextAccessor.cs │ ├── ProductDto.cs │ ├── ProductQuery.cs │ └── TestEvent.cs ├── ServiceInvocations │ ├── HttpClientTest.cs │ ├── ServiceInvocationTest.NotUnPack.cs │ ├── ServiceInvocationTest.UnPack.cs │ └── ServiceInvocationTest.cs ├── Startup.cs ├── StateManagements │ ├── StateManagerOfTTest.cs │ ├── StateManagerTest.Query.cs │ └── StateManagerTest.cs ├── Usings.cs ├── Util.Microservices.Dapr.Tests.Integration.csproj ├── appsettings.Development.json ├── appsettings.json └── clear.ps1 ├── Util.Microservices.Dapr.Tests ├── CommandLines │ └── DaprRunCommandTest.cs ├── Events │ └── IntegrationEventManagerTest.cs ├── Samples │ ├── CustomerDto.cs │ ├── CustomerQuery.cs │ ├── ProductDto.cs │ └── TestEvent.cs ├── StateManagements │ └── Queries │ │ ├── Conditions │ │ ├── AndConditionTest.cs │ │ ├── EqualConditionTest.cs │ │ ├── InConditionTest.cs │ │ └── OrConditionTest.cs │ │ ├── StateConditionExtensionsTest.cs │ │ ├── StateFilterTest.cs │ │ ├── StateQueryTest.cs │ │ └── StateSortTest.cs ├── Usings.cs └── Util.Microservices.Dapr.Tests.csproj ├── Util.Microservices.Dapr.WebApiSample ├── Controllers │ ├── IntegrationEventController.cs │ ├── Test1Controller.cs │ ├── Test2Controller.cs │ └── Test3Controller.cs ├── Dtos │ ├── CustomerDto.cs │ └── CustomerQuery.cs ├── Events │ └── TestEvent.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.QrCode.ZXing.Tests.Integration ├── Icons │ └── icon.jpg ├── Startup.cs ├── Tests │ └── ZXingQrCodeServiceTest.cs └── Util.QrCode.ZXing.Tests.Integration.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.Tenants.Tests.Integration ├── Controllers │ └── TestController.cs ├── Properties │ └── launchSettings.json ├── Resolvers │ ├── CookieTenantResolverTest.cs │ ├── DomainTenantResolverTest.cs │ ├── HeaderTenantResolverTest.cs │ └── QueryStringTenantResolverTest.cs ├── Startup.cs ├── Usings.cs └── Util.Tenants.Tests.Integration.csproj ├── Util.Tenants.Tests ├── Managements │ └── TenantManagerTest.cs ├── Resolvers │ ├── CookieTenantResolverTest.cs │ ├── DefaultTenantResolverTest.cs │ ├── DomainTenantResolverTest.cs │ ├── HeaderTenantResolverTest.cs │ ├── QueryStringTenantResolverTest.cs │ └── TenantResolverCollectionTest.cs ├── Samples │ ├── TestSession.cs │ └── TestTenantResolver.cs ├── Usings.cs └── Util.Tenants.Tests.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 │ └── TestEventHandler.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 │ └── TaskRecord.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 ├── Ellipsis │ ├── EllipsisTagHelperTest.Expression.cs │ └── EllipsisTagHelperTest.cs ├── FooterToolbars │ └── FooterToolbarTagHelperTest.cs ├── I18n │ └── I18nTagHelperTest.cs ├── PageHeaders │ └── PageHeaderTagHelperTest.cs ├── Samples │ └── Customer.cs ├── Sg │ ├── SgContainerTagHelperTest.cs │ └── SgTagHelperTest.cs ├── Startup.cs ├── Sv │ ├── SvContainerTagHelperTest.cs │ ├── SvTagHelperTest.Expression.cs │ ├── SvTagHelperTest.cs │ ├── SvTitleTagHelperTest.cs │ └── SvValueTagHelperTest.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 ├── BackTops │ └── BackTopTagHelperTest.cs ├── Badges │ ├── BadgeTagHelperTest.cs │ └── RibbonTagHelperTest.cs ├── Breadcrumbs │ ├── BreadcrumbItemTagHelperTest.cs │ ├── BreadcrumbSeparatorTagHelperTest.cs │ └── BreadcrumbTagHelperTest.cs ├── Buttons │ ├── ATagHelperTest.cs │ ├── ButtonGroupTagHelperTest.cs │ ├── ButtonTagHelperTest.DropDown.cs │ ├── ButtonTagHelperTest.Extend.cs │ ├── ButtonTagHelperTest.Form.cs │ ├── ButtonTagHelperTest.I18n.cs │ ├── ButtonTagHelperTest.Link.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.cs ├── Carousels │ ├── CarouselContentTagHelperTest.cs │ └── CarouselTagHelperTest.cs ├── Cascaders │ └── CascaderTagHelperTest.cs ├── Checkboxes │ ├── CheckboxGroupTagHelperTest.cs │ ├── CheckboxTagHelperTest.Expression.cs │ ├── CheckboxTagHelperTest.Form.cs │ ├── CheckboxTagHelperTest.cs │ └── CheckboxWrapperTagHelperTest.cs ├── Collapses │ ├── CollapsePanelTagHelperTest.cs │ └── CollapseTagHelperTest.cs ├── ColorPickers │ ├── ColorBlockTagHelperTest.cs │ ├── ColorPickerTagHelperTest.Expression.cs │ └── ColorPickerTagHelperTest.cs ├── Comments │ ├── CommentActionTagHelperTest.cs │ ├── CommentContentTagHelperTest.cs │ └── CommentTagHelperTest.cs ├── Containers │ ├── ContainerTagHelperTest.cs │ └── RouterOutletTagHelperTest.cs ├── Data │ └── TreeResultTest.cs ├── DatePickers │ ├── DatePickerTagHelperTest.Expression.cs │ ├── DatePickerTagHelperTest.cs │ ├── RangePickerTagHelperTest.Expression.cs │ └── RangePickerTagHelperTest.cs ├── Descriptions │ ├── DescriptionItemTagHelperTest.Expression.cs │ ├── DescriptionItemTagHelperTest.cs │ └── DescriptionTagHelperTest.cs ├── Display │ └── DisplayTagHelperTest.cs ├── Dividers │ └── DividerTagHelperTest.cs ├── Drawers │ ├── DrawerContentTagHelperTest.cs │ ├── DrawerFooterTagHelperTest.cs │ └── DrawerTagHelperTest.cs ├── Dropdowns │ └── DropdownMenuTagHelperTest.cs ├── Empties │ └── EmptyTagHelperTest.cs ├── Flex │ └── FlexTagHelperTest.cs ├── Forms │ ├── FormContainerTagHelperTest.cs │ ├── FormControlTagHelperTest.cs │ ├── FormItemTagHelperTest.cs │ ├── FormLabelTagHelperTest.cs │ ├── FormSplitTagHelperTest.cs │ ├── FormTagHelperTest.cs │ ├── FormTextTagHelperTest.cs │ └── SearchFormTagHelperTest.cs ├── Grids │ ├── ColumnTagHelperTest .Sm.cs │ ├── ColumnTagHelperTest.Lg.cs │ ├── ColumnTagHelperTest.Md.cs │ ├── ColumnTagHelperTest.XXl.cs │ ├── ColumnTagHelperTest.Xl.cs │ ├── ColumnTagHelperTest.Xs.cs │ ├── ColumnTagHelperTest.cs │ └── RowTagHelperTest.cs ├── HashCodes │ └── HashCodeTagHelperTest.cs ├── Icons │ ├── IconTagHelperTest.Popover.cs │ ├── IconTagHelperTest.Tooltip.cs │ └── IconTagHelperTest.cs ├── Images │ ├── ImageGroupTagHelperTest.cs │ └── ImageTagHelperTest.cs ├── InputNumbers │ ├── InputNumberGroupTagHelperTest.cs │ ├── 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.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 ├── 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 │ ├── ModalContentTagHelperTest.cs │ ├── ModalFooterTagHelperTest.cs │ ├── ModalTagHelperTest.cs │ └── ModalTitleTagHelperTest.cs ├── PageHeaders │ ├── PageHeaderContentTagHelperTest.cs │ ├── PageHeaderExtraTagHelperTest.cs │ ├── PageHeaderFooterTagHelperTest.cs │ ├── PageHeaderSubTitleTagHelperTest.cs │ ├── PageHeaderTagHelperTest.cs │ ├── PageHeaderTagsTagHelperTest.cs │ └── PageHeaderTitleTagHelperTest.cs ├── Paginations │ └── PaginationTagHelperTest.cs ├── Progresses │ └── ProgressTagHelperTest.cs ├── QrCodes │ └── QrCodeTagHelperTest.cs ├── Radios │ ├── RadioButtonTagHelperTest.cs │ ├── 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 │ ├── ResultIconTagHelperTest.cs │ ├── ResultSubtitleTagHelperTest.cs │ ├── ResultTagHelperTest.cs │ └── ResultTitleTagHelperTest.cs ├── Samples │ ├── Customer.cs │ └── TreeDto.cs ├── Segments │ ├── SegmentedTagHelperTest.Expression.cs │ ├── SegmentedTagHelperTest.Extend.cs │ └── SegmentedTagHelperTest.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.CustomColumn.cs │ ├── TableTagHelperTest.EnableFixedColumn.cs │ ├── TableTagHelperTest.Extend.cs │ ├── TableTagHelperTest.LineNumber.cs │ ├── TableTagHelperTest.Radio.cs │ ├── TableTagHelperTest.Resizable.cs │ ├── TableTagHelperTest.TableSettings.cs │ └── TableTagHelperTest.cs ├── Tabs │ ├── TabSetTagHelperTest.cs │ ├── TabTagHelperTest.Extend.cs │ └── TabTagHelperTest.cs ├── Tags │ ├── TagTagHelperTest.Expression.cs │ ├── TagTagHelperTest.Extend.cs │ ├── TagTagHelperTest.I18n.cs │ └── TagTagHelperTest.cs ├── Templates │ └── TemplateTagHelperTest.cs ├── Textareas │ ├── TextareaCountTagHelperTest.cs │ ├── TextareaTagHelperTest.Autocomplete.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.TableEdit.cs │ └── TreeSelectTagHelperTest.cs ├── TreeTables │ ├── TreeTableColumnTagHelperTest.cs │ ├── TreeTableHeadColumnTagHelperTest.cs │ ├── TreeTableTagHelperTest.TableSettings.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 └── WaterMarks │ └── WaterMarkTagHelperTest.cs ├── Util.Ui.Tests ├── Builders │ ├── EmptyContainerTagBuilderTest.cs │ └── TagBuilderTest.cs ├── Configs │ └── ConfigTest.cs ├── Expressions │ └── ExpressionResolverTest.cs ├── Extensions │ └── TagHelperExtensionsTest.cs ├── Razor │ ├── PartViewPathResolverTest.cs │ └── RazorViewContainerTest.cs ├── Samples │ ├── Containers │ │ ├── Builders │ │ │ └── ContainerBuilder.cs │ │ ├── ContainerTagHelper.cs │ │ └── Renders │ │ │ └── ContainerRender.cs │ ├── Customer.cs │ ├── Employee.cs │ ├── HBuilder.cs │ ├── SpanBuilder.cs │ ├── StrongBuilder.cs │ ├── Templates │ │ ├── Builders │ │ │ └── TemplateBuilder.cs │ │ ├── Renders │ │ │ └── TemplateRender.cs │ │ └── TemplateTagHelper.cs │ ├── TestBuilder.cs │ ├── TestRender.cs │ ├── TestShareConfig.cs │ └── TestTagHelper.cs ├── TagHelpers │ └── 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 /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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/build/icon.jpg -------------------------------------------------------------------------------- /build/version.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 8 4 | 0 5 | 19 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/AopOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Aop; 2 | 3 | /// 4 | /// Aop配置 5 | /// 6 | public class AopOptions { 7 | /// 8 | /// 是否启用IAopProxy接口标记 9 | /// 10 | public bool IsEnableIAopProxy { get; set; } 11 | /// 12 | /// 是否启用参数拦截器,默认值: true 13 | /// 14 | public bool IsEnableParameterAspect { get; set; } = true; 15 | } -------------------------------------------------------------------------------- /src/Util.Aop.AspectCore/IAopProxy.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Aop; 2 | 3 | /// 4 | /// Aop代理标记 5 | /// 6 | public interface IAopProxy { 7 | } -------------------------------------------------------------------------------- /src/Util.Aop.AspectCore/IgnoreAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Aop; 2 | 3 | /// 4 | /// 忽略拦截 5 | /// 6 | public class IgnoreAttribute : 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/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 | using Util.Data; 2 | 3 | namespace Util.Applications.Dtos; 4 | 5 | /// 6 | /// 数据传输对象 7 | /// 8 | public interface IDto : IRequest, IDataKey { 9 | } -------------------------------------------------------------------------------- /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.Aop; 2 | using Util.Dependency; 3 | 4 | namespace Util.Applications; 5 | 6 | /// 7 | /// 应用服务 8 | /// 9 | public interface IService : IScopeDependency, IAopProxy { 10 | } -------------------------------------------------------------------------------- /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.AspNetCore/AspNetCore/IJsonSerializerOptionsFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Util.AspNetCore; 2 | 3 | /// 4 | /// Json序列化配置工厂 5 | /// 6 | public interface IJsonSerializerOptionsFactory : ISingletonDependency { 7 | /// 8 | /// 创建Json序列化配置 9 | /// 10 | JsonSerializerOptions CreateOptions(); 11 | } -------------------------------------------------------------------------------- /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/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/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/Data/IDataKey.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data; 2 | 3 | /// 4 | /// 数据标识 5 | /// 6 | public interface IDataKey { 7 | /// 8 | /// 标识 9 | /// 10 | string Id { get; set; } 11 | } -------------------------------------------------------------------------------- /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/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/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.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/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/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.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; 7 | global using System.Reflection; 8 | global using System.ComponentModel.DataAnnotations; -------------------------------------------------------------------------------- /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/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/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.Oracle/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 Dapper; 10 | global using Oracle.ManagedDataAccess.Client; 11 | -------------------------------------------------------------------------------- /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; -------------------------------------------------------------------------------- /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/OracleEntityFrameworkCoreOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Data.EntityFrameworkCore; 2 | 3 | /// 4 | /// Oracle EF配置项 5 | /// 6 | public class OracleEntityFrameworkCoreOptions { 7 | /// 8 | /// 存储时是否将Guid类型转换为字符串类型 9 | /// 10 | public bool IsGuidToString { get; set; } 11 | } -------------------------------------------------------------------------------- /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 : ITransientDependency { 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 : ITransientDependency { 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 | global using Util.Dependency; 5 | -------------------------------------------------------------------------------- /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/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.Aop; 2 | using Util.Dependency; 3 | 4 | namespace Util.Domain.Services; 5 | 6 | /// 7 | /// 领域服务 8 | /// 9 | public interface IDomainService : IScopeDependency, IAopProxy { 10 | } -------------------------------------------------------------------------------- /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.Events.Abstractions/IEvent.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Events; 2 | 3 | /// 4 | /// 事件 5 | /// 6 | public interface IEvent { 7 | } -------------------------------------------------------------------------------- /src/Util.Events.Abstractions/IIntegrationEvent.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Events; 2 | 3 | /// 4 | /// 集成事件 5 | /// 6 | public interface IIntegrationEvent : IEvent { 7 | /// 8 | /// 事件标识 9 | /// 10 | string EventId { get; } 11 | /// 12 | /// 事件发生时间 13 | /// 14 | DateTime EventTime { get; } 15 | } -------------------------------------------------------------------------------- /src/Util.Events.Abstractions/ILocalEventBus.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Events; 2 | 3 | /// 4 | /// 基于内存的本地事件总线 5 | /// 6 | public interface ILocalEventBus : IEventBus { 7 | } -------------------------------------------------------------------------------- /src/Util.Events.Abstractions/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 Util.Dependency; -------------------------------------------------------------------------------- /src/Util.Events.MediatR/EventBase.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Events; 2 | 3 | /// 4 | /// 事件 5 | /// 6 | public abstract class EventBase : IEvent, INotification { 7 | } -------------------------------------------------------------------------------- /src/Util.Events.MediatR/MediatROptions.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Events; 2 | 3 | /// 4 | /// MediatR事件总线配置 5 | /// 6 | public static class MediatROptions { 7 | /// 8 | /// 是否扫描加载程序集 9 | /// 10 | public static bool IsScan { get; set; } 11 | } -------------------------------------------------------------------------------- /src/Util.Events.MediatR/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Threading; 4 | global using Microsoft.Extensions.DependencyInjection.Extensions; 5 | global using Microsoft.Extensions.DependencyInjection; 6 | global using MediatR; 7 | global using Util.Infrastructure; 8 | global using Util.Reflections; -------------------------------------------------------------------------------- /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.Abstractions/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.Abstractions/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.Abstractions/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.Abstractions/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.Abstractions/IBucketNameProcessorFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage; 2 | 3 | /// 4 | /// 存储桶名称处理器工厂 5 | /// 6 | public interface IBucketNameProcessorFactory : ITransientDependency { 7 | /// 8 | /// 创建存储桶名称处理器 9 | /// 10 | /// 存储桶名称处理策略 11 | IBucketNameProcessor CreateProcessor( string policy ); 12 | } -------------------------------------------------------------------------------- /src/Util.FileStorage.Abstractions/IFileNameFilter.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage; 2 | 3 | /// 4 | /// 文件名过滤器 5 | /// 6 | public interface IFileNameFilter : ISingletonDependency { 7 | /// 8 | /// 过滤文件名 9 | /// 10 | /// 文件名 11 | string Filter( string fileName ); 12 | } -------------------------------------------------------------------------------- /src/Util.FileStorage.Abstractions/IFileNameProcessor.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage; 2 | 3 | /// 4 | /// 文件名处理器 5 | /// 6 | public interface IFileNameProcessor { 7 | /// 8 | /// 处理文件名 9 | /// 10 | /// 文件名 11 | ProcessedName Process( string fileName ); 12 | } -------------------------------------------------------------------------------- /src/Util.FileStorage.Abstractions/IFileNameProcessorFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage; 2 | 3 | /// 4 | /// 文件名处理器工厂 5 | /// 6 | public interface IFileNameProcessorFactory : ITransientDependency { 7 | /// 8 | /// 创建文件名处理器 9 | /// 10 | /// 文件名处理策略 11 | IFileNameProcessor CreateProcessor( string policy ); 12 | } -------------------------------------------------------------------------------- /src/Util.FileStorage.Aliyun/IAliyunOssConfigProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage.Aliyun; 2 | 3 | /// 4 | /// 阿里云对象存储配置提供器 5 | /// 6 | public interface IAliyunOssConfigProvider : ITransientDependency { 7 | /// 8 | /// 获取配置 9 | /// 10 | Task GetConfigAsync(); 11 | } -------------------------------------------------------------------------------- /src/Util.FileStorage.Aliyun/IAliyunOssFileStore.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage.Aliyun; 2 | 3 | /// 4 | /// 阿里云对象存储服务 5 | /// 6 | public interface IAliyunOssFileStore : IFileStore { 7 | /// 8 | /// 创建存储桶 9 | /// 10 | /// 创建存储桶参数 11 | /// 取消令牌 12 | Task CreateBucketAsync( CreateBucketArgs args, CancellationToken cancellationToken = default ); 13 | } -------------------------------------------------------------------------------- /src/Util.FileStorage.All/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Net.Http; 3 | global using Util.Http; 4 | global using Util.Dependency; 5 | global using Util.FileStorage.Minio; 6 | global using Util.FileStorage.Local; 7 | global using Util.FileStorage.Aliyun; -------------------------------------------------------------------------------- /src/Util.FileStorage.Minio/IMinioConfigProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage.Minio; 2 | 3 | /// 4 | /// Minio配置提供器 5 | /// 6 | public interface IMinioConfigProvider : ITransientDependency { 7 | /// 8 | /// 获取配置 9 | /// 10 | Task GetConfigAsync(); 11 | } -------------------------------------------------------------------------------- /src/Util.FileStorage/FileNameFilter.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage; 2 | 3 | /// 4 | /// 文件名过滤器 5 | /// 6 | public class FileNameFilter : IFileNameFilter { 7 | /// 8 | public string Filter( string fileName ) { 9 | return fileName; 10 | } 11 | } -------------------------------------------------------------------------------- /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/Local/ILocalStoreConfigProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage.Local; 2 | 3 | /// 4 | /// 本地文件存储配置提供器 5 | /// 6 | public interface ILocalStoreConfigProvider : ITransientDependency { 7 | /// 8 | /// 获取配置 9 | /// 10 | Task GetConfigAsync(); 11 | } -------------------------------------------------------------------------------- /src/Util.FileStorage/Local/LocalStoreOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Util.FileStorage.Local; 2 | 3 | /// 4 | /// 本地文件存储配置 5 | /// 6 | public class LocalStoreOptions { 7 | /// 8 | /// 文件存储目录根路径,默认值:"upload" 9 | /// 10 | public string RootPath { get; set; } = "upload"; 11 | } -------------------------------------------------------------------------------- /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/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/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.Http/Helpers/Http.cs: -------------------------------------------------------------------------------- 1 | using Util.Http; 2 | 3 | namespace Util.Helpers; 4 | 5 | /// 6 | /// Http操作 7 | /// 8 | public static class Http { 9 | /// 10 | /// Http客户端 11 | /// 12 | public static IHttpClient Client => Ioc.Create(); 13 | } -------------------------------------------------------------------------------- /src/Util.IdGenerator/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading; 3 | global using System.Threading.Tasks; 4 | global using NanoidDotNet; 5 | global using Yitter.IdGenerator; -------------------------------------------------------------------------------- /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.Dapr/Events/IGetAppId.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Microservices.Dapr.Events; 2 | 3 | /// 4 | /// 获取应用标识 5 | /// 6 | public interface IGetAppId : ISingletonDependency { 7 | /// 8 | /// 获取应用标识 9 | /// 10 | string GetAppId(); 11 | } -------------------------------------------------------------------------------- /src/Util.Microservices.Dapr/StateManagements/IKeyGenerator.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Microservices.Dapr.StateManagements; 2 | 3 | /// 4 | /// 状态存储键生成器 5 | /// 6 | public interface IKeyGenerator : ISingletonDependency { 7 | /// 8 | /// 创建状态存储键 9 | /// 10 | /// 值类型 11 | /// 标识 12 | string CreateKey( string id ) where TValue : IDataKey; 13 | } -------------------------------------------------------------------------------- /src/Util.Microservices.Dapr/StateManagements/KeyGenerator.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Microservices.Dapr.StateManagements; 2 | 3 | /// 4 | /// 状态存储键生成器 5 | /// 6 | public class KeyGenerator : IKeyGenerator { 7 | /// 8 | public string CreateKey( string id ) where TValue : IDataKey { 9 | return id.IsEmpty() ? null : $"{typeof( TValue ).Name!.Replace( ".", "_" )}_{id}"; 10 | } 11 | } -------------------------------------------------------------------------------- /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/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using Polly; 4 | global using Polly.Retry; -------------------------------------------------------------------------------- /src/Util.Microservices/IDataType.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Microservices; 2 | 3 | /// 4 | /// 数据类型 5 | /// 6 | public interface IDataType { 7 | /// 8 | /// 数据类型 9 | /// 10 | string DataType { get; set; } 11 | } -------------------------------------------------------------------------------- /src/Util.Microservices/IETag.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Microservices; 2 | 3 | /// 4 | /// 乐观锁 5 | /// 6 | public interface IETag { 7 | /// 8 | /// 并发标记 9 | /// 10 | string ETag { get; set; } 11 | } -------------------------------------------------------------------------------- /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/IStateCondition.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Microservices; 2 | 3 | /// 4 | /// 状态对象查询条件 5 | /// 6 | public interface IStateCondition { 7 | } -------------------------------------------------------------------------------- /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/StateBase.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Microservices; 2 | 3 | /// 4 | /// 状态对象基类 5 | /// 6 | public class StateBase : IDataKey, IDataType, IETag { 7 | /// 8 | public string Id { get; set; } 9 | 10 | /// 11 | public string DataType { get; set; } 12 | 13 | /// 14 | public string ETag { get; set; } 15 | } -------------------------------------------------------------------------------- /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 System.Linq.Expressions; 8 | global using System.ComponentModel; 9 | global using System.Reflection; 10 | global using Microsoft.AspNetCore.Http; 11 | global using Util.Dependency; 12 | global using Util.Data; -------------------------------------------------------------------------------- /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.QrCode.ZXing/QrSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.QrCode; 2 | 3 | /// 4 | /// 二维码尺寸 5 | /// 6 | public enum QrSize { 7 | /// 8 | /// 小 9 | /// 10 | Small = 100, 11 | /// 12 | /// 中 13 | /// 14 | Middle = 200, 15 | /// 16 | /// 大 17 | /// 18 | Large = 300 19 | } -------------------------------------------------------------------------------- /src/Util.QrCode.ZXing/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Threading.Tasks; 3 | global using System.Threading; 4 | global using System.Drawing; 5 | global using System.IO; 6 | global using SixLabors.ImageSharp.Formats; 7 | global using SixLabors.ImageSharp.Processing; 8 | global using ZXing; 9 | global using ZXing.QrCode; 10 | global using ZXing.ImageSharp.Rendering; 11 | global using SixLabors.ImageSharp.PixelFormats; 12 | global using Util.Dependency; -------------------------------------------------------------------------------- /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/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; -------------------------------------------------------------------------------- /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/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.Tenants.Abstractions/IDomainTenantResolver.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Tenants; 2 | 3 | /// 4 | /// 域名租户解析器 5 | /// 6 | public interface IDomainTenantResolver : ITransientDependency { 7 | /// 8 | /// 解析租户标识 9 | /// 10 | /// 域名,范例: a.test.com 11 | Task ResolveTenantIdAsync( string host ); 12 | } -------------------------------------------------------------------------------- /src/Util.Tenants.Abstractions/ITenant.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Tenants; 2 | 3 | /// 4 | /// 租户 5 | /// 6 | public interface ITenant { 7 | /// 8 | /// 租户标识 9 | /// 10 | string TenantId { get; set; } 11 | } -------------------------------------------------------------------------------- /src/Util.Tenants.Abstractions/ITenantStore.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Tenants; 2 | 3 | /// 4 | /// 租户存储器 5 | /// 6 | public interface ITenantStore : IScopeDependency { 7 | /// 8 | /// 获取当前租户配置 9 | /// 10 | /// 租户标识 11 | TenantInfo GetTenant( string tenantId ); 12 | } -------------------------------------------------------------------------------- /src/Util.Tenants.Abstractions/TenantInfo.cs: -------------------------------------------------------------------------------- 1 | using Util.Data; 2 | 3 | namespace Util.Tenants; 4 | 5 | /// 6 | /// 租户信息 7 | /// 8 | public class TenantInfo { 9 | /// 10 | /// 租户标识 11 | /// 12 | public string TenantId { get; set; } 13 | /// 14 | /// 连接字符串集合 15 | /// 16 | public ConnectionStringCollection ConnectionStrings { get; set; } 17 | } -------------------------------------------------------------------------------- /src/Util.Tenants.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.Text; 7 | global using System.Reflection; 8 | global using System.Linq.Expressions; 9 | global using System.ComponentModel.DataAnnotations; 10 | global using Util.Dependency; -------------------------------------------------------------------------------- /src/Util.Tenants/ITenantResolver.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Tenants; 2 | 3 | /// 4 | /// 租户解析器 5 | /// 6 | public interface ITenantResolver { 7 | /// 8 | /// 解析租户标识 9 | /// 10 | /// Http上下文 11 | Task ResolveAsync( HttpContext context ); 12 | /// 13 | /// 优先级,值越大则优先解析 14 | /// 15 | int Priority { get; set; } 16 | } -------------------------------------------------------------------------------- /src/Util.Tenants/Resolvers/ITenantDomainStore.cs: -------------------------------------------------------------------------------- 1 | using Util.Dependency; 2 | 3 | namespace Util.Tenants.Resolvers; 4 | 5 | /// 6 | /// 租户域名存储器 7 | /// 8 | public interface ITenantDomainStore : ITransientDependency { 9 | /// 10 | /// 获取租户域名映射,键为域名,值为租户标识 11 | /// 12 | Task> GetAsync(); 13 | } -------------------------------------------------------------------------------- /src/Util.Ui.Angular/Enums/QueryParamsHandling.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace Util.Ui.NgZorro.Enums; 4 | 5 | /// 6 | /// 路由器链接查询参数处理方式 7 | /// 8 | public enum QueryParamsHandling { 9 | /// 10 | /// merge, 将新参数与当前参数合并 11 | /// 12 | [Description( "merge" )] 13 | Merge, 14 | /// 15 | /// preserve, 保留当前参数 16 | /// 17 | [Description( "preserve" )] 18 | Preserve 19 | } -------------------------------------------------------------------------------- /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/Enums/SvLayout.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgAlain.Enums; 2 | 3 | /// 4 | /// 查看布局 5 | /// 6 | public enum SvLayout { 7 | /// 8 | /// 水平布局 9 | /// 10 | [Description( "horizontal" )] 11 | Horizontal, 12 | /// 13 | /// 垂直布局 14 | /// 15 | [Description( "vertical" )] 16 | Vertical 17 | } -------------------------------------------------------------------------------- /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 | 3 | namespace Util.Ui.NgZorro.Components.Avatars.Builders; 4 | 5 | /// 6 | /// 头像组标签生成器 7 | /// 8 | public class AvatarGroupBuilder : AngularTagBuilder { 9 | /// 10 | /// 初始化头像组标签生成器 11 | /// 12 | public AvatarGroupBuilder( Config config ) : base( config,"nz-avatar-group" ) { 13 | } 14 | } -------------------------------------------------------------------------------- /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/Drawers/Configs/DrawerShareConfig.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Components.Drawers.Configs; 2 | 3 | /// 4 | /// 抽屉共享配置 5 | /// 6 | public class DrawerShareConfig { 7 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Components/Dropdowns/Configs/DropdownMenuShareConfig.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Components.Dropdowns.Configs; 2 | 3 | /// 4 | /// 下拉菜单共享配置 5 | /// 6 | public class DropdownMenuShareConfig { 7 | /// 8 | /// 自动创建 ul 9 | /// 10 | public bool? AutoCreateUl { get; set; } 11 | } -------------------------------------------------------------------------------- /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/Modals/Configs/ModalShareConfig.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Components.Modals.Configs; 2 | 3 | /// 4 | /// 对话框共享配置 5 | /// 6 | public class ModalShareConfig { 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/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/TableColumnDisplayShareConfig.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Components.Tables.Configs; 2 | 3 | /// 4 | /// 表格编辑列显示区域共享配置 5 | /// 6 | public class TableColumnDisplayShareConfig { 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/Components/Typographies/Builders/PBuilder.cs: -------------------------------------------------------------------------------- 1 | using Util.Ui.Angular.Builders; 2 | 3 | namespace Util.Ui.NgZorro.Components.Typographies.Builders; 4 | 5 | /// 6 | /// p标签生成器 7 | /// 8 | public class PBuilder : AngularTagBuilder { 9 | /// 10 | /// 初始化p标签生成器 11 | /// 12 | public PBuilder( Config config ) : base( config,"p" ) { 13 | } 14 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Components/Typographies/Builders/SpanBuilder.cs: -------------------------------------------------------------------------------- 1 | using Util.Ui.Angular.Builders; 2 | 3 | namespace Util.Ui.NgZorro.Components.Typographies.Builders; 4 | 5 | /// 6 | /// span生成器 7 | /// 8 | public class SpanBuilder : AngularTagBuilder { 9 | /// 10 | /// 初始化span生成器 11 | /// 12 | public SpanBuilder( Config config ) : base( config,"span" ) { 13 | } 14 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/AnchorDirection.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 锚点方向 5 | /// 6 | public enum AnchorDirection { 7 | /// 8 | /// horizontal, 水平方向 9 | /// 10 | [Description( "horizontal" )] 11 | Horizontal, 12 | /// 13 | /// vertical, 垂直方向 14 | /// 15 | [Description( "vertical" )] 16 | Vertical 17 | } -------------------------------------------------------------------------------- /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/BadgeSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 徽标尺寸 5 | /// 6 | public enum BadgeSize { 7 | /// 8 | /// default,默认尺寸 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// small,小尺寸 14 | /// 15 | [Description( "small" )] 16 | Small 17 | } -------------------------------------------------------------------------------- /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/CascaderTriggerAction.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 级联选择触发操作 5 | /// 6 | public enum CascaderTriggerAction { 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/ColorPickerTrigger.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 颜色选择器触发行为 5 | /// 6 | public enum ColorPickerTrigger { 7 | /// 8 | /// 点击触发 9 | /// 10 | [Description( "click" )] 11 | Click, 12 | /// 13 | /// 移入触发 14 | /// 15 | [Description( "hover" )] 16 | Hover 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/CursorType.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 光标类型 5 | /// 6 | public enum CursorType { 7 | /// 8 | /// window 9 | /// 10 | [Description( "window" )] 11 | Window, 12 | /// 13 | /// grid 14 | /// 15 | [Description( "grid" )] 16 | Grid 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/DescriptionDataType.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 描述列表数据类型 5 | /// 6 | public enum DescriptionDataType { 7 | /// 8 | /// 布尔 9 | /// 10 | Bool, 11 | /// 12 | /// 日期 13 | /// 14 | Date, 15 | /// 16 | /// 数值 17 | /// 18 | Number 19 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/DescriptionLayout.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 描述列表布局方式 5 | /// 6 | public enum DescriptionLayout { 7 | /// 8 | /// horizontal, 水平排列 9 | /// 10 | [Description( "horizontal" )] 11 | Horizontal, 12 | /// 13 | /// vertical, 垂直排列 14 | /// 15 | [Description( "vertical" )] 16 | Vertical 17 | } -------------------------------------------------------------------------------- /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/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/DrawerSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 抽屉尺寸 5 | /// 6 | public enum DrawerSize { 7 | /// 8 | /// 默认 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// 大尺寸 14 | /// 15 | [Description( "large" )] 16 | Large 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/FormControlStatus.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 表单控件状态 5 | /// 6 | public enum FormControlStatus { 7 | /// 8 | /// error 9 | /// 10 | [Description( "error" )] 11 | Error, 12 | /// 13 | /// warning 14 | /// 15 | [Description( "warning" )] 16 | Warning 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/HashCodeType.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 哈希码样式 5 | /// 6 | public enum HashCodeType { 7 | /// 8 | /// 默认样式 9 | /// 10 | [Description( "defalut " )] 11 | Defalut, 12 | /// 13 | /// 主样式 14 | /// 15 | [Description( "primary" )] 16 | Primary 17 | } -------------------------------------------------------------------------------- /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/LabelAlign.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 标签文本对齐方式 5 | /// 6 | public enum LabelAlign { 7 | /// 8 | /// left,左侧显示 9 | /// 10 | [Description( "left" )] 11 | Left, 12 | /// 13 | /// right,右侧显示 14 | /// 15 | [Description( "right" )] 16 | Right 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/ListItemLayout.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 列表项布局方式 5 | /// 6 | public enum ListItemLayout { 7 | /// 8 | /// horizontal, 水平排列 9 | /// 10 | [Description( "horizontal" )] 11 | Horizontal, 12 | /// 13 | /// vertical, 垂直排列 14 | /// 15 | [Description( "vertical" )] 16 | Vertical 17 | } -------------------------------------------------------------------------------- /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/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/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/PopconfirmAutoFocus.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 气泡确认框自动聚焦 5 | /// 6 | public enum PopconfirmAutoFocus { 7 | /// 8 | /// ok, 确认按钮 9 | /// 10 | [Description( "ok" )] 11 | Ok, 12 | /// 13 | /// cancel,取消按钮 14 | /// 15 | [Description( "cancel" )] 16 | Cancel 17 | } -------------------------------------------------------------------------------- /src/Util.Ui.NgZorro/Enums/ProgressSize.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.NgZorro.Enums; 2 | 3 | /// 4 | /// 进度条尺寸 5 | /// 6 | public enum ProgressSize { 7 | /// 8 | /// default, 默认 9 | /// 10 | [Description( "default" )] 11 | Default, 12 | /// 13 | /// small, 小尺寸 14 | /// 15 | [Description( "small" )] 16 | Small 17 | } -------------------------------------------------------------------------------- /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/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/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/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/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/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/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/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/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/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/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/Helpers/SizeHelper.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Helpers; 2 | 3 | /// 4 | /// 尺寸辅助操作 5 | /// 6 | public class SizeHelper { 7 | /// 8 | /// 获取尺寸,如果值为数值,则添加px 9 | /// 10 | public static string GetValue( string value ) { 11 | if ( value.IsEmpty() ) 12 | return null; 13 | return Util.Helpers.Validation.IsNumber( value ) ? $"{value}px" : value; 14 | } 15 | } -------------------------------------------------------------------------------- /src/Util.Ui/Razor/Internal/IPartViewPathFinder.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Razor.Internal; 2 | 3 | /// 4 | /// 分部视图路径查找器 5 | /// 6 | public interface IPartViewPathFinder { 7 | /// 8 | /// 查找分部视图的路径 9 | /// 10 | /// 主视图路径 11 | /// 分部视图名称, partial 标签的 name 属性 12 | string Find( string viewPath, string partViewName ); 13 | } -------------------------------------------------------------------------------- /src/Util.Ui/Razor/Internal/IPartViewPathResolver.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Razor.Internal; 2 | 3 | /// 4 | /// 分部视图路径解析器 5 | /// 6 | public interface IPartViewPathResolver { 7 | /// 8 | /// 从视图文件内容解析分部视图路径 9 | /// 10 | /// 视图路径 11 | /// 视图文件内容 12 | List Resolve( string path, string content ); 13 | } -------------------------------------------------------------------------------- /src/Util.Ui/Razor/Internal/IViewContentResolver.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Razor.Internal; 2 | 3 | /// 4 | /// 视图内容解析器 5 | /// 6 | public interface IViewContentResolver { 7 | /// 8 | /// 解析视图文件内容 9 | /// 10 | /// 视图路径 11 | string Resolve( string path ); 12 | } -------------------------------------------------------------------------------- /src/Util.Ui/Razor/Internal/MainView.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Ui.Razor.Internal; 2 | 3 | /// 4 | /// 主视图 5 | /// 6 | public class MainView : RazorView { 7 | /// 8 | /// 初始化主视图 9 | /// 10 | public MainView( string path ) : base( path ) { 11 | } 12 | } -------------------------------------------------------------------------------- /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.Ui/Sources/Spa/AngularCli/AngularCliMiddleware.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/src/Util.Ui/Sources/Spa/AngularCli/AngularCliMiddleware.cs -------------------------------------------------------------------------------- /src/Util.Ui/Sources/Spa/AngularCli/AngularCliMiddlewareExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/src/Util.Ui/Sources/Spa/AngularCli/AngularCliMiddlewareExtensions.cs -------------------------------------------------------------------------------- /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; -------------------------------------------------------------------------------- /test/Util.Aop.AspectCore.Tests/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Aop.AspectCore.Tests/Startup.cs -------------------------------------------------------------------------------- /test/Util.Application.EntityFrameworkCore.MySql.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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:15432;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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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=.;Database=Util.Application.EntityFrameworkCore.Test;uid=sa;pwd=Pass@word;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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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:15432;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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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=.;Database=Util.WebApi.Test;uid=sa;pwd=Pass@word;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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Application.WebApi.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.AspNetCore.Tests.Integration/Authorization/AclTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.AspNetCore.Tests.Integration/Authorization/AclTest.cs -------------------------------------------------------------------------------- /test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Delete.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Delete.cs -------------------------------------------------------------------------------- /test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Get.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Get.cs -------------------------------------------------------------------------------- /test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Post.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Post.cs -------------------------------------------------------------------------------- /test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Put.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Put.cs -------------------------------------------------------------------------------- /test/Util.AspNetCore.Tests.Integration/Resources/a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.AspNetCore.Tests.Integration/Resources/a.png -------------------------------------------------------------------------------- /test/Util.AspNetCore.Tests.Integration/Samples/Certificate/apiclient_cert.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.AspNetCore.Tests.Integration/Samples/Certificate/apiclient_cert.p12 -------------------------------------------------------------------------------- /test/Util.AspNetCore.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.AspNetCore.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Caching.EasyCaching.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Caching.EasyCaching.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Caching.EasyCaching.Tests.Integration/Tests/CacheManagerTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Caching.EasyCaching.Tests.Integration/Tests/CacheManagerTest.cs -------------------------------------------------------------------------------- /test/Util.Caching.EasyCaching.Tests.Integration/Tests/MemoryCacheManagerTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Caching.EasyCaching.Tests.Integration/Tests/MemoryCacheManagerTest.cs -------------------------------------------------------------------------------- /test/Util.Caching.EasyCaching.Tests.Integration/Tests/RedisCacheManagerTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Caching.EasyCaching.Tests.Integration/Tests/RedisCacheManagerTest.cs -------------------------------------------------------------------------------- /test/Util.Caching.EasyCaching.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Information" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "Redis": "127.0.0.1" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Caching.EasyCaching.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.MySql.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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.Oracle.Tests.Integration/SqlQuery/OracleQueryTest.Exists.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Data.Dapper.Oracle.Tests.Integration/SqlQuery/OracleQueryTest.Exists.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.Oracle.Tests.Integration/SqlQuery/OracleQueryTest.Query.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Data.Dapper.Oracle.Tests.Integration/SqlQuery/OracleQueryTest.Query.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.Oracle.Tests.Integration/SqlQuery/OracleQueryTest.Scalar.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Data.Dapper.Oracle.Tests.Integration/SqlQuery/OracleQueryTest.Scalar.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.Oracle.Tests.Integration/SqlQuery/OracleQueryTest.Single.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Data.Dapper.Oracle.Tests.Integration/SqlQuery/OracleQueryTest.Single.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.Oracle.Tests.Integration/SqlQuery/OracleQueryTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Data.Dapper.Oracle.Tests.Integration/SqlQuery/OracleQueryTest.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.Oracle.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Data.Dapper.Oracle.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.Oracle.Tests.Integration/Usings.cs: -------------------------------------------------------------------------------- 1 | global using Xunit; -------------------------------------------------------------------------------- /test/Util.Data.Dapper.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=c##test;Password=test;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)));" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /test/Util.Data.Dapper.Oracle.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "connection": "" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Exists.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.PostgreSql.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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:15432;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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.cs -------------------------------------------------------------------------------- /test/Util.Data.Dapper.SqlServer.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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=.;Database=Util.Data.Dapper.Test;uid=sa;pwd=Pass@word;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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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=c##test;Password=test;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": "" 10 | } 11 | } -------------------------------------------------------------------------------- /test/Util.Data.EntityFrameworkCore.PostgreSql.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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:15432;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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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=.;Database=Util.Data.EntityFrameworkCore.Test;uid=sa;pwd=Pass@word;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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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": "Data Source=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/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.MediatR.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Events.MediatR.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Events.MediatR.Tests.Integration/Usings.cs: -------------------------------------------------------------------------------- 1 | global using Xunit; -------------------------------------------------------------------------------- /test/Util.Events.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Events.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.FileStorage.Aliyun.Tests.Integration/Resources/a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.FileStorage.Aliyun.Tests.Integration/Resources/a.png -------------------------------------------------------------------------------- /test/Util.FileStorage.Aliyun.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.FileStorage.Aliyun.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.FileStorage.Aliyun.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Information" 6 | } 7 | }, 8 | "AliyunOss": { 9 | "Endpoint": "oss-cn-beijing.aliyuncs.com", 10 | "AccessKeyId": "", 11 | "AccessKeySecret": "" 12 | } 13 | } -------------------------------------------------------------------------------- /test/Util.FileStorage.Aliyun.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /test/Util.FileStorage.Minio.Tests.Integration/Resources/a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.FileStorage.Minio.Tests.Integration/Resources/a.jpg -------------------------------------------------------------------------------- /test/Util.FileStorage.Minio.Tests.Integration/Resources/b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.FileStorage.Minio.Tests.Integration/Resources/b.jpg -------------------------------------------------------------------------------- /test/Util.FileStorage.Minio.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.FileStorage.Minio.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.FileStorage.Minio.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Information" 6 | } 7 | }, 8 | "Minio": { 9 | "Endpoint": "127.0.0.1:9000", 10 | "AccessKey": "admin", 11 | "SecretKey": "admin123" 12 | } 13 | } -------------------------------------------------------------------------------- /test/Util.FileStorage.Minio.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /test/Util.FileStorage.Tests.Integration/Resources/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.FileStorage.Tests.Integration/Resources/1.jpg -------------------------------------------------------------------------------- /test/Util.FileStorage.Tests.Integration/Resources/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.FileStorage.Tests.Integration/Resources/2.png -------------------------------------------------------------------------------- /test/Util.FileStorage.Tests.Integration/Resources/3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.FileStorage.Tests.Integration/Resources/3.gif -------------------------------------------------------------------------------- /test/Util.FileStorage.Tests.Integration/Resources/4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.FileStorage.Tests.Integration/Resources/4.pdf -------------------------------------------------------------------------------- /test/Util.FileStorage.Tests.Integration/Resources/5.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.FileStorage.Tests.Integration/Resources/5.docx -------------------------------------------------------------------------------- /test/Util.FileStorage.Tests.Integration/Resources/6.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.FileStorage.Tests.Integration/Resources/6.xlsx -------------------------------------------------------------------------------- /test/Util.FileStorage.Tests.Integration/Resources/a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.FileStorage.Tests.Integration/Resources/a.jpg -------------------------------------------------------------------------------- /test/Util.FileStorage.Tests.Integration/Resources/a.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.FileStorage.Tests.Integration/Resources/a.pdf -------------------------------------------------------------------------------- /test/Util.FileStorage.Tests.Integration/Resources/b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.FileStorage.Tests.Integration/Resources/b.png -------------------------------------------------------------------------------- /test/Util.FileStorage.Tests.Integration/Resources/c.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.FileStorage.Tests.Integration/Resources/c.gif -------------------------------------------------------------------------------- /test/Util.FileStorage.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.FileStorage.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.FileStorage.Tests.Integration/Usings.cs: -------------------------------------------------------------------------------- 1 | global using Xunit; 2 | global using System.Threading.Tasks; 3 | global using Util.FileStorage.Local; -------------------------------------------------------------------------------- /test/Util.FileStorage.Tests.Integration/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Information" 6 | } 7 | }, 8 | "Minio": { 9 | "Endpoint": "127.0.0.1:9000", 10 | "AccessKey": "admin", 11 | "SecretKey": "admin123" 12 | } 13 | } -------------------------------------------------------------------------------- /test/Util.FileStorage.Tests.Integration/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Error", 5 | "Microsoft": "Error" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /test/Util.Generators.Razor.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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.IdGenerator.Tests/Usings.cs: -------------------------------------------------------------------------------- 1 | global using Xunit; 2 | global using Xunit.Abstractions; 3 | global using Util.Helpers; -------------------------------------------------------------------------------- /test/Util.Images.Avatar.Tests.Integration/Fonts/STZHONGS.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Images.Avatar.Tests.Integration/Fonts/STZHONGS.TTF -------------------------------------------------------------------------------- /test/Util.Images.Avatar.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Images.Avatar.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Images.ImageSharp.Tests.Integration/Fonts/STZHONGS.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Images.ImageSharp.Tests.Integration/Fonts/STZHONGS.TTF -------------------------------------------------------------------------------- /test/Util.Images.ImageSharp.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Localization.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Localization.Tests/Samples/TestType.cs: -------------------------------------------------------------------------------- 1 | namespace Util.Localization.Store.Samples; 2 | 3 | /// 4 | /// 测试类型 5 | /// 6 | public class TestType { 7 | } 8 | 9 | /// 10 | /// 测试类型2 11 | /// 12 | [LocalizedType("test2")] 13 | public class TestType2 { 14 | } -------------------------------------------------------------------------------- /test/Util.Localization.Tests/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System.Globalization; 2 | global using System.Linq; 3 | global using System.Collections.Generic; 4 | global using Microsoft.Extensions.Localization; 5 | global using Microsoft.Extensions.Logging; 6 | global using Microsoft.Extensions.Logging.Abstractions; 7 | global using Microsoft.Extensions.Caching.Memory; 8 | global using Microsoft.Extensions.Options; 9 | global using Xunit; 10 | global using Moq; -------------------------------------------------------------------------------- /test/Util.Logging.Serilog.Exceptionless.Tests.Integration/LogTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Logging.Serilog.Exceptionless.Tests.Integration/LogTest.cs -------------------------------------------------------------------------------- /test/Util.Logging.Serilog.Exceptionless.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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": "iopUwmIbUdFKQs1WnUzxaPKg8lvJ02rxXjxHuhTg", 10 | "ServerUrl": "http://localhost:5480", 11 | "QueueMaxAttempts": 1 12 | } 13 | } -------------------------------------------------------------------------------- /test/Util.Logging.Serilog.Tests.Integration/LogTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Logging.Serilog.Tests.Integration/LogTest.cs -------------------------------------------------------------------------------- /test/Util.Logging.Serilog.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Logging.Serilog.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Logging.Tests/LogTest.Critical .cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Logging.Tests/LogTest.Critical .cs -------------------------------------------------------------------------------- /test/Util.Logging.Tests/LogTest.Debug .cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Logging.Tests/LogTest.Debug .cs -------------------------------------------------------------------------------- /test/Util.Logging.Tests/LogTest.Error .cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Logging.Tests/LogTest.Error .cs -------------------------------------------------------------------------------- /test/Util.Logging.Tests/LogTest.Information .cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Logging.Tests/LogTest.Information .cs -------------------------------------------------------------------------------- /test/Util.Logging.Tests/LogTest.Trace .cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Logging.Tests/LogTest.Trace .cs -------------------------------------------------------------------------------- /test/Util.Logging.Tests/LogTest.Warning .cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Logging.Tests/LogTest.Warning .cs -------------------------------------------------------------------------------- /test/Util.Logging.Tests/LogTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Logging.Tests/LogTest.cs -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.PubsubSample/Events/TestEvent.cs: -------------------------------------------------------------------------------- 1 | using Util.Events; 2 | 3 | namespace Util.Microservices.Dapr.PubsubSample.Events; 4 | 5 | /// 6 | /// 测试事件 7 | /// 8 | /// 编码 9 | /// 名称 10 | public record TestEvent( string Code, string Name ) : IntegrationEvent; -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.PubsubSample/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.PubsubSample/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft.AspNetCore": "Trace" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /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/event-state-store.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: dapr.io/v1alpha1 2 | kind: Component 3 | metadata: 4 | name: event-state-store 5 | spec: 6 | type: state.mongodb 7 | metadata: 8 | - name: keyPrefix 9 | value: name 10 | - name: host 11 | value: localhost 12 | - name: databaseName 13 | value: util_dapr_tests 14 | - name: collectionName 15 | value: events -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.Tests.Integration/Resources/components/resiliency-pubsub.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: dapr.io/v1alpha1 2 | kind: Resiliency 3 | metadata: 4 | name: resiliency-pubsub 5 | spec: 6 | policies: 7 | retries: 8 | pubsubRetry: 9 | policy: constant 10 | duration: 1s 11 | maxRetries: 3 12 | targets: 13 | components: 14 | pubsub: 15 | inbound: 16 | retry: pubsubRetry -------------------------------------------------------------------------------- /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.mongodb 7 | metadata: 8 | - name: host 9 | value: localhost 10 | - name: databaseName 11 | value: util_dapr_tests 12 | - name: collectionName 13 | value: default -------------------------------------------------------------------------------- /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/Samples/TestEvent.cs: -------------------------------------------------------------------------------- 1 | using Util.Events; 2 | 3 | namespace Util.Microservices.Dapr.Tests.Samples; 4 | 5 | /// 6 | /// 测试事件 7 | /// 8 | /// 编码 9 | /// 名称 10 | public record TestEvent( string Code, string Name ) : IntegrationEvent; -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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.Tests/Samples/TestEvent.cs: -------------------------------------------------------------------------------- 1 | using Util.Events; 2 | 3 | namespace Util.Microservices.Dapr.Tests.Samples; 4 | 5 | /// 6 | /// 测试事件 7 | /// 8 | /// 编码 9 | /// 名称 10 | public record TestEvent( string Code, string Name ) : IntegrationEvent; -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.WebApiSample/Controllers/Test1Controller.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Microservices.Dapr.WebApiSample/Controllers/Test1Controller.cs -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.WebApiSample/Controllers/Test2Controller.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Microservices.Dapr.WebApiSample/Controllers/Test2Controller.cs -------------------------------------------------------------------------------- /test/Util.Microservices.Dapr.WebApiSample/Events/TestEvent.cs: -------------------------------------------------------------------------------- 1 | using Util.Events; 2 | 3 | namespace Util.Microservices.Dapr.WebApiSample.Events; 4 | 5 | /// 6 | /// 测试事件 7 | /// 8 | /// 编码 9 | /// 名称 10 | public record TestEvent( string Code, string Name ) : IntegrationEvent; -------------------------------------------------------------------------------- /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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Microservices.Polly.Tests.Integration/PolicyTest.Retry.Async.cs -------------------------------------------------------------------------------- /test/Util.Microservices.Polly.Tests.Integration/PolicyTest.Retry.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Microservices.Polly.Tests.Integration/PolicyTest.Retry.cs -------------------------------------------------------------------------------- /test/Util.Microservices.Polly.Tests.Integration/PolicyTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Microservices.Polly.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.ObjectMapping.AutoMapper.Tests/ObjectMapperExtensionsTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.ObjectMapping.AutoMapper.Tests/ObjectMapperExtensionsTest.cs -------------------------------------------------------------------------------- /test/Util.ObjectMapping.AutoMapper.Tests/ObjectMapperTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.ObjectMapping.AutoMapper.Tests/Startup.cs -------------------------------------------------------------------------------- /test/Util.QrCode.ZXing.Tests.Integration/Icons/icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.QrCode.ZXing.Tests.Integration/Icons/icon.jpg -------------------------------------------------------------------------------- /test/Util.QrCode.ZXing.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.QrCode.ZXing.Tests.Integration/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Scheduling.Hangfire.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Scheduling.Quartz.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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=.;Database=Util.Scheduling.Quartz.Tests;uid=sa;pwd=Pass@word;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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Templates.Handlebars.Tests.Integration/HandlebarsTemplateEngineTest.cs -------------------------------------------------------------------------------- /test/Util.Templates.Handlebars.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Templates.Handlebars.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Templates.Razor.Tests.Integration/RazorTemplateEngineTest.Path.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Templates.Razor.Tests.Integration/RazorTemplateEngineTest.Path.cs -------------------------------------------------------------------------------- /test/Util.Templates.Razor.Tests.Integration/RazorTemplateEngineTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Templates.Razor.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /test/Util.Tenants.Tests.Integration/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Util.Tenants.Tests.Integration": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "https://localhost:39350;http://localhost:39351" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /test/Util.Tenants.Tests.Integration/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Tenants.Tests.Integration/Startup.cs -------------------------------------------------------------------------------- /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/TaskRecord.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Util.Tests.Models; 4 | 5 | /// 6 | /// 任务记录 7 | /// 8 | public class TaskRecord { 9 | /// 10 | /// 执行时间 11 | /// 12 | public DateTime ExecutionTime { get; set; } 13 | } -------------------------------------------------------------------------------- /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/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 | } 10 | 11 | /// 12 | /// 工作单元2 13 | /// 14 | public interface ITestUnitOfWork2 : IUnitOfWork { 15 | } -------------------------------------------------------------------------------- /test/Util.Ui.NgAlain.Tests/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Ui.NgZorro.Tests/Startup.cs -------------------------------------------------------------------------------- /test/Util.Ui.Tests/Samples/SpanBuilder.cs: -------------------------------------------------------------------------------- 1 | using Util.Ui.Builders; 2 | 3 | namespace Util.Ui.Tests.Samples; 4 | 5 | /// 6 | /// span生成器 7 | /// 8 | public class SpanBuilder : TagBuilder { 9 | /// 10 | /// 初始化span生成器 11 | /// 12 | public SpanBuilder() : base( "span" ) { 13 | } 14 | } -------------------------------------------------------------------------------- /test/Util.Ui.Tests/Samples/StrongBuilder.cs: -------------------------------------------------------------------------------- 1 | using Util.Ui.Builders; 2 | 3 | namespace Util.Ui.Tests.Samples; 4 | 5 | /// 6 | /// div标签生成器 7 | /// 8 | public class DivBuilder : TagBuilder { 9 | /// 10 | /// 初始化div标签生成器 11 | /// 12 | public DivBuilder() : base( "div" ) { 13 | } 14 | } -------------------------------------------------------------------------------- /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/dotnetcore/Util/2f16f3f6b06624fe51a8863eabe181dc29fba72f/test/Util.Validation.Tests/Startup.cs --------------------------------------------------------------------------------