├── .gitignore
├── Directory.Build.props
├── LICENSE.txt
├── Util.sln
├── build
├── Build.csproj
├── BuildScript.cs
├── common.props
├── icon.jpg
└── version.props
├── clear-bin.ps1
├── readme.md
├── src
├── Util.Aop.AspectCore
│ ├── 03-Util.Aop.AspectCore.csproj
│ ├── AppBuilderExtensions.cs
│ ├── IgnoreAttribute.cs
│ ├── InterceptorBase.cs
│ ├── NotEmptyAttribute.cs
│ ├── NotNullAttribute.cs
│ ├── ParameterInterceptorBase.cs
│ └── Usings.cs
├── Util.Application.EntityFrameworkCore
│ ├── 02-Util.Application.EntityFrameworkCore.csproj
│ ├── CrudServiceBase.cs
│ ├── QueryServiceBase.cs
│ ├── Trees
│ │ ├── TreeQueryServiceBase.cs
│ │ └── TreeServiceBase.cs
│ └── Usings.cs
├── Util.Application.WebApi
│ ├── 03-Util.Application.WebApi.csproj
│ ├── Controllers
│ │ ├── CrudControllerBase.cs
│ │ ├── QueryControllerBase.cs
│ │ ├── TreeControllerBase.cs
│ │ ├── TreeQueryControllerBase.cs
│ │ └── WebApiControllerBase.cs
│ ├── Filters
│ │ ├── ErroLogFilterAttribute.cs
│ │ ├── ExceptionHandlerAttribute.cs
│ │ └── LockAttribute.cs
│ ├── IResultFactory.cs
│ ├── Infrastructure
│ │ ├── ServiceRegistrarConfigExtensions.cs
│ │ └── WebApiServiceRegistrar.cs
│ ├── JsonSerializerOptionsFactory.cs
│ ├── Logging
│ │ ├── LogContextAccessor.cs
│ │ ├── LogContextMiddleware.cs
│ │ ├── LogContextMiddlewareExtensions.cs
│ │ └── LogContextStartupFilter.cs
│ ├── Models
│ │ └── SaveModel.cs
│ ├── Properties
│ │ ├── WebApiResource.Designer.cs
│ │ └── WebApiResource.resx
│ ├── Result.cs
│ ├── Sessions
│ │ └── SessionExtensions.cs
│ └── Usings.cs
├── Util.Application
│ ├── 01-Util.Application.csproj
│ ├── AppBuilderExtensions.cs
│ ├── Dtos
│ │ ├── DtoBase.cs
│ │ ├── IDto.cs
│ │ ├── IRequest.cs
│ │ └── RequestBase.cs
│ ├── ExceptionExtensions.cs
│ ├── ICrudService.cs
│ ├── IQueryService.cs
│ ├── IService.cs
│ ├── Locks
│ │ ├── DefaultLock.cs
│ │ ├── ILock.cs
│ │ ├── LockType.cs
│ │ └── NullLock.cs
│ ├── Properties
│ │ ├── ApplicationResource.Designer.cs
│ │ └── ApplicationResource.resx
│ ├── ServiceBase.cs
│ ├── TreeNodeExtensions.cs
│ ├── Trees
│ │ ├── ITreeNode.cs
│ │ ├── ITreeQueryService.cs
│ │ ├── ITreeService.cs
│ │ ├── LoadMode.cs
│ │ ├── LoadOperation.cs
│ │ ├── TreeDtoBase.cs
│ │ ├── TreeQueryActionBase.cs
│ │ ├── TreeResultBase.cs
│ │ ├── TreeTableQueryAction.cs
│ │ ├── TreeTableResult.cs
│ │ └── TreeTableResultBase.cs
│ └── Usings.cs
├── Util.AspNetCore
│ ├── 07-Util.AspNetCore.csproj
│ ├── AppBuilderExtensions.cs
│ ├── AspNetCore
│ │ └── IJsonSerializerOptionsFactory.cs
│ ├── Helpers
│ │ ├── Ip.cs
│ │ └── Web.cs
│ ├── Http
│ │ ├── HttpClientService.cs
│ │ ├── HttpRequest.cs
│ │ └── HttpResponseMessageExtensions.cs
│ ├── IdentityExtensions.cs
│ ├── Infrastructure
│ │ └── AspNetCoreServiceRegistrar.cs
│ ├── Security
│ │ ├── AclAttribute.cs
│ │ ├── Authorization
│ │ │ ├── AclFilter.cs
│ │ │ ├── AclHandler.cs
│ │ │ ├── AclMiddlewareResultHandler.cs
│ │ │ ├── AclPolicyHelper.cs
│ │ │ ├── AclPolicyProvider.cs
│ │ │ └── AclRequirement.cs
│ │ └── Encryptors
│ │ │ └── DataProtectionEncryptor.cs
│ ├── Sessions
│ │ └── UserSession.cs
│ ├── Usings.cs
│ └── WebApplicationBuilderExtensions.cs
├── Util.Caching.EasyCaching
│ ├── 02-Util.Caching.EasyCaching.csproj
│ ├── AppBuilderExtensions.cs
│ ├── CacheKeyGenerator.cs
│ ├── CacheManager.cs
│ ├── CacheProviderKey.cs
│ ├── EasyCachingOptions.cs
│ ├── MemoryCacheManager.cs
│ ├── RedisCacheManager.cs
│ └── Usings.cs
├── Util.Caching
│ ├── 01-Util.Caching.csproj
│ ├── CacheAttribute.cs
│ ├── CacheKey.cs
│ ├── CacheKeyExtensions.cs
│ ├── CacheOptions.cs
│ ├── ICache.cs
│ ├── ICacheKeyGenerator.cs
│ ├── ILocalCache.cs
│ ├── IRedisCache.cs
│ ├── LocalCacheAttribute.cs
│ ├── RedisCacheAttribute.cs
│ └── Usings.cs
├── Util.Core
│ ├── 01-Util.Core.csproj
│ ├── Applications
│ │ └── StateCode.cs
│ ├── CommonExtensions.cs
│ ├── Configs
│ │ ├── AppBuilder.cs
│ │ ├── IAppBuilder.cs
│ │ ├── IOptions.cs
│ │ ├── IOptionsExtension.cs
│ │ ├── Options.cs
│ │ ├── OptionsBase.cs
│ │ └── OptionsExtensionBase.cs
│ ├── ConvertExtensions.cs
│ ├── Data
│ │ └── Operator.cs
│ ├── DateTimeExtensions.cs
│ ├── Dates
│ │ ├── AppBuilderExtensions.cs
│ │ └── TimeOptions.cs
│ ├── Dependency
│ │ ├── Container.cs
│ │ ├── IDependencyRegistrar.cs
│ │ ├── IScopeDependency.cs
│ │ ├── ISingletonDependency.cs
│ │ ├── ITransientDependency.cs
│ │ └── IocAttribute.cs
│ ├── DisposeAction.cs
│ ├── Domain
│ │ ├── IDelete.cs
│ │ ├── IKey.cs
│ │ └── IVersion.cs
│ ├── Exceptions
│ │ ├── ConcurrencyException.cs
│ │ └── Warning.cs
│ ├── ExpressionExtensions.cs
│ ├── Expressions
│ │ ├── ParameterRebinder.cs
│ │ └── PredicateExpressionBuilder.cs
│ ├── FileStorage
│ │ ├── FileSize.cs
│ │ ├── FileSizeUnit.cs
│ │ └── FileStorageInfo.cs
│ ├── FormatExtensions.cs
│ ├── Helpers
│ │ ├── CommandLine.cs
│ │ ├── Common.cs
│ │ ├── Config.cs
│ │ ├── Const.cs
│ │ ├── Convert.cs
│ │ ├── Culture.cs
│ │ ├── Enum.cs
│ │ ├── Environment.cs
│ │ ├── File.cs
│ │ ├── Id.cs
│ │ ├── Ioc.cs
│ │ ├── Json.cs
│ │ ├── Lambda.cs
│ │ ├── Random.cs
│ │ ├── Reflection.cs
│ │ ├── Regex.cs
│ │ ├── String.cs
│ │ ├── Thread.cs
│ │ ├── Time.cs
│ │ ├── Url.cs
│ │ ├── Validation.cs
│ │ ├── Xml.Builder.cs
│ │ └── Xml.Tools.cs
│ ├── HostBuilderExtensions.cs
│ ├── Http
│ │ ├── HttpContentType.cs
│ │ ├── IHttpClient.cs
│ │ └── IHttpRequest.cs
│ ├── Images
│ │ └── ImageType.cs
│ ├── Infrastructure
│ │ ├── Bootstrapper.cs
│ │ ├── BootstrapperConfig.cs
│ │ ├── DependencyServiceRegistrar.cs
│ │ ├── IServiceRegistrar.cs
│ │ ├── ServiceContext.cs
│ │ ├── ServiceRegistrarConfig.cs
│ │ └── ServiceRegistrarConfigExtensions.cs
│ ├── Item.cs
│ ├── JsonOptions.cs
│ ├── ObjectMapperExtensions.cs
│ ├── ObjectMapping
│ │ └── IObjectMapper.cs
│ ├── Properties
│ │ ├── R.Designer.cs
│ │ └── R.resx
│ ├── ReflectionExtensions.cs
│ ├── Reflections
│ │ ├── AppDomainAssemblyFinder.cs
│ │ ├── AppDomainTypeFinder.cs
│ │ ├── IAssemblyFinder.cs
│ │ └── ITypeFinder.cs
│ ├── ServiceCollectionExtensions.cs
│ ├── Sessions
│ │ ├── ISession.cs
│ │ └── NullSession.cs
│ ├── StringExtensions.cs
│ ├── SystemTextJson
│ │ ├── DateTimeJsonConverter.cs
│ │ ├── NullableDateTimeJsonConverter.cs
│ │ ├── UtcDateTimeJsonConverter.cs
│ │ └── UtcNullableDateTimeJsonConverter.cs
│ ├── Ui
│ │ ├── HtmlAttribute.cs
│ │ └── ModelAttribute.cs
│ ├── Usings.cs
│ └── ValidationExtensions.cs
├── Util.Data.Abstractions
│ ├── 06-Util.Data.Abstractions.csproj
│ ├── Filters
│ │ └── IFilterOperation.cs
│ ├── ICondition.cs
│ ├── IUnitOfWork.cs
│ ├── IUnitOfWorkActionManager.cs
│ ├── NullUnitOfWorkActionManager.cs
│ ├── PageList.cs
│ ├── Queries
│ │ ├── IPage.cs
│ │ ├── ITrack.cs
│ │ └── Pager.cs
│ ├── StoreExtensions.cs
│ ├── Stores
│ │ ├── IQueryStore.cs
│ │ └── IStore.cs
│ └── Usings.cs
├── Util.Data.Core
│ ├── 01-Util.Data.Core.csproj
│ ├── DatabaseType.cs
│ ├── DefaultDatabase.cs
│ ├── FilterExtensions.cs
│ ├── Filters
│ │ ├── IFilter.cs
│ │ ├── IFilterManager.cs
│ │ └── IFilterSwitch.cs
│ ├── IDatabase.cs
│ ├── IDatabaseFactory.cs
│ ├── Queries
│ │ ├── Boundary.cs
│ │ ├── Conditions
│ │ │ ├── DateSegmentCondition.cs
│ │ │ ├── DateTimeSegmentCondition.cs
│ │ │ ├── DecimalSegmentCondition.cs
│ │ │ ├── DefaultCondition.cs
│ │ │ ├── DoubleSegmentCondition.cs
│ │ │ ├── IntSegmentCondition.cs
│ │ │ ├── Internal
│ │ │ │ ├── DateTimeQuery.cs
│ │ │ │ ├── DecimalQuery.cs
│ │ │ │ ├── DoubleQuery.cs
│ │ │ │ └── IntQuery.cs
│ │ │ ├── OrIfNotEmptyCondition.cs
│ │ │ ├── SegmentConditionBase.cs
│ │ │ └── WhereIfNotEmptyCondition.cs
│ │ └── QueryParameter.cs
│ ├── QueryableExtensions.cs
│ ├── Trees
│ │ ├── ITreeQueryParameter.cs
│ │ ├── TreeCondition.cs
│ │ └── TreeQueryParameter.cs
│ ├── UnitOfWorkActionManager.cs
│ └── Usings.cs
├── Util.Data.Dapper.All
│ ├── 05-Util.Data.Dapper.All.csproj
│ ├── Infrastructure
│ │ ├── DapperServiceRegistrar.cs
│ │ └── ServiceRegistrarConfigExtensions.cs
│ ├── Metadata
│ │ ├── MetadataServiceFactory.cs
│ │ └── TypeConverterFactory.cs
│ └── Usings.cs
├── Util.Data.Dapper.Core
│ ├── 01-Util.Data.Dapper.Core.csproj
│ ├── Infrastructure
│ │ ├── DapperServiceRegistrar.cs
│ │ └── ServiceRegistrarConfigExtensions.cs
│ ├── Properties
│ │ ├── UtilDataDapperResource.Designer.cs
│ │ └── UtilDataDapperResource.resx
│ ├── Sql
│ │ ├── SqlExecutorBase.cs
│ │ └── SqlQueryBase.cs
│ ├── TypeHandlers
│ │ └── ExtraPropertiesTypeHandler.cs
│ └── Usings.cs
├── Util.Data.Dapper.MySql
│ ├── 04-Util.Data.Dapper.MySql.csproj
│ ├── Metadata
│ │ ├── MySqlMetadataService.cs
│ │ └── MySqlTypeConverter.cs
│ ├── Sql
│ │ ├── AppBuilderExtensions.cs
│ │ ├── Builders
│ │ │ ├── MySqlBuilder.cs
│ │ │ ├── MySqlColumnCache.cs
│ │ │ ├── MySqlDialect.cs
│ │ │ └── MySqlExistsSqlBuilder.cs
│ │ ├── MySqlDatabaseFactory.cs
│ │ ├── MySqlExecutor.cs
│ │ ├── MySqlExecutorBase.cs
│ │ ├── MySqlQuery.cs
│ │ └── MySqlQueryBase.cs
│ └── Usings.cs
├── Util.Data.Dapper.PostgreSql
│ ├── 03-Util.Data.Dapper.PostgreSql.csproj
│ ├── Metadata
│ │ ├── PostgreSqlMetadataService.cs
│ │ └── PostgreSqlTypeConverter.cs
│ ├── Sql
│ │ ├── AppBuilderExtensions.cs
│ │ ├── Builders
│ │ │ ├── PostgreSqlBuilder.cs
│ │ │ ├── PostgreSqlColumnCache.cs
│ │ │ ├── PostgreSqlDialect.cs
│ │ │ └── PostgreSqlExistsSqlBuilder.cs
│ │ ├── PostgreSqlDatabaseFactory.cs
│ │ ├── PostgreSqlExecutor.cs
│ │ ├── PostgreSqlExecutorBase.cs
│ │ ├── PostgreSqlQuery.cs
│ │ └── PostgreSqlQueryBase.cs
│ └── Usings.cs
├── Util.Data.Dapper.SqlServer
│ ├── 02-Util.Data.Dapper.SqlServer.csproj
│ ├── Metadata
│ │ ├── SqlServerMetadataService.cs
│ │ └── SqlServerTypeConverter.cs
│ ├── Sql
│ │ ├── AppBuilderExtensions.cs
│ │ ├── Builders
│ │ │ ├── SqlServerBuilder.cs
│ │ │ ├── SqlServerColumnCache.cs
│ │ │ ├── SqlServerDialect.cs
│ │ │ └── SqlServerExistsSqlBuilder.cs
│ │ ├── SqlServerDatabaseFactory.cs
│ │ ├── SqlServerSqlExecutor.cs
│ │ ├── SqlServerSqlExecutorBase.cs
│ │ ├── SqlServerSqlQuery.cs
│ │ └── SqlServerSqlQueryBase.cs
│ └── Usings.cs
├── Util.Data.EntityFrameworkCore.MySql
│ ├── 04-Util.Data.EntityFrameworkCore.MySql.csproj
│ ├── AppBuilderExtensions.cs
│ ├── MySqlUnitOfWorkBase.cs
│ └── Usings.cs
├── Util.Data.EntityFrameworkCore.Oracle
│ ├── 06-Util.Data.EntityFrameworkCore.Oracle.csproj
│ ├── AppBuilderExtensions.cs
│ ├── OracleUnitOfWorkBase.cs
│ └── Usings.cs
├── Util.Data.EntityFrameworkCore.PostgreSql
│ ├── 03-Util.Data.EntityFrameworkCore.PostgreSql.csproj
│ ├── AppBuilderExtensions.cs
│ ├── PgSqlUnitOfWorkBase.cs
│ └── Usings.cs
├── Util.Data.EntityFrameworkCore.SqlServer
│ ├── 02-Util.Data.EntityFrameworkCore.SqlServer.csproj
│ ├── AppBuilderExtensions.cs
│ ├── SqlServerUnitOfWorkBase.cs
│ └── Usings.cs
├── Util.Data.EntityFrameworkCore.Sqlite
│ ├── 05-Util.Data.EntityFrameworkCore.Sqlite.csproj
│ ├── AppBuilderExtensions.cs
│ ├── SqliteUnitOfWorkBase.cs
│ └── Usings.cs
├── Util.Data.EntityFrameworkCore
│ ├── 01-Util.Data.EntityFrameworkCore.csproj
│ ├── FilterExtensions.cs
│ ├── Filters
│ │ ├── DeleteFilter.cs
│ │ ├── FilterBase.cs
│ │ └── FilterManager.cs
│ ├── Infrastructure
│ │ ├── EntityFrameworkServiceRegistrar.cs
│ │ └── ServiceRegistrarConfigExtensions.cs
│ ├── Migrations
│ │ ├── IMigrationFileService.cs
│ │ ├── IMigrationService.cs
│ │ ├── MigrationFileService.cs
│ │ └── MigrationService.cs
│ ├── QueryableExtensions.cs
│ ├── RepositoryBase.cs
│ ├── StoreBase.cs
│ ├── Trees
│ │ └── TreeRepositoryBase.cs
│ ├── UnitOfWorkBase.cs
│ ├── UnitOfWorkExtensions.cs
│ ├── Usings.cs
│ ├── ValueComparers
│ │ └── ExtraPropertyDictionaryValueComparer.cs
│ └── ValueConverters
│ │ ├── DateTimeValueConverter.cs
│ │ ├── ExtraPropertiesValueConverter.cs
│ │ └── TrimStringValueConverter.cs
├── Util.Data.Metadata
│ ├── 03-Util.Data.Metadata.csproj
│ ├── ColumnInfo.cs
│ ├── DatabaseInfo.cs
│ ├── IMetadataService.cs
│ ├── IMetadataServiceFactory.cs
│ ├── ITypeConverter.cs
│ ├── ITypeConverterFactory.cs
│ ├── TableInfo.cs
│ └── Usings.cs
├── Util.Data.Sql
│ ├── 02-Util.Data.Sql.csproj
│ ├── Builders
│ │ ├── Caches
│ │ │ ├── ColumnCacheBase.cs
│ │ │ └── IColumnCache.cs
│ │ ├── Clauses
│ │ │ ├── ClauseBase.cs
│ │ │ ├── EndClause.cs
│ │ │ ├── FromClause.cs
│ │ │ ├── GroupByClause.cs
│ │ │ ├── IEndClause.cs
│ │ │ ├── IFromClause.cs
│ │ │ ├── IGroupByClause.cs
│ │ │ ├── IInsertClause.cs
│ │ │ ├── IJoinClause.cs
│ │ │ ├── IOrderByClause.cs
│ │ │ ├── ISelectClause.cs
│ │ │ ├── ISqlClause.cs
│ │ │ ├── IStartClause.cs
│ │ │ ├── IWhereClause.cs
│ │ │ ├── InsertClause.cs
│ │ │ ├── JoinClause.cs
│ │ │ ├── OrderByClause.cs
│ │ │ ├── SelectClause.cs
│ │ │ ├── StartClause.cs
│ │ │ └── WhereClause.cs
│ │ ├── Conditions
│ │ │ ├── AndCondition.cs
│ │ │ ├── ContainsCondition.cs
│ │ │ ├── EndsCondition.cs
│ │ │ ├── EqualCondition.cs
│ │ │ ├── ExistsCondition.cs
│ │ │ ├── GreaterCondition.cs
│ │ │ ├── GreaterEqualCondition.cs
│ │ │ ├── InCondition.cs
│ │ │ ├── IsNotNullCondition.cs
│ │ │ ├── IsNullCondition.cs
│ │ │ ├── LessCondition.cs
│ │ │ ├── LessEqualCondition.cs
│ │ │ ├── NotEqualCondition.cs
│ │ │ ├── NotExistsCondition.cs
│ │ │ ├── NotInCondition.cs
│ │ │ ├── NullCondition.cs
│ │ │ ├── OrCondition.cs
│ │ │ ├── SegmentCondition.cs
│ │ │ ├── SqlCondition.cs
│ │ │ ├── SqlConditionBase.cs
│ │ │ └── StartsCondition.cs
│ │ ├── Core
│ │ │ ├── ColumnItem.cs
│ │ │ ├── CteItem.cs
│ │ │ ├── DialectBase.cs
│ │ │ ├── NameItem.cs
│ │ │ ├── OrderByItem.cs
│ │ │ ├── SplitItem.cs
│ │ │ ├── SqlBuilderItem.cs
│ │ │ └── TableItem.cs
│ │ ├── IConditionFactory.cs
│ │ ├── IDialect.cs
│ │ ├── IExistsSqlBuilder.cs
│ │ ├── ISqlContent.cs
│ │ ├── ISqlPartAccessor.cs
│ │ ├── Operations
│ │ │ ├── IEnd.cs
│ │ │ ├── IFrom.cs
│ │ │ ├── IGroupBy.cs
│ │ │ ├── IInsert.cs
│ │ │ ├── IJoin.cs
│ │ │ ├── IOrderBy.cs
│ │ │ ├── ISelect.cs
│ │ │ ├── ISet.cs
│ │ │ ├── ISqlOperation.cs
│ │ │ ├── ISqlParameter.cs
│ │ │ ├── ISqlQueryOperation.cs
│ │ │ ├── IStart.cs
│ │ │ └── IWhere.cs
│ │ ├── Params
│ │ │ ├── IClearParameters.cs
│ │ │ ├── IGetParameter.cs
│ │ │ ├── IParamLiteralsResolver.cs
│ │ │ ├── IParameterManager.cs
│ │ │ ├── ParamLiteralsResolver.cs
│ │ │ ├── ParameterManager.cs
│ │ │ └── SqlParam.cs
│ │ ├── Sets
│ │ │ ├── ISqlBuilderSet.cs
│ │ │ ├── SqlBuilderSet.cs
│ │ │ └── SqlBuilderSetItem.cs
│ │ ├── SqlBuilderBase.cs
│ │ ├── SqlBuilderResult.cs
│ │ └── SqlConditionFactory.cs
│ ├── Configs
│ │ ├── ISqlOptions.cs
│ │ └── ISqlOptionsAccessor.cs
│ ├── Database
│ │ ├── IConnectionManager.cs
│ │ └── ITransactionManager.cs
│ ├── EndClauseExtensions.cs
│ ├── FromClauseExtensions.cs
│ ├── GroupByClauseExtensions.cs
│ ├── ISqlBuilder.cs
│ ├── ISqlCondition.cs
│ ├── ISqlExecutor.cs
│ ├── ISqlQuery.cs
│ ├── InsertClauseExtensions.cs
│ ├── JoinClauseExtensions.cs
│ ├── OrderByClauseExtensions.cs
│ ├── ParameterExtensions.cs
│ ├── SelectClauseExtensions.cs
│ ├── SqlBuilderSetExtensions.cs
│ ├── SqlExecutorExtensions.cs
│ ├── SqlOptions.cs
│ ├── SqlOptionsExtensions.cs
│ ├── SqlQueryExtensions.Query.cs
│ ├── SqlQueryExtensions.Scalar.cs
│ ├── SqlQueryExtensions.cs
│ ├── StartClauseExtensions.cs
│ ├── Usings.cs
│ └── WhereClauseExtensions.cs
├── Util.Domain.Biz
│ ├── 02-Util.Domain.Biz.csproj
│ ├── Enums
│ │ ├── Gender.cs
│ │ └── Nation.cs
│ └── Usings.cs
├── Util.Domain
│ ├── 01-Util.Domain.csproj
│ ├── Auditing
│ │ ├── CreationAuditedSetter.cs
│ │ ├── IAudited.cs
│ │ ├── ICreationAudited.cs
│ │ ├── ICreationTime.cs
│ │ ├── ILastModificationTime.cs
│ │ ├── IModificationAudited.cs
│ │ └── ModificationAuditedSetter.cs
│ ├── Compare
│ │ ├── ChangeValue.cs
│ │ ├── ChangeValueCollection.cs
│ │ ├── ICompareChange.cs
│ │ ├── KeyListComparator.cs
│ │ ├── KeyListCompareResult.cs
│ │ ├── ListComparator.cs
│ │ └── ListCompareResult.cs
│ ├── Entities
│ │ ├── AggregateRoot.cs
│ │ ├── DomainObjectBase.cs
│ │ ├── EntityBase.cs
│ │ ├── IAggregateRoot.cs
│ │ ├── IDomainObject.cs
│ │ ├── IEntity.cs
│ │ └── ValueObjectBase.cs
│ ├── Events
│ │ ├── EntityChangeType.cs
│ │ ├── EntityChangedEvent.cs
│ │ ├── EntityCreatedEvent.cs
│ │ ├── EntityDeletedEvent.cs
│ │ └── EntityUpdatedEvent.cs
│ ├── Extending
│ │ ├── ExtraProperty.cs
│ │ ├── ExtraPropertyDictionary.cs
│ │ └── IExtraProperties.cs
│ ├── ExtraPropertyDictionaryExtensions.cs
│ ├── ITreeRepositoryExtensions.cs
│ ├── ListCompareExtensions.cs
│ ├── Properties
│ │ ├── DomainResource.Designer.cs
│ │ └── DomainResource.resx
│ ├── Repositories
│ │ ├── IBasicRepository.cs
│ │ ├── IQueryRepository.cs
│ │ └── IRepository.cs
│ ├── Services
│ │ ├── IDomainService.cs
│ │ └── ParameterBase.cs
│ ├── Trees
│ │ ├── IEnabled.cs
│ │ ├── IParentId.cs
│ │ ├── IPath.cs
│ │ ├── ISortId.cs
│ │ ├── ITreeEntity.cs
│ │ ├── ITreeRepository.cs
│ │ ├── TreeEntityBase.cs
│ │ └── UpdatePathManager.cs
│ └── Usings.cs
├── Util.Events.Abstractions
│ ├── 01-Util.Events.Abstractions.csproj
│ ├── IEvent.cs
│ ├── IEventBus.cs
│ ├── IEventHandler.cs
│ ├── IIntegrationEvent.cs
│ ├── IIntegrationEventBus.cs
│ ├── IntegrationEvent.cs
│ └── Usings.cs
├── Util.Events
│ ├── 02-Util.Events.csproj
│ ├── EventBusExtensions.cs
│ ├── EventHandlerBase.cs
│ ├── ILocalEventBus.cs
│ ├── ILocalEventHandler.cs
│ ├── Infrastructure
│ │ ├── LocalEventBusServiceRegistrar.cs
│ │ └── ServiceRegistrarConfigExtensions.cs
│ ├── LocalEventBus.cs
│ ├── NullEventBus.cs
│ ├── Properties
│ │ ├── EventBusResource.Designer.cs
│ │ └── EventBusResource.resx
│ └── Usings.cs
├── Util.FileStorage.Minio
│ ├── 02-Util.FileStorage.Minio.csproj
│ ├── AppBuilderExtensions.cs
│ ├── IMinioConfigProvider.cs
│ ├── MinioConfig.cs
│ ├── MinioConfigProvider.cs
│ ├── MinioFileStore.cs
│ ├── MinioOptions.cs
│ └── Usings.cs
├── Util.FileStorage
│ ├── 01-Util.FileStorage.csproj
│ ├── BucketNameProcessor.cs
│ ├── BucketNameProcessorFactory.cs
│ ├── DeleteFileArgs.cs
│ ├── FileExistsArgs.cs
│ ├── FileNameProcessor.cs
│ ├── FileNameProcessorFactory.cs
│ ├── FileResult.cs
│ ├── FileStorageArgs.cs
│ ├── GenerateDownloadUrlArgs.cs
│ ├── GenerateUploadUrlArgs.cs
│ ├── GetFileStreamArgs.cs
│ ├── IBucketNameProcessor.cs
│ ├── IBucketNameProcessorFactory.cs
│ ├── IFileNameProcessor.cs
│ ├── IFileNameProcessorFactory.cs
│ ├── IFileStore.cs
│ ├── IFileStoreExtensions.cs
│ ├── ProcessedName.cs
│ ├── SaveFileArgs.cs
│ ├── SaveFileByUrlArgs.cs
│ ├── UserTimeFileNameProcessor.cs
│ └── Usings.cs
├── Util.Generators.Razor
│ ├── 02-Util.Generators.Razor.csproj
│ ├── Infrastructure
│ │ ├── RazorGeneratorServiceRegistrar.cs
│ │ └── ServiceRegistrarConfigExtensions.cs
│ ├── PartTemplateFilter.cs
│ ├── RazorTemplate.cs
│ ├── RazorTemplateFinder.cs
│ └── Usings.cs
├── Util.Generators
│ ├── 01-Util.Generators.csproj
│ ├── Configuration
│ │ ├── ClientOptions.cs
│ │ ├── GeneratorOptions.cs
│ │ ├── GeneratorOptionsBuilder.cs
│ │ ├── IGeneratorOptionsBuilder.cs
│ │ ├── MessageOptions.cs
│ │ ├── ProjectOptions.cs
│ │ └── ProjectType.cs
│ ├── Contexts
│ │ ├── DbTypeExtensions.cs
│ │ ├── EntityContext.cs
│ │ ├── GeneratorContext.cs
│ │ ├── GeneratorContextBuilder.cs
│ │ ├── IGeneratorContextBuilder.cs
│ │ ├── Output.cs
│ │ ├── ProjectContext.cs
│ │ └── Property.cs
│ ├── Generator.cs
│ ├── IGenerator.cs
│ ├── Logs
│ │ ├── GeneratorLogger.cs
│ │ ├── IGeneratorLogger.cs
│ │ └── NullGeneratorLogger.cs
│ ├── NamingConvention.cs
│ ├── Properties
│ │ ├── GeneratorResource.Designer.cs
│ │ └── GeneratorResource.resx
│ ├── Resources
│ │ ├── IResourceManager.cs
│ │ ├── Resource.cs
│ │ └── ResourceManager.cs
│ ├── SystemType.cs
│ ├── SystemTypeExtensions.cs
│ ├── Templates
│ │ ├── ITemplate.cs
│ │ ├── ITemplateFilter.cs
│ │ ├── ITemplateFilterManager.cs
│ │ ├── ITemplateFinder.cs
│ │ └── TemplateFilterManager.cs
│ └── Usings.cs
├── Util.Images.Avatar
│ ├── 02-Util.Images.Avatar.csproj
│ ├── AvatarManager.cs
│ ├── IAvatarManager.cs
│ └── Usings.cs
├── Util.Images.ImageSharp
│ ├── 01-Util.Images.ImageSharp.csproj
│ ├── Commands
│ │ ├── ICommand.cs
│ │ └── TextCommand.cs
│ ├── IImageManager.cs
│ ├── IImageWrapper.cs
│ ├── ImageManager.cs
│ ├── ImageWrapper.cs
│ └── Usings.cs
├── Util.Localization
│ ├── 01-Util.Localization.csproj
│ ├── AppBuilderExtensions.cs
│ ├── Json
│ │ ├── IPathResolver.cs
│ │ ├── JsonStringLocalizer.cs
│ │ ├── JsonStringLocalizerFactory.cs
│ │ ├── JsonStringLocalizerLoggerExtensions.cs
│ │ ├── PathResolver.cs
│ │ └── StringLocalizer.cs
│ ├── JsonLocalizationOptions.cs
│ └── Usings.cs
├── Util.Logging.Serilog.Exceptionless
│ ├── 03-Util.Logging.Serilog.Exceptionless.csproj
│ ├── AppBuilderExtensions.cs
│ ├── SerilogExceptionlessConfiguration.cs
│ └── Usings.cs
├── Util.Logging.Serilog
│ ├── 02-Util.Logging.Serilog.csproj
│ ├── AppBuilderExtensions.cs
│ ├── Enrichers
│ │ ├── LogContextEnricher.cs
│ │ └── LogLevelEnricher.cs
│ ├── LogOptions.cs
│ ├── LoggerConfigurationExtensions.cs
│ ├── LoggerEnrichmentConfigurationExtensions.cs
│ └── Usings.cs
├── Util.Logging
│ ├── 01-Util.Logging.csproj
│ ├── ILog.cs
│ ├── ILogContextAccessor.cs
│ ├── ILogExtensions.cs
│ ├── ILogFactory.cs
│ ├── ILoggerWrapper.cs
│ ├── Log.cs
│ ├── LogContext.cs
│ ├── LogFactory.cs
│ ├── LogT.cs
│ ├── LoggerWrapper.cs
│ ├── NullLog.cs
│ └── Usings.cs
├── Util.Microservices.Dapr
│ ├── 03-Util.Microservices.Dapr.csproj
│ ├── AppBuilderExtensions.cs
│ ├── CommandLines
│ │ ├── DaprRunCommand.cs
│ │ └── DaprStopCommand.cs
│ ├── DaprEventBus.cs
│ ├── DaprMicroserviceClient.cs
│ ├── DaprMicroserviceClientFactory.cs
│ ├── DaprOptions.cs
│ ├── IMicroserviceClientFactoryExtensions.cs
│ ├── ServiceInvocationOptions.cs
│ ├── ServiceInvocations
│ │ ├── DaprServiceInvocation.cs
│ │ ├── DaprServiceInvocationBase.cs
│ │ ├── RequestFilterBase.cs
│ │ └── ResponseFilterBase.cs
│ └── Usings.cs
├── Util.Microservices.HealthChecks
│ ├── 04-Util.Microservices.HealthChecks.csproj
│ ├── Dapr
│ │ └── DaprHealthCheck.cs
│ ├── EntityFrameworkCore
│ │ └── UnitOfWorkHealthCheck.cs
│ ├── HealthCheckBuilderExtensions.cs
│ └── Usings.cs
├── Util.Microservices.Polly
│ ├── 02-Util.Microservices.Polly.csproj
│ ├── IPolicy.cs
│ ├── IRetryPolicy.TResult.cs
│ ├── IRetryPolicy.cs
│ ├── IRetryPolicyHandler.cs
│ ├── Polly
│ │ ├── EmptyPolicy.cs
│ │ ├── EmptyRetryPolicy.cs
│ │ ├── EmptyRetryPolicyHandler.cs
│ │ ├── PollyPolicy.cs
│ │ ├── PollyRetryPolicy.TResult.cs
│ │ ├── PollyRetryPolicy.cs
│ │ └── PollyRetryPolicyHandler.cs
│ └── Usings.cs
├── Util.Microservices
│ ├── 01-Util.Microservices.csproj
│ ├── IMicroserviceClient.cs
│ ├── IMicroserviceClientFactory.cs
│ ├── IRequestFilter.cs
│ ├── IResponseFilter.cs
│ ├── IServiceInvocation.cs
│ ├── IServiceInvocationBase.cs
│ ├── RequestContext.cs
│ ├── ResponseContext.cs
│ ├── ServiceResult.cs
│ ├── ServiceState.cs
│ └── Usings.cs
├── Util.ObjectMapping.AutoMapper
│ ├── 02-Util.ObjectMapping.AutoMapper.csproj
│ ├── AutoMapperExpressionExtensions.cs
│ ├── IAutoMapperConfig.cs
│ ├── Infrastructure
│ │ ├── AutoMapperServiceRegistrar.cs
│ │ └── ServiceRegistrarConfigExtensions.cs
│ ├── ObjectMapper.cs
│ └── Usings.cs
├── Util.Scheduling.Hangfire
│ ├── 03-Util.Scheduling.Hangfire.csproj
│ ├── AppBuilderExtensions.cs
│ ├── HangfireExecutionContext.cs
│ ├── HangfireJobInfo.cs
│ ├── HangfireScheduler.cs
│ ├── HangfireSchedulerManager.cs
│ ├── HangfireTrigger.cs
│ ├── IJobInfoExtensions.cs
│ ├── IJobTriggerExtensions.cs
│ ├── ISchedulerManagerExtensions.cs
│ ├── JobBase.cs
│ └── Usings.cs
├── Util.Scheduling.Quartz
│ ├── 02-Util.Scheduling.Quartz.csproj
│ ├── AppBuilderExtensions.cs
│ ├── CronHelper.cs
│ ├── IJobExtensions.cs
│ ├── IJobInfoExtensions.cs
│ ├── IJobTriggerExtensions.cs
│ ├── JobBase.cs
│ ├── QuartzExecutionContext.cs
│ ├── QuartzJobInfo.cs
│ ├── QuartzScheduler.cs
│ ├── QuartzSchedulerManager.cs
│ ├── QuartzTrigger.cs
│ └── Usings.cs
├── Util.Scheduling
│ ├── 01-Util.Scheduling.csproj
│ ├── HostService.cs
│ ├── IJob.cs
│ ├── IJobInfo.cs
│ ├── IJobTrigger.cs
│ ├── IScan.cs
│ ├── IScheduler.cs
│ ├── ISchedulerManager.cs
│ ├── NullScheduler.cs
│ ├── SchedulerManagerBase.cs
│ ├── SchedulerOptions.cs
│ └── Usings.cs
├── Util.Security
│ ├── 05-Util.Security.csproj
│ ├── Helpers
│ │ └── Encrypt.cs
│ ├── Security
│ │ ├── Authentication
│ │ │ ├── UnauthenticatedIdentity.cs
│ │ │ └── UnauthenticatedPrincipal.cs
│ │ ├── Authorization
│ │ │ └── IPermissionManager.cs
│ │ ├── ClaimTypes.cs
│ │ └── Encryptors
│ │ │ ├── IEncryptor.cs
│ │ │ └── NullEncryptor.cs
│ └── Usings.cs
├── Util.Templates.Handlebars
│ ├── 03-Util.Templates.Handlebars.csproj
│ ├── HandlebarsDotNet
│ │ ├── HandlebarsTemplateEngine.cs
│ │ └── IHandlebarsTemplateEngine.cs
│ ├── Infrastructure
│ │ ├── HandlebarsServiceRegistrar.cs
│ │ └── ServiceRegistrarConfigExtensions.cs
│ └── Usings.cs
├── Util.Templates.Razor
│ ├── 02-Util.Templates.Razor.csproj
│ ├── Infrastructure
│ │ ├── RazorServiceRegistrar.cs
│ │ └── ServiceRegistrarConfigExtensions.cs
│ ├── Razor
│ │ ├── Filters
│ │ │ ├── ModelFilter.cs
│ │ │ └── PartialAsyncFilter.cs
│ │ ├── Helpers
│ │ │ └── HtmlHelper.cs
│ │ ├── IRazorTemplateEngine.cs
│ │ ├── RazorTemplateEngine.cs
│ │ └── TemplateEngineExtensions.cs
│ ├── RazorEngineCore
│ │ ├── AnonymousTypeWrapper.cs
│ │ ├── IRazorEngine.cs
│ │ ├── IRazorEngineCompilationOptionsBuilder.cs
│ │ ├── IRazorEngineCompiledTemplate.cs
│ │ ├── IRazorEngineCompiledTemplateT.cs
│ │ ├── IRazorEngineTemplate.cs
│ │ ├── ObjectExtenders.cs
│ │ ├── README.md
│ │ ├── RazorEngine.cs
│ │ ├── RazorEngineCompilationException.cs
│ │ ├── RazorEngineCompilationOptions.cs
│ │ ├── RazorEngineCompilationOptionsBuilder.cs
│ │ ├── RazorEngineCompiledTemplate.cs
│ │ ├── RazorEngineCompiledTemplateT.cs
│ │ ├── RazorEngineException.cs
│ │ ├── RazorEngineTemplateBase.cs
│ │ └── RazorEngineTemplateBaseT.cs
│ └── Usings.cs
├── Util.Templates
│ ├── 01-Util.Templates.csproj
│ ├── ITemplateEngine.cs
│ ├── ITemplateFilter.cs
│ ├── TemplateEngineExtensions.cs
│ └── Usings.cs
├── Util.Ui.Angular
│ ├── 02-Util.Ui.Angular.csproj
│ ├── Builders
│ │ ├── AngularTagBuilder.cs
│ │ └── RouterOutletBuilder.cs
│ ├── Configs
│ │ └── AngularConst.cs
│ ├── Extensions
│ │ ├── ConfigExtensions.cs
│ │ └── TagBuilderExtensions.cs
│ ├── Renders
│ │ └── RouterOutletRender.cs
│ ├── TagHelpers
│ │ ├── AngularTagHelperBase.cs
│ │ └── RouterOutletTagHelper.cs
│ └── Usings.cs
├── Util.Ui.NgAlain
│ ├── 04-Util.Ui.NgAlain.csproj
│ ├── Components
│ │ ├── I18n
│ │ │ ├── Builders
│ │ │ │ └── I18nBuilder.cs
│ │ │ ├── I18nTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── I18nRender.cs
│ │ ├── PageHeaders
│ │ │ ├── Builders
│ │ │ │ └── PageHeaderBuilder.cs
│ │ │ ├── PageHeaderTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── PageHeaderRender.cs
│ │ └── Tinymce
│ │ │ ├── Builders
│ │ │ └── TinymceBuilder.cs
│ │ │ ├── Renders
│ │ │ └── TinymceRender.cs
│ │ │ └── TinymceTagHelper.cs
│ ├── Enums
│ │ └── TinymceToolbarMode.cs
│ └── Usings.cs
├── Util.Ui.NgZorro
│ ├── 03-Util.Ui.NgZorro.csproj
│ ├── AppBuilderExtensions.cs
│ ├── Components
│ │ ├── Affixes
│ │ │ ├── AffixTagHelper.cs
│ │ │ ├── Builders
│ │ │ │ └── AffixBuilder.cs
│ │ │ └── Renders
│ │ │ │ └── AffixRender.cs
│ │ ├── Alerts
│ │ │ ├── AlertTagHelper.cs
│ │ │ ├── Builders
│ │ │ │ └── AlertBuilder.cs
│ │ │ ├── Configs
│ │ │ │ └── AlertShareConfig.cs
│ │ │ ├── Helpers
│ │ │ │ └── AlertShareConfigService.cs
│ │ │ └── Renders
│ │ │ │ └── AlertRender.cs
│ │ ├── Anchors
│ │ │ ├── AnchorTagHelper.cs
│ │ │ ├── Builders
│ │ │ │ ├── AnchorBuilder.cs
│ │ │ │ └── LinkBuilder.cs
│ │ │ ├── LinkTagHelper.cs
│ │ │ └── Renders
│ │ │ │ ├── AnchorRender.cs
│ │ │ │ └── LinkRender.cs
│ │ ├── Autocompletes
│ │ │ ├── AutoOptionGroupTagHelper.cs
│ │ │ ├── AutoOptionTagHelper.cs
│ │ │ ├── AutocompleteTagHelper.cs
│ │ │ ├── Builders
│ │ │ │ ├── AutoOptionBuilder.cs
│ │ │ │ ├── AutoOptionGroupBuilder.cs
│ │ │ │ └── AutocompleteBuilder.cs
│ │ │ ├── Helpers
│ │ │ │ └── AutocompleteService.cs
│ │ │ └── Renders
│ │ │ │ ├── AutoOptionGroupRender.cs
│ │ │ │ ├── AutoOptionRender.cs
│ │ │ │ └── AutocompleteRender.cs
│ │ ├── Avatars
│ │ │ ├── AvatarGroupTagHelper.cs
│ │ │ ├── AvatarTagHelper.cs
│ │ │ ├── Builders
│ │ │ │ ├── AvatarBuilder.cs
│ │ │ │ └── AvatarGroupBuilder.cs
│ │ │ └── Renders
│ │ │ │ ├── AvatarGroupRender.cs
│ │ │ │ └── AvatarRender.cs
│ │ ├── Badges
│ │ │ ├── BadgeTagHelper.cs
│ │ │ ├── Builders
│ │ │ │ ├── BadgeBuilder.cs
│ │ │ │ └── RibbonBuilder.cs
│ │ │ ├── Renders
│ │ │ │ ├── BadgeRender.cs
│ │ │ │ └── RibbonRender.cs
│ │ │ └── RibbonTagHelper.cs
│ │ ├── Base
│ │ │ ├── ButtonBuilderBase.cs
│ │ │ ├── ButtonTagHelperBase.cs
│ │ │ ├── ColumnBuilderBase.cs
│ │ │ ├── ColumnTagHelperBase.cs
│ │ │ ├── FormContainerTagHelperBase.cs
│ │ │ ├── FormControlBuilderBase.cs
│ │ │ ├── FormControlContainerTagHelperBase.cs
│ │ │ ├── FormControlRenderBase.cs
│ │ │ ├── FormControlTagHelperBase.cs
│ │ │ ├── PopconfirmTagHelperBase.cs
│ │ │ ├── RowBuilderBase.cs
│ │ │ ├── RowTagHelperBase.cs
│ │ │ └── TooltipTagHelperBase.cs
│ │ ├── Breadcrumbs
│ │ │ ├── BreadcrumbItemTagHelper.cs
│ │ │ ├── BreadcrumbSeparatorTagHelper.cs
│ │ │ ├── BreadcrumbTagHelper.cs
│ │ │ ├── Builders
│ │ │ │ ├── BreadcrumbBuilder.cs
│ │ │ │ ├── BreadcrumbItemBuilder.cs
│ │ │ │ └── BreadcrumbSeparatorBuilder.cs
│ │ │ └── Renders
│ │ │ │ ├── BreadcrumbItemRender.cs
│ │ │ │ ├── BreadcrumbRender.cs
│ │ │ │ └── BreadcrumbSeparatorRender.cs
│ │ ├── Buttons
│ │ │ ├── Builders
│ │ │ │ ├── ButtonBuilder.cs
│ │ │ │ └── ButtonGroupBuilder.cs
│ │ │ ├── ButtonGroupTagHelper.cs
│ │ │ ├── ButtonTagHelper.cs
│ │ │ └── Renders
│ │ │ │ ├── ButtonGroupRender.cs
│ │ │ │ └── ButtonRender.cs
│ │ ├── Calendars
│ │ │ ├── Builders
│ │ │ │ └── CalendarBuilder.cs
│ │ │ ├── CalendarTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── CalendarRender.cs
│ │ ├── Cards
│ │ │ ├── Builders
│ │ │ │ ├── CardBuilder.cs
│ │ │ │ ├── CardGridBuilder.cs
│ │ │ │ ├── CardMetaBuilder.cs
│ │ │ │ └── CardTabBuilder.cs
│ │ │ ├── CardGridTagHelper.cs
│ │ │ ├── CardMetaTagHelper.cs
│ │ │ ├── CardTabTagHelper.cs
│ │ │ ├── CardTagHelper.cs
│ │ │ └── Renders
│ │ │ │ ├── CardGridRender.cs
│ │ │ │ ├── CardMetaRender.cs
│ │ │ │ ├── CardRender.cs
│ │ │ │ └── CardTabRender.cs
│ │ ├── Carousels
│ │ │ ├── Builders
│ │ │ │ └── CarouselBuilder.cs
│ │ │ ├── CarouselTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── CarouselRender.cs
│ │ ├── Cascaders
│ │ │ ├── Builders
│ │ │ │ └── CascaderBuilder.cs
│ │ │ ├── CascaderTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── CascaderRender.cs
│ │ ├── Checkboxes
│ │ │ ├── Builders
│ │ │ │ ├── CheckboxBuilder.cs
│ │ │ │ ├── CheckboxGroupBuilder.cs
│ │ │ │ └── CheckboxWrapperBuilder.cs
│ │ │ ├── CheckboxGroupTagHelper.cs
│ │ │ ├── CheckboxTagHelper.cs
│ │ │ ├── CheckboxWrapperTagHelper.cs
│ │ │ ├── Helpers
│ │ │ │ ├── CheckboxExpressionLoader.cs
│ │ │ │ └── CheckboxService.cs
│ │ │ └── Renders
│ │ │ │ ├── CheckboxGroupRender.cs
│ │ │ │ ├── CheckboxRender.cs
│ │ │ │ └── CheckboxWrapperRender.cs
│ │ ├── Collapses
│ │ │ ├── Builders
│ │ │ │ ├── CollapseBuilder.cs
│ │ │ │ └── CollapsePanelBuilder.cs
│ │ │ ├── CollapsePanelTagHelper.cs
│ │ │ ├── CollapseTagHelper.cs
│ │ │ └── Renders
│ │ │ │ ├── CollapsePanelRender.cs
│ │ │ │ └── CollapseRender.cs
│ │ ├── Comments
│ │ │ ├── Builders
│ │ │ │ ├── CommentActionBuilder.cs
│ │ │ │ ├── CommentBuilder.cs
│ │ │ │ └── CommentContentBuilder.cs
│ │ │ ├── CommentActionTagHelper.cs
│ │ │ ├── CommentContentTagHelper.cs
│ │ │ ├── CommentTagHelper.cs
│ │ │ ├── Configs
│ │ │ │ └── CommentShareConfig.cs
│ │ │ └── Renders
│ │ │ │ ├── CommentActionRender.cs
│ │ │ │ ├── CommentContentRender.cs
│ │ │ │ └── CommentRender.cs
│ │ ├── Containers
│ │ │ ├── Builders
│ │ │ │ └── ContainerBuilder.cs
│ │ │ ├── ContainerTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── ContainerRender.cs
│ │ ├── DatePickers
│ │ │ ├── Builders
│ │ │ │ ├── DatePickerBuilder.cs
│ │ │ │ └── RangePickerBuilder.cs
│ │ │ ├── DatePickerTagHelper.cs
│ │ │ ├── RangePickerTagHelper.cs
│ │ │ └── Renders
│ │ │ │ ├── DatePickerRender.cs
│ │ │ │ └── RangePickerRender.cs
│ │ ├── Descriptions
│ │ │ ├── Builders
│ │ │ │ ├── DescriptionBuilder.cs
│ │ │ │ └── DescriptionItemBuilder.cs
│ │ │ ├── DescriptionItemTagHelper.cs
│ │ │ ├── DescriptionTagHelper.cs
│ │ │ └── Renders
│ │ │ │ ├── DescriptionItemRender.cs
│ │ │ │ └── DescriptionRender.cs
│ │ ├── Display
│ │ │ ├── Builders
│ │ │ │ └── DisplayBuilder.cs
│ │ │ ├── DisplayTagHelper.cs
│ │ │ ├── Helpers
│ │ │ │ └── DisplayExpressionLoader.cs
│ │ │ └── Renders
│ │ │ │ └── DisplayRender.cs
│ │ ├── Dividers
│ │ │ ├── Builders
│ │ │ │ └── DividerBuilder.cs
│ │ │ ├── DividerTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── DividerRender.cs
│ │ ├── Drawers
│ │ │ ├── Builders
│ │ │ │ └── DrawerBuilder.cs
│ │ │ ├── DrawerTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── DrawerRender.cs
│ │ ├── Dropdowns
│ │ │ ├── Builders
│ │ │ │ └── DropdownMenuBuilder.cs
│ │ │ ├── DropdownMenuTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── DropdownMenuRender.cs
│ │ ├── Empties
│ │ │ ├── Builders
│ │ │ │ └── EmptyBuilder.cs
│ │ │ ├── EmptyTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── EmptyRender.cs
│ │ ├── Forms
│ │ │ ├── Builders
│ │ │ │ ├── FormBuilder.cs
│ │ │ │ ├── FormControlBuilder.cs
│ │ │ │ ├── FormItemBuilder.cs
│ │ │ │ ├── FormLabelBuilder.cs
│ │ │ │ ├── FormSplitBuilder.cs
│ │ │ │ └── FormTextBuilder.cs
│ │ │ ├── Configs
│ │ │ │ ├── FormItemShareConfig.cs
│ │ │ │ └── FormShareConfig.cs
│ │ │ ├── FormContainerTagHelper.cs
│ │ │ ├── FormControlTagHelper.cs
│ │ │ ├── FormItemTagHelper.cs
│ │ │ ├── FormLabelTagHelper.cs
│ │ │ ├── FormSplitTagHelper.cs
│ │ │ ├── FormTagHelper.cs
│ │ │ ├── FormTextTagHelper.cs
│ │ │ ├── Helpers
│ │ │ │ ├── FormItemShareService.cs
│ │ │ │ ├── FormShareService.cs
│ │ │ │ └── ValidationService.cs
│ │ │ └── Renders
│ │ │ │ ├── FormControlRender.cs
│ │ │ │ ├── FormItemRender.cs
│ │ │ │ ├── FormLabelRender.cs
│ │ │ │ ├── FormRender.cs
│ │ │ │ ├── FormSplitRender.cs
│ │ │ │ └── FormTextRender.cs
│ │ ├── Grids
│ │ │ ├── Builders
│ │ │ │ ├── ColumnBuilder.cs
│ │ │ │ └── RowBuilder.cs
│ │ │ ├── ColumnTagHelper.cs
│ │ │ ├── Helpers
│ │ │ │ └── GridModel.cs
│ │ │ ├── Renders
│ │ │ │ ├── ColumnRender.cs
│ │ │ │ └── RowRender.cs
│ │ │ └── RowTagHelper.cs
│ │ ├── Icons
│ │ │ ├── Builders
│ │ │ │ └── IconBuilder.cs
│ │ │ ├── IconTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── IconRender.cs
│ │ ├── Images
│ │ │ ├── Builders
│ │ │ │ └── ImageBuilder.cs
│ │ │ ├── ImageTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── ImageRender.cs
│ │ ├── InputNumbers
│ │ │ ├── Builders
│ │ │ │ └── InputNumberBuilder.cs
│ │ │ ├── InputNumberTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── InputNumberRender.cs
│ │ ├── Inputs
│ │ │ ├── Builders
│ │ │ │ ├── InputBuilder.cs
│ │ │ │ ├── InputGroupBuilder.cs
│ │ │ │ ├── TextareaBuilder.cs
│ │ │ │ └── TextareaCountBuilder.cs
│ │ │ ├── Configs
│ │ │ │ └── InputGroupShareConfig.cs
│ │ │ ├── Helpers
│ │ │ │ ├── InputExpressionLoader.cs
│ │ │ │ ├── InputGroupShareService.cs
│ │ │ │ ├── InputService.cs
│ │ │ │ └── RowsModel.cs
│ │ │ ├── InputGroupTagHelper.cs
│ │ │ ├── InputTagHelper.cs
│ │ │ ├── Renders
│ │ │ │ ├── InputGroupRender.cs
│ │ │ │ ├── InputRender.cs
│ │ │ │ ├── InputRenderBase.cs
│ │ │ │ ├── TextareaCountRender.cs
│ │ │ │ └── TextareaRender.cs
│ │ │ ├── TextareaCountTagHelper.cs
│ │ │ └── TextareaTagHelper.cs
│ │ ├── Label
│ │ │ ├── Builders
│ │ │ │ └── LabelBuilder.cs
│ │ │ ├── LabelTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── LabelRender.cs
│ │ ├── Layouts
│ │ │ ├── Builders
│ │ │ │ ├── ContentBuilder.cs
│ │ │ │ ├── FooterBuilder.cs
│ │ │ │ ├── HeaderBuilder.cs
│ │ │ │ ├── LayoutBuilder.cs
│ │ │ │ └── SiderBuilder.cs
│ │ │ ├── ContentTagHelper.cs
│ │ │ ├── FooterTagHelper.cs
│ │ │ ├── HeaderTagHelper.cs
│ │ │ ├── LayoutTagHelper.cs
│ │ │ ├── Renders
│ │ │ │ ├── ContentRender.cs
│ │ │ │ ├── FooterRender.cs
│ │ │ │ ├── HeaderRender.cs
│ │ │ │ ├── LayoutRender.cs
│ │ │ │ └── SiderRender.cs
│ │ │ └── SiderTagHelper.cs
│ │ ├── Links
│ │ │ ├── ATagHelper.cs
│ │ │ ├── Builders
│ │ │ │ └── ABuilder.cs
│ │ │ └── Renders
│ │ │ │ └── ARender.cs
│ │ ├── Lists
│ │ │ ├── Builders
│ │ │ │ ├── ListBuilder.cs
│ │ │ │ ├── ListEmptyBuilder.cs
│ │ │ │ ├── ListFooterBuilder.cs
│ │ │ │ ├── ListHeaderBuilder.cs
│ │ │ │ ├── ListItemActionBuilder.cs
│ │ │ │ ├── ListItemActionsBuilder.cs
│ │ │ │ ├── ListItemBuilder.cs
│ │ │ │ ├── ListItemExtraBuilder.cs
│ │ │ │ ├── ListItemMetaAvatarBuilder.cs
│ │ │ │ ├── ListItemMetaBuilder.cs
│ │ │ │ ├── ListItemMetaDescriptionBuilder.cs
│ │ │ │ ├── ListItemMetaTitleBuilder.cs
│ │ │ │ ├── ListLoadMoreBuilder.cs
│ │ │ │ └── ListPaginationBuilder.cs
│ │ │ ├── ListEmptyTagHelper.cs
│ │ │ ├── ListFooterTagHelper.cs
│ │ │ ├── ListHeaderTagHelper.cs
│ │ │ ├── ListItemActionTagHelper.cs
│ │ │ ├── ListItemActionsTagHelper.cs
│ │ │ ├── ListItemExtraTagHelper.cs
│ │ │ ├── ListItemMetaAvatarTagHelper.cs
│ │ │ ├── ListItemMetaDescriptionTagHelper.cs
│ │ │ ├── ListItemMetaTagHelper.cs
│ │ │ ├── ListItemMetaTitleTagHelper.cs
│ │ │ ├── ListItemTagHelper.cs
│ │ │ ├── ListLoadMoreTagHelper.cs
│ │ │ ├── ListPaginationTagHelper.cs
│ │ │ ├── ListTagHelper.cs
│ │ │ └── Renders
│ │ │ │ ├── ListEmptyRender.cs
│ │ │ │ ├── ListFooterRender.cs
│ │ │ │ ├── ListHeaderRender.cs
│ │ │ │ ├── ListItemActionRender.cs
│ │ │ │ ├── ListItemActionsRender.cs
│ │ │ │ ├── ListItemExtraRender.cs
│ │ │ │ ├── ListItemMetaAvatarRender.cs
│ │ │ │ ├── ListItemMetaDescriptionRender.cs
│ │ │ │ ├── ListItemMetaRender.cs
│ │ │ │ ├── ListItemMetaTitleRender.cs
│ │ │ │ ├── ListItemRender.cs
│ │ │ │ ├── ListLoadMoreRender.cs
│ │ │ │ ├── ListPaginationRender.cs
│ │ │ │ └── ListRender.cs
│ │ ├── Mentions
│ │ │ ├── Builders
│ │ │ │ └── MentionBuilder.cs
│ │ │ ├── Configs
│ │ │ │ └── MentionShareConfig.cs
│ │ │ ├── MentionTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── MentionRender.cs
│ │ ├── Menus
│ │ │ ├── Builders
│ │ │ │ ├── MenuBuilder.cs
│ │ │ │ ├── MenuDividerBuilder.cs
│ │ │ │ ├── MenuGroupBuilder.cs
│ │ │ │ ├── MenuItemBuilder.cs
│ │ │ │ └── SubMenuBuilder.cs
│ │ │ ├── MenuDividerTagHelper.cs
│ │ │ ├── MenuGroupTagHelper.cs
│ │ │ ├── MenuItemTagHelper.cs
│ │ │ ├── MenuTagHelper.cs
│ │ │ ├── Renders
│ │ │ │ ├── MenuDividerRender.cs
│ │ │ │ ├── MenuGroupRender.cs
│ │ │ │ ├── MenuItemRender.cs
│ │ │ │ ├── MenuRender.cs
│ │ │ │ └── SubMenuRender.cs
│ │ │ └── SubMenuTagHelper.cs
│ │ ├── Modals
│ │ │ ├── Builders
│ │ │ │ └── ModalBuilder.cs
│ │ │ ├── ModalTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── ModalRender.cs
│ │ ├── PageHeaders
│ │ │ ├── Builders
│ │ │ │ ├── PageHeaderBuilder.cs
│ │ │ │ ├── PageHeaderContentBuilder.cs
│ │ │ │ ├── PageHeaderExtraBuilder.cs
│ │ │ │ ├── PageHeaderFooterBuilder.cs
│ │ │ │ ├── PageHeaderSubTitleBuilder.cs
│ │ │ │ ├── PageHeaderTagsBuilder.cs
│ │ │ │ └── PageHeaderTitleBuilder.cs
│ │ │ ├── Configs
│ │ │ │ └── PageHeaderShareConfig.cs
│ │ │ ├── PageHeaderContentTagHelper.cs
│ │ │ ├── PageHeaderExtraTagHelper.cs
│ │ │ ├── PageHeaderFooterTagHelper.cs
│ │ │ ├── PageHeaderSubTitleTagHelper.cs
│ │ │ ├── PageHeaderTagHelper.cs
│ │ │ ├── PageHeaderTagsTagHelper.cs
│ │ │ ├── PageHeaderTitleTagHelper.cs
│ │ │ └── Renders
│ │ │ │ ├── PageHeaderContentRender.cs
│ │ │ │ ├── PageHeaderExtraRender.cs
│ │ │ │ ├── PageHeaderFooterRender.cs
│ │ │ │ ├── PageHeaderRender.cs
│ │ │ │ ├── PageHeaderSubTitleRender.cs
│ │ │ │ ├── PageHeaderTagsRender.cs
│ │ │ │ └── PageHeaderTitleRender.cs
│ │ ├── Paginations
│ │ │ ├── Builders
│ │ │ │ └── PaginationBuilder.cs
│ │ │ ├── PaginationTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── PaginationRender.cs
│ │ ├── Progresses
│ │ │ ├── Builders
│ │ │ │ └── ProgressBuilder.cs
│ │ │ ├── ProgressTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── ProgressRender.cs
│ │ ├── Radios
│ │ │ ├── Builders
│ │ │ │ ├── RadioBuilder.cs
│ │ │ │ └── RadioGroupBuilder.cs
│ │ │ ├── Configs
│ │ │ │ └── RadioGroupShareConfig.cs
│ │ │ ├── Helpers
│ │ │ │ ├── RadioGroupService.cs
│ │ │ │ └── RadioService.cs
│ │ │ ├── RadioGroupTagHelper.cs
│ │ │ ├── RadioTagHelper.cs
│ │ │ └── Renders
│ │ │ │ ├── RadioGroupRender.cs
│ │ │ │ └── RadioRender.cs
│ │ ├── Rates
│ │ │ ├── Builders
│ │ │ │ └── RateBuilder.cs
│ │ │ ├── RateTagHelper.cs
│ │ │ └── Renders
│ │ │ │ └── RateRender.cs
│ │ ├── Results
│ │ │ ├── Builders
│ │ │ │ ├── ResultBuilder.cs
│ │ │ │ ├── ResultContentBuilder.cs
│ │ │ │ ├── ResultExtraBuilder.cs
│ │ │ │ ├── ResultSubtitleBuilder.cs
│ │ │ │ └── ResultTitleBuilder.cs
│ │ │ ├── Renders
│ │ │ │ ├── ResultContentRender.cs
│ │ │ │ ├── ResultExtraRender.cs
│ │ │ │ ├── ResultRender.cs
│ │ │ │ ├── ResultSubtitleRender.cs
│ │ │ │ └── ResultTitleRender.cs
│ │ │ ├── ResultContentTagHelper.cs
│ │ │ ├── ResultExtraTagHelper.cs
│ │ │ ├── ResultSubtitleTagHelper.cs
│ │ │ ├── ResultTagHelper.cs
│ │ │ └── ResultTitleTagHelper.cs
│ │ ├── Selects
│ │ │ ├── Builders
│ │ │ │ ├── OptionBuilder.cs
│ │ │ │ ├── OptionGroupBuilder.cs
│ │ │ │ └── SelectBuilder.cs
│ │ │ ├── Helpers
│ │ │ │ ├── SelectExpressionLoader.cs
│ │ │ │ └── SelectService.cs
│ │ │ ├── OptionGroupTagHelper.cs
│ │ │ ├── OptionTagHelper.cs
│ │ │ ├── Renders
│ │ │ │ ├── OptionGroupRender.cs
│ │ │ │ ├── OptionRender.cs
│ │ │ │ └── SelectRender.cs
│ │ │ └── SelectTagHelper.cs
│ │ ├── Skeletons
│ │ │ ├── Builders
│ │ │ │ ├── SkeletonBuilder.cs
│ │ │ │ └── SkeletonElementBuilder.cs
│ │ │ ├── Renders
│ │ │ │ ├── SkeletonElementRender.cs
│ │ │ │ └── SkeletonRender.cs
│ │ │ ├── SkeletonElementTagHelper.cs
│ │ │ └── SkeletonTagHelper.cs
│ │ ├── Sliders
│ │ │ ├── Builders
│ │ │ │ └── SliderBuilder.cs
│ │ │ ├── Renders
│ │ │ │ └── SliderRender.cs
│ │ │ └── SliderTagHelper.cs
│ │ ├── Spaces
│ │ │ ├── Builders
│ │ │ │ └── SpaceBuilder.cs
│ │ │ ├── Renders
│ │ │ │ └── SpaceRender.cs
│ │ │ └── SpaceTagHelper.cs
│ │ ├── Spins
│ │ │ ├── Builders
│ │ │ │ └── SpinBuilder.cs
│ │ │ ├── Renders
│ │ │ │ └── SpinRender.cs
│ │ │ └── SpinTagHelper.cs
│ │ ├── Statistics
│ │ │ ├── Builders
│ │ │ │ ├── CountdownBuilder.cs
│ │ │ │ └── StatisticBuilder.cs
│ │ │ ├── CountdownTagHelper.cs
│ │ │ ├── Renders
│ │ │ │ ├── CountdownRender.cs
│ │ │ │ └── StatisticRender.cs
│ │ │ └── StatisticTagHelper.cs
│ │ ├── Steps
│ │ │ ├── Builders
│ │ │ │ ├── StepBuilder.cs
│ │ │ │ └── StepsBuilder.cs
│ │ │ ├── Renders
│ │ │ │ ├── StepRender.cs
│ │ │ │ └── StepsRender.cs
│ │ │ ├── StepTagHelper.cs
│ │ │ └── StepsTagHelper.cs
│ │ ├── Switches
│ │ │ ├── Builders
│ │ │ │ └── SwitchBuilder.cs
│ │ │ ├── Renders
│ │ │ │ └── SwitchRender.cs
│ │ │ └── SwitchTagHelper.cs
│ │ ├── Tables
│ │ │ ├── Builders
│ │ │ │ ├── Contents
│ │ │ │ │ ├── EditContentLoader.cs
│ │ │ │ │ ├── EditFirstColumnContentLoader.cs
│ │ │ │ │ ├── ISelectCreateService.cs
│ │ │ │ │ ├── ITableColumnContent.cs
│ │ │ │ │ ├── ITableColumnContentLoader.cs
│ │ │ │ │ ├── NoEditContentLoader.cs
│ │ │ │ │ ├── NoEditFirstColumnContentLoader.cs
│ │ │ │ │ ├── TableColumnBoolContent.cs
│ │ │ │ │ ├── TableColumnContentService.cs
│ │ │ │ │ ├── TableColumnEnumContent.cs
│ │ │ │ │ ├── TableColumnTextContent.cs
│ │ │ │ │ └── TableSelectCreateService.cs
│ │ │ │ ├── FilterTriggerBuilder.cs
│ │ │ │ ├── TableBodyBuilder.cs
│ │ │ │ ├── TableBodyRowBuilder.cs
│ │ │ │ ├── TableBuilder.cs
│ │ │ │ ├── TableColumnBuilder.cs
│ │ │ │ ├── TableColumnControlBuilder.cs
│ │ │ │ ├── TableColumnDisplayBuilder.cs
│ │ │ │ ├── TableColumnRadioBuilder.cs
│ │ │ │ ├── TableHeadBuilder.cs
│ │ │ │ ├── TableHeadColumnBuilder.cs
│ │ │ │ ├── TableHeadRowBuilder.cs
│ │ │ │ ├── TableRowBuilder.cs
│ │ │ │ └── TotalTemplateBuilder.cs
│ │ │ ├── Configs
│ │ │ │ ├── TableBodyShareConfig.cs
│ │ │ │ ├── TableColumnShareConfig.cs
│ │ │ │ ├── TableHeadColumnShareConfig.cs
│ │ │ │ ├── TableHeadShareConfig.cs
│ │ │ │ └── TableShareConfig.cs
│ │ │ ├── FilterTriggerTagHelper.cs
│ │ │ ├── Helpers
│ │ │ │ ├── ColumnInfo.cs
│ │ │ │ ├── ScrollInfo.cs
│ │ │ │ ├── TableAutoCreateService.cs
│ │ │ │ ├── TableBodyAutoCreateService.cs
│ │ │ │ ├── TableBodyService.cs
│ │ │ │ ├── TableColumnControlService.cs
│ │ │ │ ├── TableColumnExpressionLoader.cs
│ │ │ │ ├── TableColumnService.cs
│ │ │ │ ├── TableHeadAutoCreateService.cs
│ │ │ │ ├── TableHeadColumnService.cs
│ │ │ │ ├── TableHeadRowAutoCreateService.cs
│ │ │ │ ├── TableHeadService.cs
│ │ │ │ ├── TableRowService.cs
│ │ │ │ └── TableService.cs
│ │ │ ├── Renders
│ │ │ │ ├── FilterTriggerRender.cs
│ │ │ │ ├── TableBodyRender.cs
│ │ │ │ ├── TableColumnControlRender.cs
│ │ │ │ ├── TableColumnDisplayRender.cs
│ │ │ │ ├── TableColumnRender.cs
│ │ │ │ ├── TableHeadColumnRender.cs
│ │ │ │ ├── TableHeadRender.cs
│ │ │ │ ├── TableRender.cs
│ │ │ │ └── TableRowRender.cs
│ │ │ ├── TableBodyTagHelper.cs
│ │ │ ├── TableColumnControlTagHelper.cs
│ │ │ ├── TableColumnDisplayTagHelper.cs
│ │ │ ├── TableColumnTagHelper.cs
│ │ │ ├── TableHeadColumnTagHelper.cs
│ │ │ ├── TableHeadTagHelper.cs
│ │ │ ├── TableRowTagHelper.cs
│ │ │ └── TableTagHelper.cs
│ │ ├── Tabs
│ │ │ ├── Builders
│ │ │ │ ├── TabBuilder.cs
│ │ │ │ └── TabSetBuilder.cs
│ │ │ ├── Renders
│ │ │ │ ├── TabRender.cs
│ │ │ │ └── TabSetRender.cs
│ │ │ ├── TabSetTagHelper.cs
│ │ │ └── TabTagHelper.cs
│ │ ├── Tags
│ │ │ ├── Builders
│ │ │ │ └── TagTagBuilder.cs
│ │ │ ├── Renders
│ │ │ │ └── TagRender.cs
│ │ │ └── TagTagHelper.cs
│ │ ├── Templates
│ │ │ ├── Builders
│ │ │ │ └── TemplateBuilder.cs
│ │ │ ├── Renders
│ │ │ │ └── TemplateRender.cs
│ │ │ └── TemplateTagHelper.cs
│ │ ├── TimePickers
│ │ │ ├── Builders
│ │ │ │ └── TimePickerBuilder.cs
│ │ │ ├── Renders
│ │ │ │ └── TimePickerRender.cs
│ │ │ └── TimePickerTagHelper.cs
│ │ ├── Timelines
│ │ │ ├── Builders
│ │ │ │ ├── TimelineBuilder.cs
│ │ │ │ └── TimelineItemBuilder.cs
│ │ │ ├── Renders
│ │ │ │ ├── TimelineItemRender.cs
│ │ │ │ └── TimelineRender.cs
│ │ │ ├── TimelineItemTagHelper.cs
│ │ │ └── TimelineTagHelper.cs
│ │ ├── Transfers
│ │ │ ├── Builders
│ │ │ │ └── TransferBuilder.cs
│ │ │ ├── Renders
│ │ │ │ └── TransferRender.cs
│ │ │ └── TransferTagHelper.cs
│ │ ├── TreeSelects
│ │ │ ├── Builders
│ │ │ │ └── TreeSelectBuilder.cs
│ │ │ ├── Renders
│ │ │ │ └── TreeSelectRender.cs
│ │ │ └── TreeSelectTagHelper.cs
│ │ ├── TreeTables
│ │ │ ├── Builders
│ │ │ │ ├── Contents
│ │ │ │ │ └── TreeTableSelectCreateService.cs
│ │ │ │ ├── TreeTableBodyBuilder.cs
│ │ │ │ ├── TreeTableBodyRowBuilder.cs
│ │ │ │ ├── TreeTableBuilder.cs
│ │ │ │ ├── TreeTableCheckBoxBuilder.cs
│ │ │ │ ├── TreeTableColumnBuilder.cs
│ │ │ │ ├── TreeTableColumnRadioBuilder.cs
│ │ │ │ ├── TreeTableContainerBuilder.cs
│ │ │ │ ├── TreeTableHeadBuilder.cs
│ │ │ │ ├── TreeTableHeadColumnBuilder.cs
│ │ │ │ ├── TreeTableHeadRowBuilder.cs
│ │ │ │ └── TreeTableMasterCheckBoxBuilder.cs
│ │ │ ├── Renders
│ │ │ │ └── TreeTableRender.cs
│ │ │ └── TreeTableTagHelper.cs
│ │ ├── TreeViews
│ │ │ ├── Builders
│ │ │ │ ├── TreeNodeBuilder.cs
│ │ │ │ ├── TreeNodeCheckboxBuilder.cs
│ │ │ │ ├── TreeNodeOptionBuilder.cs
│ │ │ │ ├── TreeNodeToggleBuilder.cs
│ │ │ │ ├── TreeViewBuilder.cs
│ │ │ │ └── TreeVirtualScrollViewBuilder.cs
│ │ │ ├── Renders
│ │ │ │ ├── TreeNodeCheckboxRender.cs
│ │ │ │ ├── TreeNodeOptionRender.cs
│ │ │ │ ├── TreeNodeRender.cs
│ │ │ │ ├── TreeNodeToggleRender.cs
│ │ │ │ ├── TreeViewRender.cs
│ │ │ │ └── TreeVirtualScrollViewRender.cs
│ │ │ ├── TreeNodeCheckboxTagHelper.cs
│ │ │ ├── TreeNodeOptionTagHelper.cs
│ │ │ ├── TreeNodeTagHelper.cs
│ │ │ ├── TreeNodeToggleTagHelper.cs
│ │ │ ├── TreeViewTagHelper.cs
│ │ │ └── TreeVirtualScrollViewTagHelper.cs
│ │ ├── Trees
│ │ │ ├── Builders
│ │ │ │ └── TreeBuilder.cs
│ │ │ ├── Helpers
│ │ │ │ └── TreeService.cs
│ │ │ ├── Renders
│ │ │ │ └── TreeRender.cs
│ │ │ └── TreeTagHelper.cs
│ │ ├── Typographies
│ │ │ ├── ArticleTagHelper.cs
│ │ │ ├── DivTagHelper.cs
│ │ │ ├── HTagHelper.cs
│ │ │ ├── PTagHelper.cs
│ │ │ ├── Renders
│ │ │ │ ├── SpanRender.cs
│ │ │ │ └── TypographyRender.cs
│ │ │ ├── SpanTagHelper.cs
│ │ │ └── TypographyTagHelper.cs
│ │ ├── Upload
│ │ │ ├── Builders
│ │ │ │ └── UploadBuilder.cs
│ │ │ ├── Helpers
│ │ │ │ ├── UploadExpressionLoader.cs
│ │ │ │ └── UploadService.cs
│ │ │ ├── Renders
│ │ │ │ └── UploadRender.cs
│ │ │ └── UploadTagHelper.cs
│ │ └── VirtualScrolls
│ │ │ ├── Builders
│ │ │ ├── VirtualScrollBuilder.cs
│ │ │ └── VirtualScrollViewportBuilder.cs
│ │ │ ├── Renders
│ │ │ ├── VirtualScrollRender.cs
│ │ │ └── VirtualScrollViewportRender.cs
│ │ │ ├── VirtualScrollTagHelper.cs
│ │ │ └── VirtualScrollViewportTagHelper.cs
│ ├── Configs
│ │ ├── AntDesignConst.cs
│ │ ├── I18nKeys.cs
│ │ └── NgZorroOptionsService.cs
│ ├── Controllers
│ │ ├── NgZorroTreeControllerBase.cs
│ │ └── NgZorroTreeQueryControllerBase.cs
│ ├── Data
│ │ ├── NgZorroTreeNode.cs
│ │ ├── NgZorroTreeResult.cs
│ │ └── TreeResult.cs
│ ├── Directives
│ │ ├── Popconfirms
│ │ │ └── TagBuilderExtensions.cs
│ │ └── Tooltips
│ │ │ └── TagBuilderExtensions.cs
│ ├── Enums
│ │ ├── AlertType.cs
│ │ ├── Align.cs
│ │ ├── AntDesignColor.cs
│ │ ├── AntDesignIcon.cs
│ │ ├── AvatarShape.cs
│ │ ├── AvatarSize.cs
│ │ ├── BadgeStatus.cs
│ │ ├── ButtonShape.cs
│ │ ├── ButtonSize.cs
│ │ ├── ButtonType.cs
│ │ ├── CalendarMode.cs
│ │ ├── CardSize.cs
│ │ ├── CardType.cs
│ │ ├── CarouselDotPosition.cs
│ │ ├── CarouselEffect.cs
│ │ ├── CascaderExpandTrigger.cs
│ │ ├── CollapseIconPosition.cs
│ │ ├── DataType.cs
│ │ ├── DatePickerMode.cs
│ │ ├── DescriptionSize.cs
│ │ ├── Direction.cs
│ │ ├── DividerOrientation.cs
│ │ ├── DividerType.cs
│ │ ├── DrawerPlacement.cs
│ │ ├── DropdownMenuPlacement.cs
│ │ ├── DropdownMenuTrigger.cs
│ │ ├── FormLayout.cs
│ │ ├── GridSize.cs
│ │ ├── IconTheme.cs
│ │ ├── InputMode.cs
│ │ ├── InputNumberPrecisionMode.cs
│ │ ├── InputSize.cs
│ │ ├── InputType.cs
│ │ ├── Justify.cs
│ │ ├── ListItemLayout.cs
│ │ ├── ListSize.cs
│ │ ├── MentionPlacement.cs
│ │ ├── MenuMode.cs
│ │ ├── MenuTheme.cs
│ │ ├── ModalAutofocus.cs
│ │ ├── PaginationSize.cs
│ │ ├── PopconfirmPlacement.cs
│ │ ├── PopconfirmTrigger.cs
│ │ ├── PopoverPlacement.cs
│ │ ├── PopoverTrigger.cs
│ │ ├── ProgressGapPosition.cs
│ │ ├── ProgressStatus.cs
│ │ ├── ProgressStrokeLinecap.cs
│ │ ├── ProgressType.cs
│ │ ├── RadioStyle.cs
│ │ ├── ResultStatus.cs
│ │ ├── RibbonPlacement.cs
│ │ ├── SelectMode.cs
│ │ ├── SiderTheme.cs
│ │ ├── SkeletonElementShape.cs
│ │ ├── SkeletonElementSize.cs
│ │ ├── SkeletonElementType.cs
│ │ ├── SliderTooltipVisible.cs
│ │ ├── SpaceAlign.cs
│ │ ├── SpaceDirection.cs
│ │ ├── SpaceSize.cs
│ │ ├── SpanChildTag.cs
│ │ ├── SpinSize.cs
│ │ ├── StepStatus.cs
│ │ ├── StepsDirection.cs
│ │ ├── StepsLabelPlacement.cs
│ │ ├── StepsSize.cs
│ │ ├── StepsType.cs
│ │ ├── SwitchSize.cs
│ │ ├── TabPosition.cs
│ │ ├── TabSize.cs
│ │ ├── TabType.cs
│ │ ├── TableColumnType.cs
│ │ ├── TableHeadColumnAlign.cs
│ │ ├── TableLayout.cs
│ │ ├── TablePaginationPosition.cs
│ │ ├── TablePaginationSize.cs
│ │ ├── TableSize.cs
│ │ ├── TagMode.cs
│ │ ├── TextType.cs
│ │ ├── TimelineItemPosition.cs
│ │ ├── TimelineMode.cs
│ │ ├── TooltipPlacement.cs
│ │ ├── TooltipTrigger.cs
│ │ ├── UploadListType.cs
│ │ └── ValidateStatus.cs
│ ├── Expressions
│ │ ├── NgZorroExpressionLoaderBase.cs
│ │ └── NgZorroExpressionResolver.cs
│ ├── Extensions
│ │ └── TagBuilderExtensions.cs
│ ├── NgZorroOptions.cs
│ ├── Services
│ │ └── NgZorroTreeQueryAction.cs
│ ├── TreeResultExtensions.cs
│ ├── Usings.cs
│ └── WebApplicationExtensions.cs
├── Util.Ui
│ ├── 01-Util.Ui.csproj
│ ├── Builders
│ │ ├── ArticleBuilder.cs
│ │ ├── CodeBuilder.cs
│ │ ├── DelBuilder.cs
│ │ ├── DivBuilder.cs
│ │ ├── EmptyContainerTagBuilder.cs
│ │ ├── EmptyTagBuilder.cs
│ │ ├── HBuilder.cs
│ │ ├── ItalicBuilder.cs
│ │ ├── KbdBuilder.cs
│ │ ├── LiBuilder.cs
│ │ ├── MarkBuilder.cs
│ │ ├── PBuilder.cs
│ │ ├── SpanBuilder.cs
│ │ ├── StrongBuilder.cs
│ │ ├── TagBuilder.cs
│ │ ├── UBuilder.cs
│ │ └── UlBuilder.cs
│ ├── Configs
│ │ ├── Config.cs
│ │ └── UiConst.cs
│ ├── Enums
│ │ └── ATarget.cs
│ ├── Expressions
│ │ ├── ExpressionLoader.cs
│ │ ├── ExpressionLoaderBase.cs
│ │ ├── ExpressionResolver.cs
│ │ ├── IExpressionLoader.cs
│ │ ├── IExpressionResolver.cs
│ │ ├── ModelExpressionHelper.cs
│ │ └── ModelExpressionInfo.cs
│ ├── Extensions
│ │ ├── TagBuilderExtensions.cs
│ │ └── TagHelperExtensions.cs
│ ├── Razor
│ │ ├── GenerateHtmlFilter.cs
│ │ ├── HtmlGenerator.cs
│ │ ├── PageRouteConvention.cs
│ │ ├── RazorOptions.cs
│ │ └── RazorPageExtensions.cs
│ ├── Renders
│ │ ├── IRender.cs
│ │ └── RenderBase.cs
│ ├── TagHelpers
│ │ ├── TagHelperBase.cs
│ │ └── TagHelperWrapper.cs
│ └── Usings.cs
└── Util.Validation
│ ├── 04-Util.Validation.csproj
│ ├── DataAnnotationValidation.cs
│ ├── IValidation.cs
│ ├── IValidationHandler.cs
│ ├── IValidationRule.cs
│ ├── NothingHandler.cs
│ ├── ThrowHandler.cs
│ ├── Usings.cs
│ ├── ValidAttribute.cs
│ ├── ValidationResultCollection.cs
│ └── Validators
│ ├── IdCardAttribute.cs
│ └── ValidatePattern.cs
└── test
├── Util.Aop.AspectCore.Tests
├── NotEmptyAttributeTest.cs
├── NotNullAttributeTest.cs
├── Samples
│ ├── ITestService.cs
│ └── TestService.cs
├── Startup.cs
└── Util.Aop.AspectCore.Tests.csproj
├── Util.Application.EntityFrameworkCore.MySql.Tests.Integration
├── Startup.cs
├── Tests
│ ├── CustomerQueryServiceTest.cs
│ ├── CustomerServiceTest.cs
│ └── ProductServiceTest.cs
├── Util.Application.EntityFrameworkCore.MySql.Tests.Integration.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Application.EntityFrameworkCore.PostgreSql.Tests.Integration
├── Startup.cs
├── Tests
│ ├── CustomerQueryServiceTest.cs
│ ├── CustomerServiceTest.cs
│ └── ProductServiceTest.cs
├── Util.Application.EntityFrameworkCore.PostgreSql.Tests.Integration.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Application.EntityFrameworkCore.SqlServer.Tests.Integration
├── Startup.cs
├── Tests
│ ├── CustomerQueryServiceTest.cs
│ ├── CustomerServiceTest.cs
│ ├── ProductServiceTest.cs
│ └── ResourceServiceTest.cs
├── Util.Application.EntityFrameworkCore.SqlServer.Tests.Integration.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Application.Tests
├── Dtos
│ ├── CustomerDto.cs
│ └── TreeDto.cs
├── ExceptionExtensionsTest.cs
├── Fakes
│ └── CustomerFakeService.cs
├── Models
│ └── Customer.cs
├── Queries
│ └── CustomerQuery.cs
├── Repositories
│ └── ICustomerRepository.cs
├── Tests
│ ├── TreeResultTest.cs
│ └── TreeTableResultTest.cs
├── TreeNodeExtensionsTest.cs
├── Trees
│ ├── TestTreeTableResult.cs
│ ├── TreeNode.cs
│ └── TreeResult.cs
└── Util.Application.Tests.csproj
├── Util.Application.WebApi.MySql.Tests.Integration
├── Properties
│ └── launchSettings.json
├── Startup.cs
├── Tests
│ ├── CustomerControllerTest.cs
│ └── ProductControllerTest.cs
├── Util.Application.WebApi.MySql.Tests.Integration.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Application.WebApi.PostgreSql.Tests.Integration
├── Properties
│ └── launchSettings.json
├── Startup.cs
├── Tests
│ ├── CustomerControllerTest.cs
│ └── ProductControllerTest.cs
├── Util.Application.WebApi.PostgreSql.Tests.Integration.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Application.WebApi.SqlServer.Tests.Integration
├── Properties
│ └── launchSettings.json
├── Startup.cs
├── Tests
│ ├── CustomerControllerTest.cs
│ └── ProductControllerTest.cs
├── Util.Application.WebApi.SqlServer.Tests.Integration.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Application.WebApi.Tests.Integration
├── Locks
│ ├── LockAttributeTest.cs
│ ├── LockTest.cs
│ └── LockTestService.cs
├── Properties
│ └── launchSettings.json
├── Startup.cs
└── Util.Application.WebApi.Tests.Integration.csproj
├── Util.AspNetCore.Tests.Integration
├── Controllers
│ ├── Test1Controller.cs
│ ├── Test2Controller.cs
│ ├── Test3Controller.cs
│ └── Test4Controller.cs
├── Helpers
│ └── WebTest.cs
├── Http
│ ├── HttpClientServiceTest.Delete.cs
│ ├── HttpClientServiceTest.Get.cs
│ ├── HttpClientServiceTest.Post.cs
│ └── HttpClientServiceTest.Put.cs
├── Samples
│ ├── Certificate
│ │ ├── apiclient_cert.p12
│ │ ├── apiclient_cert.pem
│ │ └── apiclient_key.pem
│ ├── CustomerDto.cs
│ └── CustomerQuery.cs
├── Startup.cs
└── Util.AspNetCore.Tests.Integration.csproj
├── Util.Caching.EasyCaching.Tests.Integration
├── Samples
│ ├── CacheService.cs
│ └── ICacheService.cs
├── Startup.cs
├── Tests
│ ├── CacheManagerTest.cs
│ ├── LocalCacheAttributeTest.cs
│ ├── MemoryCacheManagerTest.cs
│ └── RedisCacheManagerTest.cs
└── Util.Caching.EasyCaching.Tests.Integration.csproj
├── Util.Core.Tests.Integration
├── Helpers
│ ├── CommandLineTest.cs
│ ├── ConfigTest.cs
│ ├── FileTest.cs
│ ├── PlatformTest.cs
│ ├── ReflectionTest.cs
│ └── XmlTest.cs
├── Infrastructure
│ ├── BootstrapperTest.cs
│ └── DependencyServiceRegistrarTest.cs
├── Reflections
│ ├── AppDomainAssemblyFinderTest.cs
│ └── AppDomainTypeFinderTest.cs
├── Samples
│ ├── FileSample.txt
│ ├── TestDependencyRegistrar.cs
│ ├── TestOptions.cs
│ ├── TestOptionsExtension.cs
│ ├── TestSample.cs
│ ├── TestServiceRegistrar.cs
│ └── version.xml
├── Util.Core.Tests.Integration.csproj
└── appsettings.json
├── Util.Core.Tests
├── Dependency
│ └── ContainerTest.cs
├── Exceptions
│ └── WarningTest.cs
├── Extensions
│ ├── CommonExtensionsTest.cs
│ ├── ConvertExtensionsTest.cs
│ ├── DateTimeExtensionsTest.cs
│ ├── ExpressionExtensionsTest.cs
│ ├── ReflectionExtensionsTest.cs
│ ├── StringExtensionsTest.cs
│ └── ValidationExtensionsTest.cs
├── Helpers
│ ├── ConvertTest.cs
│ ├── CultureTest.cs
│ ├── EnumTest.cs
│ ├── JsonTest.cs
│ ├── LambdaTest.cs
│ ├── RandomTest.cs
│ ├── ReflectionTest.cs
│ ├── RegexTest.cs
│ ├── StringTest.cs
│ ├── TimeTest.cs
│ ├── UrlTest.cs
│ └── ValidationTest.cs
├── Samples
│ ├── EnumSample.cs
│ ├── JsonTestSample.cs
│ ├── Sample.cs
│ ├── Sample2.cs
│ ├── Sample3.cs
│ ├── Sample4.cs
│ └── TestSample.cs
├── Util.Core.Tests.csproj
└── XUnitHelpers
│ └── AssertHelper.cs
├── Util.Data.Dapper.MySql.Tests.Integration
├── Infrastructure
│ └── DatabaseScript.cs
├── Metadata
│ └── MySqlMetadataServiceTest.cs
├── SqlBuilders
│ └── MySqlExistsSqlBuilderTest.cs
├── SqlExecutor
│ ├── MySqlExecutorTest.Execute.cs
│ ├── MySqlExecutorTest.Id.cs
│ ├── MySqlExecutorTest.Insert.cs
│ ├── MySqlExecutorTest.Param.cs
│ ├── MySqlExecutorTest.Procedure.cs
│ ├── MySqlExecutorTest.Transaction.cs
│ └── MySqlExecutorTest.cs
├── SqlQuery
│ ├── MySqlQueryTest.Exists.cs
│ ├── MySqlQueryTest.Procedure.cs
│ ├── MySqlQueryTest.Query.cs
│ ├── MySqlQueryTest.Scalar.cs
│ ├── MySqlQueryTest.Single.cs
│ └── MySqlQueryTest.cs
├── Startup.cs
├── Util.Data.Dapper.MySql.Tests.Integration.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Data.Dapper.PostgreSql.Tests.Integration
├── Infrastructure
│ └── DatabaseScript.cs
├── Metadata
│ └── PostgreSqlMetadataServiceTest.cs
├── SqlBuilders
│ └── PostgreSqlExistsSqlBuilderTest.cs
├── SqlExecutor
│ ├── PostgreSqlExecutorTest.Execute.cs
│ ├── PostgreSqlExecutorTest.Id.cs
│ ├── PostgreSqlExecutorTest.Insert.cs
│ ├── PostgreSqlExecutorTest.Param.cs
│ ├── PostgreSqlExecutorTest.Procedure.cs
│ ├── PostgreSqlExecutorTest.cs
│ └── SqlServerSqlExecutorTest.Transaction.cs
├── SqlQuery
│ ├── PostgreSqlQueryTest.Exists.cs
│ ├── PostgreSqlQueryTest.Procedure.cs
│ ├── PostgreSqlQueryTest.Query.cs
│ ├── PostgreSqlQueryTest.Scalar.cs
│ ├── PostgreSqlQueryTest.Single.cs
│ └── PostgreSqlQueryTest.cs
├── Startup.cs
├── Util.Data.Dapper.PostgreSql.Tests.Integration.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Data.Dapper.SqlServer.Tests.Integration
├── Infrastructure
│ └── DatabaseScript.cs
├── Metadata
│ └── SqlServerMetadataServiceTest.cs
├── SqlBuilders
│ └── SqlServerExistsSqlBuilderTest.cs
├── SqlExecutor
│ ├── SqlServerSqlExecutorTest.Execute.cs
│ ├── SqlServerSqlExecutorTest.Id.cs
│ ├── SqlServerSqlExecutorTest.Insert.cs
│ ├── SqlServerSqlExecutorTest.Param.cs
│ ├── SqlServerSqlExecutorTest.Procedure.cs
│ ├── SqlServerSqlExecutorTest.Transaction.cs
│ └── SqlServerSqlExecutorTest.cs
├── SqlQuery
│ ├── SqlServerSqlQueryTest.Exists.cs
│ ├── SqlServerSqlQueryTest.Procedure.cs
│ ├── SqlServerSqlQueryTest.Query.cs
│ ├── SqlServerSqlQueryTest.Scalar.cs
│ ├── SqlServerSqlQueryTest.Single.cs
│ └── SqlServerSqlQueryTest.cs
├── Startup.cs
├── Util.Data.Dapper.SqlServer.Tests.Integration.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Data.EntityFrameworkCore.MySql.Tests.Integration
├── Filters
│ ├── DeleteFilterTest.cs
│ └── FilterManagerTest.cs
├── Startup.cs
├── Tests
│ ├── CustomerRepositoryTest.cs
│ ├── EntityEventsTest.cs
│ ├── OperationLogRepositoryTest.cs
│ ├── OrderRepositoryTest.cs
│ ├── PostRepositoryTest.cs
│ ├── ProductRepositoryTest.Queryable.cs
│ ├── ProductRepositoryTest.cs
│ └── TagRepositoryTest.cs
├── Util.Data.EntityFrameworkCore.MySql.Tests.Integration.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Data.EntityFrameworkCore.Oracle.Tests.Integration
├── Filters
│ ├── DeleteFilterTest.cs
│ └── FilterManagerTest.cs
├── Startup.cs
├── Tests
│ ├── CustomerRepositoryTest.cs
│ ├── EntityEventsTest.cs
│ ├── OperationLogRepositoryTest.cs
│ ├── OrderRepositoryTest.cs
│ ├── PostRepositoryTest.cs
│ ├── ProductRepositoryTest.Queryable.cs
│ ├── ProductRepositoryTest.cs
│ └── TagRepositoryTest.cs
├── Util.Data.EntityFrameworkCore.Oracle.Tests.Integration.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Data.EntityFrameworkCore.PostgreSql.Tests.Integration
├── Filters
│ ├── DeleteFilterTest.cs
│ └── FilterManagerTest.cs
├── Startup.cs
├── Tests
│ ├── CustomerRepositoryTest.cs
│ ├── EntityEventsTest.cs
│ ├── OperationLogRepositoryTest.cs
│ ├── OrderRepositoryTest.cs
│ ├── PostRepositoryTest.cs
│ ├── ProductRepositoryTest.Queryable.cs
│ ├── ProductRepositoryTest.cs
│ └── TagRepositoryTest.cs
├── Util.Data.EntityFrameworkCore.PostgreSql.Tests.Integration.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Data.EntityFrameworkCore.SqlServer.Tests.Integration
├── Filters
│ ├── DeleteFilterTest.cs
│ └── FilterManagerTest.cs
├── Samples
│ └── Migrations
│ │ └── 20230302102051_Init.cs
├── Startup.cs
├── Tests
│ ├── CustomerRepositoryTest.cs
│ ├── EntityEventsTest.cs
│ ├── MigrationFileServiceTest.cs
│ ├── OperationLogRepositoryTest.cs
│ ├── OrderRepositoryTest.cs
│ ├── PostRepositoryTest.cs
│ ├── ProductRepositoryTest.Queryable.cs
│ ├── ProductRepositoryTest.cs
│ ├── TagRepositoryTest.cs
│ └── UnitOfWorkActionManagerTest.cs
├── Util.Data.EntityFrameworkCore.SqlServer.Tests.Integration.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Data.EntityFrameworkCore.Sqlite.Tests.Integration
├── Filters
│ ├── DeleteFilterTest.cs
│ └── FilterManagerTest.cs
├── Startup.cs
├── Tests
│ ├── CustomerRepositoryTest.cs
│ ├── EntityEventsTest.cs
│ ├── OperationLogRepositoryTest.cs
│ ├── OrderRepositoryTest.cs
│ ├── PostRepositoryTest.cs
│ ├── ProductRepositoryTest.Queryable.cs
│ ├── ProductRepositoryTest.cs
│ └── TagRepositoryTest.cs
├── Util.Data.EntityFrameworkCore.Sqlite.Tests.Integration.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Data.Sql.Tests
├── Builders
│ ├── Clauses
│ │ ├── EndClauseTest.cs
│ │ ├── FromClauseTest.cs
│ │ ├── GroupByClauseTest.cs
│ │ ├── InsertClauseTest.cs
│ │ ├── JoinClauseTest.cs
│ │ ├── OrderByClauseTest.cs
│ │ ├── SelectClauseTest.cs
│ │ ├── StartClauseTest.cs
│ │ └── WhereClauseTest.cs
│ ├── Conditions
│ │ ├── AndConditionTest.cs
│ │ ├── ContainsConditionTest.cs
│ │ ├── EndsConditionTest.cs
│ │ ├── EqualConditionTest.cs
│ │ ├── ExistsConditionTest.cs
│ │ ├── GreaterConditionTest.cs
│ │ ├── GreaterEqualConditionTest.cs
│ │ ├── InConditionTest.cs
│ │ ├── IsNotNullConditionTest.cs
│ │ ├── IsNullConditionTest.cs
│ │ ├── LessConditionTest.cs
│ │ ├── LessEqualConditionTest.cs
│ │ ├── NotEqualConditionTest.cs
│ │ ├── NotExistsConditionTest.cs
│ │ ├── NotInConditionTest.cs
│ │ ├── OrConditionTest.cs
│ │ ├── SegmentConditionTest.cs
│ │ └── StartsConditionTest.cs
│ ├── Core
│ │ ├── ColumnItemTest.cs
│ │ ├── OrderByItemTest.cs
│ │ ├── SplitItemTest.cs
│ │ ├── SqlBuilderItemTest.cs
│ │ ├── SqlConditionFactoryTest.cs
│ │ └── TableItemTest.cs
│ ├── Params
│ │ └── ParameterManagerTest.cs
│ ├── Sets
│ │ └── SqlBuilderSetTest.cs
│ ├── SqlBuilderTest.End.cs
│ ├── SqlBuilderTest.From.cs
│ ├── SqlBuilderTest.GroupBy.cs
│ ├── SqlBuilderTest.Insert.cs
│ ├── SqlBuilderTest.Join.cs
│ ├── SqlBuilderTest.OrderBy.cs
│ ├── SqlBuilderTest.Parameter.cs
│ ├── SqlBuilderTest.Select.cs
│ ├── SqlBuilderTest.Set.cs
│ ├── SqlBuilderTest.Start.cs
│ ├── SqlBuilderTest.Where.cs
│ └── SqlBuilderTest.cs
├── Samples
│ ├── TestColumnCache.cs
│ ├── TestDialect.cs
│ ├── TestDialect2.cs
│ ├── TestParameter.cs
│ └── TestSqlBuilder.cs
└── Util.Data.Sql.Tests.csproj
├── Util.Data.Tests
├── Pages
│ ├── PageListTest.cs
│ └── PagerTest.cs
├── Queries
│ └── Conditions
│ │ ├── DateSegmentConditionTest.cs
│ │ ├── DateTimeSegmentConditionTest.cs
│ │ ├── DecimalSegmentConditionTest.cs
│ │ ├── DoubleSegmentConditionTest.cs
│ │ ├── IntSegmentConditionTest.cs
│ │ ├── OrIfNotEmptyConditionTest.cs
│ │ └── WhereIfNotEmptyConditionTest.cs
├── Samples
│ └── Sample.cs
└── Util.Data.Tests.csproj
├── Util.Domain.Tests
├── Auditing
│ ├── CreationAuditedSetterTest.cs
│ └── ModificationAuditedSetterTest.cs
├── Compare
│ ├── ChangeValueTest.cs
│ ├── KeyListComparatorTest.cs
│ └── ListComparatorTest.cs
├── Entities
│ ├── GuidEntityTest.cs
│ ├── IntEntityTest.cs
│ ├── StringEntityTest.cs
│ └── ValueObjectBaseTest.cs
├── Samples
│ ├── AggregateRootSample.cs
│ ├── Auditing
│ │ ├── GuidAuditedEntity.cs
│ │ ├── IntAuditedEntity.cs
│ │ ├── LongAuditedEntity.cs
│ │ ├── NullableGuidAuditedEntity.cs
│ │ ├── NullableIntAuditedEntity.cs
│ │ ├── NullableLongAuditedEntity.cs
│ │ └── StringAuditedEntity.cs
│ ├── Customer.cs
│ ├── EnumSample.cs
│ ├── IntAggregateRootSample.cs
│ ├── Role.cs
│ ├── StringAggregateRootSample.cs
│ ├── TreeEntitySample.cs
│ ├── ValidationRuleSample.cs
│ └── ValueObjectSample.cs
├── TestResource.Designer.cs
├── TestResource.resx
├── Trees
│ ├── TreeEntityBaseTest.cs
│ └── UpdatePathManagerTest.cs
├── Util.Domain.Tests.csproj
└── XUnitHelpers
│ └── AssertHelper.cs
├── Util.Events.Tests.Integration
├── Local
│ ├── EventBusExtensionsTest.cs
│ ├── EventBusTest.cs
│ └── LocalEventBusTest.cs
├── Samples
│ ├── EventHandlerSample.cs
│ └── EventSample.cs
├── Startup.cs
└── Util.Events.Tests.Integration.csproj
├── Util.FileStorage.Minio.Tests.Integration
├── Resources
│ ├── a.jpg
│ └── b.jpg
├── Samples
│ └── TestSession.cs
├── Startup.cs
├── Tests
│ ├── FileResultTest.cs
│ ├── FileSizeTest.cs
│ ├── MinioFileStoreTest.cs
│ └── UserTimeFileNameProcessorTest.cs
└── Util.FileStorage.Minio.Tests.Integration.csproj
├── Util.Generators.Razor.Tests.Integration
├── RazorTemplateFinderTest.cs
├── RazorTemplateTest.cs
├── Startup.cs
├── Templates
│ └── Test1
│ │ ├── Parts
│ │ └── Test.Part.cshtml
│ │ ├── Template.cshtml
│ │ └── Test2
│ │ ├── Test.cshtml
│ │ └── TestPart.cshtml
├── Util.Generators.Razor.Tests.Integration.csproj
└── appsettings.json
├── Util.Generators.Tests
├── Configuration
│ └── GeneratorOptionsBuilderTest.cs
├── Contexts
│ ├── EntityContextTest.cs
│ ├── GeneratorContextBuilderTest.cs
│ ├── GeneratorContextTest.cs
│ ├── OutputTest.cs
│ ├── ProjectContextTest.cs
│ └── PropertyTest.cs
├── GeneratorTest.cs
├── Mocks
│ ├── MockGeneratorOptionsBuilder.cs
│ ├── MockMetadataService.cs
│ └── MockMetadataServiceFactory.cs
├── Samples
│ └── TestExtend.cs
├── Templates
│ └── TemplateFilterManagerTest.cs
├── Util.Generators.Tests.csproj
└── appsettings.json
├── Util.Images.Avatar.Tests.Integration
├── Fonts
│ └── STZHONGS.TTF
├── Startup.cs
├── Tests
│ ├── AvatarManagerTest.cs
│ └── AvatarManagerUnitTest.cs
└── Util.Images.Avatar.Tests.Integration.csproj
├── Util.Images.ImageSharp.Tests.Integration
├── Fonts
│ └── STZHONGS.TTF
├── Startup.cs
├── Tests
│ └── DrawTextTest.cs
└── Util.Images.ImageSharp.Tests.Integration.csproj
├── Util.Localization.Resources
├── Properties
│ └── AssemblyInfo.cs
├── ResourceTypes
│ ├── Resource101.cs
│ └── Resource102.cs
├── Resources2
│ ├── ResourceTypes.Resource101.en-US.json
│ ├── ResourceTypes.Resource101.zh-CN.json
│ └── ResourceTypes
│ │ └── Resource102.zh-CN.json
└── Util.Localization.Resources.csproj
├── Util.Localization.Tests.Integration
├── Properties
│ ├── AssemblyInfo.cs
│ └── launchSettings.json
├── ResourceTypes
│ ├── Resource1.cs
│ ├── Resource2.cs
│ ├── Resource3.cs
│ ├── Resource4.cs
│ ├── Resource5.cs
│ └── Resource6.cs
├── Resources
│ ├── ResourceTypes.Resource1.en-US.json
│ ├── ResourceTypes.Resource1.zh-CN.json
│ ├── ResourceTypes
│ │ ├── Resource2.en-US.json
│ │ ├── Resource2.zh-CN.json
│ │ ├── Resource2.zh-Hans.json
│ │ ├── Resource2.zh.json
│ │ ├── Resource3.zh-Hans.json
│ │ ├── Resource4.Resource41.zh-CN.json
│ │ ├── Resource4.zh.json
│ │ ├── Resource5.zh-CN.json
│ │ ├── Resource5.zh-Hans.json
│ │ └── Resource5.zh.json
│ └── zh.json
├── Startup.cs
├── Tests
│ ├── JsonStringLocalizerFactoryTest.cs
│ ├── PathResolverTest.cs
│ └── StringLocalizerTest.cs
└── Util.Localization.Tests.Integration.csproj
├── Util.Logging.Serilog.Exceptionless.Tests.Integration
├── LogContextAccessor.cs
├── LogTest.cs
├── Samples
│ └── Product.cs
├── Startup.cs
├── Util.Logging.Serilog.Exceptionless.Tests.Integration.csproj
├── appsettings.Production.json
└── appsettings.json
├── Util.Logging.Serilog.Tests.Integration
├── LogContextAccessor.cs
├── LogTest.cs
├── Samples
│ └── Product.cs
├── Startup.cs
├── Util.Logging.Serilog.Tests.Integration.csproj
└── appsettings.json
├── Util.Logging.Tests
├── LogTest.Critical .cs
├── LogTest.Debug .cs
├── LogTest.Error .cs
├── LogTest.Information .cs
├── LogTest.Trace .cs
├── LogTest.Warning .cs
├── LogTest.cs
├── Samples
│ └── Product.cs
└── Util.Logging.Tests.csproj
├── Util.Microservices.Dapr.Tests.Integration
├── CommandLines
│ └── DaprRunCommandTest.cs
├── Fixtures
│ ├── GlobalCollection.cs
│ └── GlobalFixture.cs
├── Resources
│ ├── components
│ │ ├── pubsub.yaml
│ │ └── statestore.yaml
│ └── configuration
│ │ └── config.yaml
├── Samples
│ ├── CustomerDto.cs
│ ├── CustomerQuery.cs
│ ├── MockHttpContextAccessor.cs
│ ├── ProductDto.cs
│ └── ProductQuery.cs
├── ServiceInvocations
│ ├── HttpClientTest.cs
│ ├── ServiceInvocationTest.NotUnPack.cs
│ ├── ServiceInvocationTest.UnPack.cs
│ └── ServiceInvocationTest.cs
├── Startup.cs
├── Usings.cs
├── Util.Microservices.Dapr.Tests.Integration.csproj
├── appsettings.Development.json
├── appsettings.json
└── clear.ps1
├── Util.Microservices.Dapr.WebApiSample
├── Authorization
│ └── PermissionManager.cs
├── Controllers
│ ├── Test1Controller.cs
│ ├── Test2Controller.cs
│ └── Test3Controller.cs
├── Dtos
│ ├── CustomerDto.cs
│ └── CustomerQuery.cs
├── Program.cs
├── Properties
│ └── launchSettings.json
├── Usings.cs
├── Util.Microservices.Dapr.WebApiSample.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Microservices.Polly.Tests.Integration
├── PolicyTest.Retry.Async.cs
├── PolicyTest.Retry.cs
├── PolicyTest.cs
├── Samples
│ ├── SampleException.cs
│ └── SampleResult.cs
├── Startup.cs
├── Usings.cs
└── Util.Microservices.Polly.Tests.Integration.csproj
├── Util.ObjectMapping.AutoMapper.Tests
├── Configs
│ └── TestAutoMapperConfig.cs
├── ObjectMapperExtensionsTest.cs
├── ObjectMapperTest.cs
├── Samples
│ ├── EnumSample.cs
│ ├── Sample.cs
│ ├── Sample2.cs
│ ├── Sample3.cs
│ ├── Sample4.cs
│ ├── Sample5.cs
│ ├── Sample6.cs
│ ├── Sample7.cs
│ └── TreeEntitySample.cs
├── Startup.cs
└── Util.ObjectMapping.AutoMapper.Tests.csproj
├── Util.Scheduling.Hangfire.Tests.Integration
├── Jobs
│ ├── TestJob1.cs
│ └── TestJob2.cs
├── Properties
│ └── launchSettings.json
├── SchedulerTest.cs
├── Startup.cs
├── Usings.cs
├── Util.Scheduling.Hangfire.Tests.Integration.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Scheduling.Quartz.Tests.Integration
├── Jobs
│ ├── TestJob1.cs
│ └── TestJob2.cs
├── SchedulerTest.cs
├── Startup.cs
├── Util.Scheduling.Quartz.Tests.Integration.csproj
├── appsettings.Development.json
└── appsettings.json
├── Util.Security.Tests
├── Authorization
│ └── AclPolicyHelperTest.cs
├── Helpers
│ └── EncryptTest.cs
└── Util.Security.Tests.csproj
├── Util.Templates.Handlebars.Tests.Integration
├── HandlebarsTemplateEngineTest.cs
├── Startup.cs
└── Util.Templates.Handlebars.Tests.Integration.csproj
├── Util.Templates.Razor.Tests.Integration
├── Filters
│ └── ModelFilterTest.cs
├── Properties
│ └── launchSettings.json
├── RazorTemplateEngineTest.Path.cs
├── RazorTemplateEngineTest.cs
├── Samples
│ ├── Models
│ │ └── TestModel.cs
│ └── Templates
│ │ ├── Child
│ │ ├── Child2
│ │ │ └── TestChildTemplate2.cshtml
│ │ └── TestChildTemplate.cshtml
│ │ ├── TestTemplate.cshtml
│ │ └── TestTemplate2.cshtml
├── Startup.cs
└── Util.Templates.Razor.Tests.Integration.csproj
├── Util.TestShare.MySql
├── EntityTypeConfigurations
│ ├── CustomerConfiguration.cs
│ ├── OperationLogConfiguration.cs
│ ├── OrderConfiguration.cs
│ ├── OrderItemConfiguration.cs
│ ├── PostConfiguration.cs
│ ├── ProductConfiguration.cs
│ └── TagConfiguration.cs
├── Repositories
│ ├── CustomerRepository.cs
│ ├── OperationLogRepository.cs
│ ├── OrderRepository.cs
│ ├── PostRepository.cs
│ ├── ProductRepository.cs
│ └── TagRepository.cs
├── UnitOfWorks
│ └── MySqlUnitOfWork.cs
└── Util.TestShare.MySql.csproj
├── Util.TestShare.Oracle
├── EntityTypeConfigurations
│ ├── CustomerConfiguration.cs
│ ├── OperationLogConfiguration.cs
│ ├── OrderConfiguration.cs
│ ├── OrderItemConfiguration.cs
│ ├── PostConfiguration.cs
│ ├── ProductConfiguration.cs
│ └── TagConfiguration.cs
├── Repositories
│ ├── CustomerRepository.cs
│ ├── OperationLogRepository.cs
│ ├── OrderRepository.cs
│ ├── PostRepository.cs
│ ├── ProductRepository.cs
│ └── TagRepository.cs
├── UnitOfWorks
│ └── OracleUnitOfWork.cs
└── Util.TestShare.Oracle.csproj
├── Util.TestShare.PostgreSql
├── EntityTypeConfigurations
│ ├── CustomerConfiguration.cs
│ ├── OperationLogConfiguration.cs
│ ├── OrderConfiguration.cs
│ ├── OrderItemConfiguration.cs
│ ├── PostConfiguration.cs
│ ├── ProductConfiguration.cs
│ └── TagConfiguration.cs
├── Repositories
│ ├── CustomerRepository.cs
│ ├── OperationLogRepository.cs
│ ├── OrderRepository.cs
│ ├── PostRepository.cs
│ ├── ProductRepository.cs
│ └── TagRepository.cs
├── UnitOfWorks
│ └── PgSqlUnitOfWork.cs
└── Util.TestShare.PostgreSql.csproj
├── Util.TestShare.SqlServer
├── EntityTypeConfigurations
│ ├── CustomerConfiguration.cs
│ ├── OperationLogConfiguration.cs
│ ├── OrderConfiguration.cs
│ ├── OrderItemConfiguration.cs
│ ├── PostConfiguration.cs
│ ├── ProductConfiguration.cs
│ ├── ResourceConfiguration.cs
│ └── TagConfiguration.cs
├── Repositories
│ ├── CustomerRepository.cs
│ ├── OperationLogRepository.cs
│ ├── OrderRepository.cs
│ ├── PostRepository.cs
│ ├── ProductRepository.cs
│ ├── ResourceRepository.cs
│ └── TagRepository.cs
├── UnitOfWorks
│ └── SqlServerUnitOfWork.cs
└── Util.TestShare.SqlServer.csproj
├── Util.TestShare.Sqlite
├── EntityTypeConfigurations
│ ├── CustomerConfiguration.cs
│ ├── OperationLogConfiguration.cs
│ ├── OrderConfiguration.cs
│ ├── OrderItemConfiguration.cs
│ ├── PostConfiguration.cs
│ ├── ProductConfiguration.cs
│ └── TagConfiguration.cs
├── Repositories
│ ├── CustomerRepository.cs
│ ├── OperationLogRepository.cs
│ ├── OrderRepository.cs
│ ├── PostRepository.cs
│ ├── ProductRepository.cs
│ └── TagRepository.cs
├── UnitOfWorks
│ └── SqliteUnitOfWork.cs
└── Util.TestShare.Sqlite.csproj
├── Util.TestShare
├── Conditions
│ └── ProductNameCondition.cs
├── Configs
│ └── TestConfig.cs
├── Controllers
│ ├── CustomerController.cs
│ ├── LockController.cs
│ └── ProductController.cs
├── Dtos
│ ├── CustomerDto.cs
│ ├── ProductDto.cs
│ └── ResourceDto.cs
├── EventHandlers
│ ├── OperationLogChangedEventHandler.cs
│ ├── OperationLogDeletedEventHandler.cs
│ ├── ProductChangedEventHandler.cs
│ ├── ProductCreatedEventHandler.cs
│ ├── ProductDeletedEventHandler.cs
│ └── ProductUpdatedEventHandler.cs
├── Events
│ ├── TestEvent.cs
│ └── TestEventBus.cs
├── Fakes
│ ├── CustomerFakeService.cs
│ ├── OperationLogFakeService.cs
│ ├── OrderFakeService.cs
│ ├── OrderItemFakeService.cs
│ ├── PostFakeService.cs
│ ├── ProductFakeService.cs
│ ├── ResourceDtoFakeService.cs
│ └── TagFakeService.cs
├── Infrastructure
│ ├── ControllerTestBase.cs
│ ├── TestBase.cs
│ ├── TestSession.cs
│ └── WebApiResult.cs
├── Middlewares
│ └── TestUserMiddleware.cs
├── Models
│ ├── ApplicationExtend.cs
│ ├── Customer.cs
│ ├── OperationLog.cs
│ ├── Order.cs
│ ├── OrderItem.cs
│ ├── Post.cs
│ ├── Product.cs
│ ├── ProductEnum.cs
│ ├── ProductItem.cs
│ ├── ProductItem2.cs
│ ├── Resource.cs
│ └── Tag.cs
├── Queries
│ ├── CustomerQuery.cs
│ ├── ProductQuery.cs
│ └── ResourceQuery.cs
├── Repositories
│ ├── ICustomerRepository.cs
│ ├── IOperationLogRepository.cs
│ ├── IOrderRepository.cs
│ ├── IPostRepository.cs
│ ├── IProductRepository.cs
│ ├── IResourceRepository.cs
│ └── ITagRepository.cs
├── Services
│ ├── CustomerQueryService.cs
│ ├── CustomerService.cs
│ ├── ICustomerQueryService.cs
│ ├── ICustomerService.cs
│ ├── IProductService.cs
│ ├── IResourceService.cs
│ ├── ProductService.cs
│ └── ResourceService.cs
├── UnitOfWorks
│ └── ITestUnitOfWork.cs
└── Util.TestShare.csproj
├── Util.Ui.NgAlain.Tests
├── I18n
│ └── I18nTagHelperTest.cs
├── PageHeaders
│ └── PageHeaderTagHelperTest.cs
├── Samples
│ └── Customer.cs
├── Startup.cs
├── Tinymce
│ ├── TinymceTagHelperTest.Expression.cs
│ └── TinymceTagHelperTest.cs
└── Util.Ui.NgAlain.Tests.csproj
├── Util.Ui.NgZorro.Tests
├── Affixes
│ └── AffixTagHelperTest.cs
├── Alerts
│ └── AlertTagHelperTest.cs
├── Anchors
│ ├── AnchorTagHelperTest.cs
│ └── LinkTagHelperTest.cs
├── Autocompletes
│ ├── AutoOptionGroupTagHelperTest.cs
│ ├── AutoOptionTagHelperTest.cs
│ ├── AutocompleteTagHelperTest.Expression.cs
│ ├── AutocompleteTagHelperTest.Extend.cs
│ └── AutocompleteTagHelperTest.cs
├── Avatars
│ ├── AvatarGroupTagHelperTest.cs
│ └── AvatarTagHelperTest.cs
├── Badges
│ ├── BadgeTagHelperTest.cs
│ └── RibbonTagHelperTest.cs
├── Breadcrumbs
│ ├── BreadcrumbItemTagHelperTest.cs
│ ├── BreadcrumbSeparatorTagHelperTest.cs
│ └── BreadcrumbTagHelperTest.cs
├── Buttons
│ ├── ButtonGroupTagHelperTest.cs
│ ├── ButtonTagHelperTest.DropDown.cs
│ ├── ButtonTagHelperTest.Extend.cs
│ ├── ButtonTagHelperTest.Form.cs
│ ├── ButtonTagHelperTest.I18n.cs
│ ├── ButtonTagHelperTest.Popconfirm.cs
│ ├── ButtonTagHelperTest.Popover.cs
│ ├── ButtonTagHelperTest.Space.cs
│ ├── ButtonTagHelperTest.Tooltip.cs
│ └── ButtonTagHelperTest.cs
├── Calendars
│ └── CalendarTagHelperTest.cs
├── Cards
│ ├── CardGridTagHelperTest.cs
│ ├── CardMetaTagHelperTest.cs
│ ├── CardTabTagHelperTest.cs
│ ├── CardTagHelperTest.I18n.cs
│ └── CardTagHelperTest.cs
├── Carousels
│ └── CarouselTagHelperTest.cs
├── Cascaders
│ └── CascaderTagHelperTest.cs
├── Checkboxes
│ ├── CheckboxGroupTagHelperTest.cs
│ ├── CheckboxTagHelperTest.Expression.cs
│ ├── CheckboxTagHelperTest.Form.cs
│ ├── CheckboxTagHelperTest.cs
│ └── CheckboxWrapperTagHelperTest.cs
├── Collapses
│ ├── CollapsePanelTagHelperTest.cs
│ └── CollapseTagHelperTest.cs
├── Comments
│ ├── CommentActionTagHelperTest.cs
│ ├── CommentContentTagHelperTest.cs
│ └── CommentTagHelperTest.cs
├── Containers
│ └── ContainerTagHelperTest.cs
├── Data
│ └── TreeResultTest.cs
├── DatePickers
│ ├── DatePickerTagHelperTest.Expression.cs
│ ├── DatePickerTagHelperTest.cs
│ ├── RangePickerTagHelperTest.Expression.cs
│ └── RangePickerTagHelperTest.cs
├── Descriptions
│ ├── DescriptionItemTagHelperTest.Expression.cs
│ ├── DescriptionItemTagHelperTest.I18n.cs
│ ├── DescriptionItemTagHelperTest.cs
│ └── DescriptionTagHelperTest.cs
├── Display
│ └── DisplayTagHelperTest.cs
├── Dividers
│ └── DividerTagHelperTest.cs
├── Drawers
│ └── DrawerTagHelperTest.cs
├── Dropdowns
│ └── DropdownMenuTagHelperTest.cs
├── Empties
│ └── EmptyTagHelperTest.cs
├── Forms
│ ├── FormContainerTagHelperTest.cs
│ ├── FormControlTagHelperTest.cs
│ ├── FormItemTagHelperTest.cs
│ ├── FormLabelTagHelperTest.cs
│ ├── FormSplitTagHelperTest.cs
│ ├── FormTagHelperTest.cs
│ └── FormTextTagHelperTest.cs
├── Grids
│ ├── ColumnTagHelperTest .Sm.cs
│ ├── ColumnTagHelperTest.Lg.cs
│ ├── ColumnTagHelperTest.Md.cs
│ ├── ColumnTagHelperTest.XXl.cs
│ ├── ColumnTagHelperTest.Xl.cs
│ ├── ColumnTagHelperTest.Xs.cs
│ ├── ColumnTagHelperTest.cs
│ └── RowTagHelperTest.cs
├── Icons
│ ├── IconTagHelperTest.Tooltip.cs
│ └── IconTagHelperTest.cs
├── Images
│ └── ImageTagHelperTest.cs
├── InputNumbers
│ ├── InputNumberTagHelperTest.Expression.cs
│ ├── InputNumberTagHelperTest.Overide.cs
│ ├── InputNumberTagHelperTest.Validation.cs
│ └── InputNumberTagHelperTest.cs
├── Inputs
│ ├── InputGroupTagHelperTest.cs
│ ├── InputTagHelperTest.Autocomplete.cs
│ ├── InputTagHelperTest.Base.cs
│ ├── InputTagHelperTest.Events.cs
│ ├── InputTagHelperTest.Expression.cs
│ ├── InputTagHelperTest.Form.cs
│ ├── InputTagHelperTest.I18n.cs
│ ├── InputTagHelperTest.InputGroup.cs
│ ├── InputTagHelperTest.Mention.cs
│ ├── InputTagHelperTest.NgIf.cs
│ ├── InputTagHelperTest.Space.cs
│ ├── InputTagHelperTest.TableEdit.cs
│ ├── InputTagHelperTest.Validation.cs
│ └── InputTagHelperTest.cs
├── Label
│ └── LabelTagHelperTest.cs
├── Layouts
│ ├── ContentTagHelperTest.cs
│ ├── FooterTagHelperTest.cs
│ ├── HeaderTagHelperTest.cs
│ ├── LayoutTagHelperTest.cs
│ └── SiderTagHelperTest.cs
├── Links
│ └── ATagHelperTest.cs
├── Lists
│ ├── ListEmptyTagHelperTest.cs
│ ├── ListFooterTagHelperTest.cs
│ ├── ListHeaderTagHelperTest.cs
│ ├── ListItemActionTagHelperTest.cs
│ ├── ListItemActionsTagHelperTest.cs
│ ├── ListItemExtraTagHelperTest.cs
│ ├── ListItemMetaAvatarTagHelperTest.cs
│ ├── ListItemMetaDescriptionTagHelperTest.cs
│ ├── ListItemMetaTagHelperTest.cs
│ ├── ListItemMetaTitleTagHelperTest.cs
│ ├── ListItemTagHelperTest.cs
│ ├── ListLoadMoreTagHelperTest.cs
│ ├── ListPaginationTagHelperTest.cs
│ └── ListTagHelperTest.cs
├── Mentions
│ └── MentionTagHelperTest.cs
├── Menus
│ ├── MenuDividerTagHelperTest.cs
│ ├── MenuGroupTagHelperTest.cs
│ ├── MenuItemTagHelperTest.I18n.cs
│ ├── MenuItemTagHelperTest.Icon.cs
│ ├── MenuItemTagHelperTest.cs
│ ├── MenuTagHelperTest.cs
│ └── SubMenuTagHelperTest.cs
├── Modals
│ └── ModalTagHelperTest.cs
├── PageHeaders
│ ├── PageHeaderContentTagHelperTest.cs
│ ├── PageHeaderExtraTagHelperTest.cs
│ ├── PageHeaderFooterTagHelperTest.cs
│ ├── PageHeaderSubTitleTagHelperTest.cs
│ ├── PageHeaderTagHelperTest.cs
│ ├── PageHeaderTagsTagHelperTest.cs
│ └── PageHeaderTitleTagHelperTest.cs
├── Paginations
│ └── PaginationTagHelperTest.cs
├── Progresses
│ └── ProgressTagHelperTest.cs
├── Radios
│ ├── RadioGroupTagHelperTest.Expression.cs
│ ├── RadioGroupTagHelperTest.Extend.cs
│ ├── RadioGroupTagHelperTest.FormItem.cs
│ ├── RadioGroupTagHelperTest.cs
│ ├── RadioTagHelperTest.Expression.cs
│ ├── RadioTagHelperTest.Extend.cs
│ ├── RadioTagHelperTest.FormItem.cs
│ └── RadioTagHelperTest.cs
├── Rates
│ └── RateTagHelperTest.cs
├── Results
│ ├── ResultContentTagHelperTest.cs
│ ├── ResultExtraTagHelperTest.cs
│ ├── ResultSubtitleTagHelperTest.cs
│ ├── ResultTagHelperTest.cs
│ └── ResultTitleTagHelperTest.cs
├── Samples
│ ├── Customer.cs
│ └── TreeDto.cs
├── Selects
│ ├── OptionGroupTagHelperTest.cs
│ ├── OptionTagHelperTest.cs
│ ├── SelectTagHelperTest.Expression.cs
│ ├── SelectTagHelperTest.Extend.cs
│ ├── SelectTagHelperTest.TableEdit.cs
│ ├── SelectTagHelperTest.Validation.cs
│ └── SelectTagHelperTest.cs
├── Skeletons
│ ├── SkeletonElementTagHelperTest.cs
│ └── SkeletonTagHelperTest.cs
├── Sliders
│ └── SliderTagHelperTest.cs
├── Spaces
│ └── SpaceTagHelperTest.cs
├── Spins
│ └── SpinTagHelperTest.cs
├── Startup.cs
├── Statistics
│ ├── CountdownTagHelperTest.cs
│ └── StatisticTagHelperTest.cs
├── Steps
│ ├── StepTagHelperTest.cs
│ └── StepsTagHelperTest.cs
├── Switches
│ ├── SwitchTagHelperTest.Expression.cs
│ └── SwitchTagHelperTest.cs
├── Tables
│ ├── FilterTriggerTagHelperTest.cs
│ ├── TableBodyTagHelperTest.AutoCreate.cs
│ ├── TableBodyTagHelperTest.cs
│ ├── TableColumnControlTagHelperTest.cs
│ ├── TableColumnDisplayTagHelperTest.cs
│ ├── TableColumnTagHelperTest.Edit.cs
│ ├── TableColumnTagHelperTest.Expression.cs
│ ├── TableColumnTagHelperTest.Extend.cs
│ ├── TableColumnTagHelperTest.cs
│ ├── TableHeadColumnTagHelperTest.Expression.cs
│ ├── TableHeadColumnTagHelperTest.Extend.cs
│ ├── TableHeadColumnTagHelperTest.cs
│ ├── TableHeadTagHelperTest.AutoCreate.cs
│ ├── TableHeadTagHelperTest.cs
│ ├── TableRowTagHelperTest.cs
│ ├── TableTagHelperTest.AutoCreate.cs
│ ├── TableTagHelperTest.Checkbox.cs
│ ├── TableTagHelperTest.Extend.cs
│ ├── TableTagHelperTest.LineNumber.cs
│ ├── TableTagHelperTest.Radio.cs
│ └── TableTagHelperTest.cs
├── Tabs
│ ├── TabSetTagHelperTest.cs
│ ├── TabTagHelperTest.Extend.cs
│ └── TabTagHelperTest.cs
├── Tags
│ ├── TagTagHelperTest.I18n.cs
│ └── TagTagHelperTest.cs
├── Templates
│ └── TemplateTagHelperTest.cs
├── Textareas
│ ├── TextareaCountTagHelperTest.cs
│ ├── TextareaTagHelperTest.Base.cs
│ ├── TextareaTagHelperTest.Events.cs
│ ├── TextareaTagHelperTest.Expression.cs
│ └── TextareaTagHelperTest.cs
├── TimePickers
│ ├── TimePickerTagHelperTest.Expression.cs
│ └── TimePickerTagHelperTest.cs
├── Timelines
│ ├── TimelineItemTagHelperTest.cs
│ └── TimelineTagHelperTest.cs
├── Transfers
│ └── TransferTagHelperTest.cs
├── TreeSelects
│ ├── TreeSelectTagHelperTest.Expression.cs
│ ├── TreeSelectTagHelperTest.Extend.cs
│ └── TreeSelectTagHelperTest.cs
├── TreeTables
│ ├── TreeTableColumnTagHelperTest.cs
│ ├── TreeTableHeadColumnTagHelperTest.cs
│ └── TreeTableTagHelperTest.cs
├── TreeViews
│ ├── TreeNodeCheckboxTagHelperTest.cs
│ ├── TreeNodeOptionTagHelperTest.cs
│ ├── TreeNodeTagHelperTest.cs
│ ├── TreeNodeToggleTagHelperTest.cs
│ ├── TreeViewTagHelperTest.cs
│ └── TreeVirtualScrollViewTagHelperTest.cs
├── Trees
│ ├── TreeTagHelperTest.Extend.cs
│ └── TreeTagHelperTest.cs
├── Typographies
│ ├── ArticleTagHelperTest.cs
│ ├── DivTagHelperTest.cs
│ ├── HTagHelperTest.cs
│ ├── PTagHelperTest.cs
│ └── SpanTagHelperTest.cs
├── Upload
│ ├── UploadTagHelperTest.Expression.cs
│ ├── UploadTagHelperTest.Extend.cs
│ ├── UploadTagHelperTest.Validation.cs
│ └── UploadTagHelperTest.cs
├── Util.Ui.NgZorro.Tests.csproj
└── VirtualScrolls
│ ├── VirtualScrollTagHelperTest.cs
│ └── VirtualScrollViewportTagHelperTest.cs
├── Util.Ui.Tests
├── Builders
│ ├── EmptyContainerTagBuilderTest.cs
│ └── TagBuilderTest.cs
├── Configs
│ └── ConfigTest.cs
├── Expressions
│ └── ExpressionResolverTest.cs
├── Extensions
│ └── TagHelperExtensionsTest.cs
├── Razor
│ └── GenerateHtmlFilterTest.cs
├── Samples
│ ├── Containers
│ │ ├── Builders
│ │ │ └── ContainerBuilder.cs
│ │ ├── ContainerTagHelper.cs
│ │ └── Renders
│ │ │ └── ContainerRender.cs
│ ├── Customer.cs
│ ├── Employee.cs
│ ├── Templates
│ │ ├── Builders
│ │ │ └── TemplateBuilder.cs
│ │ ├── Renders
│ │ │ └── TemplateRender.cs
│ │ └── TemplateTagHelper.cs
│ ├── TestBuilder.cs
│ ├── TestRender.cs
│ ├── TestShareConfig.cs
│ └── TestTagHelper.cs
├── TagHelpers
│ ├── RouterOutletTagHelperTest.cs
│ └── TagHelperWrapperTest.cs
└── Util.Ui.Tests.csproj
└── Util.Validation.Tests
├── DataAnnotationValidationTest.cs
├── Samples
├── ITestService.cs
├── Sample.cs
├── Sample2.cs
├── Sample3.cs
└── TestService.cs
├── Startup.cs
├── Util.Validation.Tests.csproj
├── ValidAttributeTest.cs
└── Validators
└── IdCardAttributeTest.cs
/.gitignore:
--------------------------------------------------------------------------------
1 | *.suo
2 | *.user
3 | .vs
4 | *.log
5 | [Dd]ebug/
6 | [Rr]elease/
7 | x64/
8 | [Bb]in/
9 | [Oo]bj/
10 | output/
11 | node_modules/
12 | BenchmarkDotNet.Artifacts
13 | **/ClientApp/**/html/**
14 | /sample/Util.Ui.NgZorro.Sample/ClientApp/*.lock
15 | /sample/Util.Ui.NgZorro.Sample/ClientApp/src/app/app.component.html
16 | /document/demo/*.pdb
17 | /document/Test/PowerDesigner/*.pdb
18 | /test/Util.Data.Dapper.SqlServer.Tests/Document/PowerDesigner/*.pdb
19 | /documents/PowerDesigner/*.pdb
20 |
--------------------------------------------------------------------------------
/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/build/Build.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | $(NetTargetFramework)
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/build/icon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/build/icon.jpg
--------------------------------------------------------------------------------
/build/version.props:
--------------------------------------------------------------------------------
1 |
2 |
3 | 7
4 | 1
5 | 11
6 | $(VersionMajor).$(VersionMinor).$(VersionPatch)
7 |
8 |
9 |
--------------------------------------------------------------------------------
/clear-bin.ps1:
--------------------------------------------------------------------------------
1 | Write-Host "remove bin,obj..."
2 | Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
3 | Write-Host "remove completed."
--------------------------------------------------------------------------------
/src/Util.Aop.AspectCore/IgnoreAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Aop;
2 |
3 | ///
4 | /// 忽略拦截
5 | ///
6 | public class IgnoreAttribute : AspectCore.DynamicProxy.NonAspectAttribute {
7 | }
--------------------------------------------------------------------------------
/src/Util.Aop.AspectCore/InterceptorBase.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Aop;
2 |
3 | ///
4 | /// 拦截器基类
5 | ///
6 | public abstract class InterceptorBase : AbstractInterceptorAttribute {
7 | }
--------------------------------------------------------------------------------
/src/Util.Aop.AspectCore/ParameterInterceptorBase.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Aop;
2 |
3 | ///
4 | /// 参数拦截器基类
5 | ///
6 | public abstract class ParameterInterceptorBase : ParameterInterceptorAttribute {
7 | }
--------------------------------------------------------------------------------
/src/Util.Aop.AspectCore/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using Microsoft.Extensions.DependencyInjection;
4 | global using AspectCore.Configuration;
5 | global using AspectCore.DynamicProxy;
6 | global using AspectCore.DynamicProxy.Parameters;
7 | global using AspectCore.Extensions.AspectScope;
8 | global using AspectCore.Extensions.DependencyInjection;
--------------------------------------------------------------------------------
/src/Util.Application.EntityFrameworkCore/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 |
--------------------------------------------------------------------------------
/src/Util.Application.WebApi/Logging/LogContextMiddlewareExtensions.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Applications.Logging;
2 |
3 | ///
4 | /// 日志上下文中间件扩展
5 | ///
6 | public static class LogContextMiddlewareExtensions {
7 | ///
8 | /// 注册日志上下文中间件
9 | ///
10 | /// 应用程序生成器
11 | public static IApplicationBuilder UseLogContext( this IApplicationBuilder builder ) {
12 | return builder.UseMiddleware();
13 | }
14 | }
--------------------------------------------------------------------------------
/src/Util.Application.WebApi/Models/SaveModel.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Applications.Models;
2 |
3 | ///
4 | /// 保存参数
5 | ///
6 | public class SaveModel {
7 | ///
8 | /// 创建列表
9 | ///
10 | public string CreationList { get; set; }
11 | ///
12 | /// 更新列表
13 | ///
14 | public string UpdateList { get; set; }
15 | ///
16 | /// 删除列表
17 | ///
18 | public string DeleteList { get; set; }
19 | }
--------------------------------------------------------------------------------
/src/Util.Application/Dtos/DtoBase.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Applications.Dtos;
2 |
3 | ///
4 | /// 数据传输对象
5 | ///
6 | public abstract class DtoBase : RequestBase, IDto {
7 | ///
8 | /// 标识
9 | ///
10 | public string Id { get; set; }
11 | }
--------------------------------------------------------------------------------
/src/Util.Application/Dtos/IDto.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Applications.Dtos;
2 |
3 | ///
4 | /// 数据传输对象
5 | ///
6 | public interface IDto : IRequest {
7 | ///
8 | /// 标识
9 | ///
10 | string Id { get; set; }
11 | }
--------------------------------------------------------------------------------
/src/Util.Application/Dtos/IRequest.cs:
--------------------------------------------------------------------------------
1 | using Util.Validation;
2 |
3 | namespace Util.Applications.Dtos;
4 |
5 | ///
6 | /// 请求参数
7 | ///
8 | public interface IRequest : IValidation {
9 | }
--------------------------------------------------------------------------------
/src/Util.Application/IService.cs:
--------------------------------------------------------------------------------
1 | using Util.Dependency;
2 |
3 | namespace Util.Applications;
4 |
5 | ///
6 | /// 应用服务
7 | ///
8 | public interface IService : IScopeDependency {
9 | }
--------------------------------------------------------------------------------
/src/Util.Application/Locks/ILock.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Applications.Locks;
2 |
3 | ///
4 | /// 业务锁
5 | ///
6 | public interface ILock {
7 | ///
8 | /// 锁定,true表示本次操作成功锁定资源,false表示资源已被之前的操作锁定
9 | ///
10 | /// 锁定标识
11 | /// 锁定时间间隔
12 | Task LockAsync( string key, TimeSpan? expiration = null );
13 | ///
14 | /// 解除锁定
15 | ///
16 | Task UnLockAsync();
17 | }
--------------------------------------------------------------------------------
/src/Util.Application/Locks/LockType.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Applications.Locks;
2 |
3 | ///
4 | /// 业务锁类型
5 | ///
6 | public enum LockType {
7 | ///
8 | /// 用户锁,当用户发出多个执行该操作的请求,只有第一个请求被执行,其它请求被抛弃,其它用户不受影响
9 | ///
10 | User = 0,
11 | ///
12 | /// 全局锁,该操作同时只有一个用户的请求被执行
13 | ///
14 | Global = 1
15 | }
--------------------------------------------------------------------------------
/src/Util.Application/Trees/LoadMode.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Applications.Trees;
2 |
3 | ///
4 | /// 加载模式
5 | ///
6 | public enum LoadMode {
7 | ///
8 | /// 同步加载,一次性加载全部节点
9 | ///
10 | Sync = 0,
11 | ///
12 | /// 异步加载,首次加载根节点,点击仅加载直接下级节点
13 | ///
14 | Async = 1,
15 | ///
16 | /// 根节点异步加载,首次加载根节点,点击加载全部下级节点
17 | ///
18 | RootAsync = 2
19 | }
--------------------------------------------------------------------------------
/src/Util.Application/Trees/LoadOperation.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Applications.Trees;
2 |
3 | ///
4 | /// 加载操作
5 | ///
6 | public enum LoadOperation {
7 | ///
8 | /// 查询
9 | ///
10 | Query,
11 | ///
12 | /// 加载子节点列表
13 | ///
14 | LoadChildren
15 | }
--------------------------------------------------------------------------------
/src/Util.Application/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.ComponentModel.DataAnnotations;
6 | global using Microsoft.Extensions.DependencyInjection;
7 | global using Microsoft.Extensions.DependencyInjection.Extensions;
8 | global using Microsoft.AspNetCore.Mvc;
9 | global using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
--------------------------------------------------------------------------------
/src/Util.AspNetCore/AspNetCore/IJsonSerializerOptionsFactory.cs:
--------------------------------------------------------------------------------
1 | using Util.Dependency;
2 |
3 | namespace Util.AspNetCore;
4 |
5 | ///
6 | /// Json序列化配置工厂
7 | ///
8 | public interface IJsonSerializerOptionsFactory : ISingletonDependency {
9 | ///
10 | /// 创建Json序列化配置
11 | ///
12 | JsonSerializerOptions CreateOptions();
13 | }
--------------------------------------------------------------------------------
/src/Util.AspNetCore/Http/HttpResponseMessageExtensions.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Http;
2 |
3 | ///
4 | /// Http响应消息扩展
5 | ///
6 | public static class HttpResponseMessageExtensions {
7 | ///
8 | /// 获取内容类型
9 | ///
10 | /// Http响应消息
11 | public static string GetContentType( this HttpResponseMessage response ) {
12 | return response?.Content.Headers.ContentType?.MediaType;
13 | }
14 | }
--------------------------------------------------------------------------------
/src/Util.AspNetCore/Security/Authorization/AclRequirement.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Security.Authorization;
2 |
3 | ///
4 | /// 授权要求
5 | ///
6 | public class AclRequirement : IAuthorizationRequirement {
7 | ///
8 | /// 是否忽略
9 | ///
10 | public bool Ignore { get; set; }
11 | ///
12 | /// 资源标识
13 | ///
14 | public string Uri { get; set; }
15 | }
--------------------------------------------------------------------------------
/src/Util.Caching.EasyCaching/CacheProviderKey.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Caching.EasyCaching;
2 |
3 | ///
4 | /// 缓存提供器标识
5 | ///
6 | public static class CacheProviderKey {
7 | ///
8 | /// 内存缓存提供器标识
9 | ///
10 | public const string MemoryCache = "util.memory.cache";
11 | ///
12 | /// Redis缓存提供器标识
13 | ///
14 | public const string RedisCache = "util.redis.cache";
15 | }
--------------------------------------------------------------------------------
/src/Util.Caching.EasyCaching/MemoryCacheManager.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Caching.EasyCaching;
2 |
3 | ///
4 | /// EasyCaching内存缓存服务
5 | ///
6 | public class MemoryCacheManager : CacheManager, ILocalCache {
7 | ///
8 | /// 初始化EasyCaching内存缓存服务
9 | ///
10 | /// EasyCaching缓存提供器工厂
11 | public MemoryCacheManager( IEasyCachingProviderFactory factory ) : base( factory?.GetCachingProvider( CacheProviderKey.MemoryCache ) ) {
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Util.Caching/CacheKeyExtensions.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Caching;
2 |
3 | ///
4 | /// 缓存键扩展
5 | ///
6 | public static class CacheKeyExtensions {
7 | ///
8 | /// 验证缓存键
9 | ///
10 | /// 缓存键
11 | public static void Validate( this CacheKey cacheKey ) {
12 | cacheKey.CheckNull( nameof( cacheKey ) );
13 | cacheKey.Key.CheckNull( nameof( cacheKey.Key ) );
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Util.Caching/CacheOptions.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Caching;
2 |
3 | ///
4 | /// 缓存配置
5 | ///
6 | public class CacheOptions {
7 | ///
8 | /// 过期时间间隔,默认值: 8小时
9 | ///
10 | public TimeSpan? Expiration { get; set; }
11 | }
--------------------------------------------------------------------------------
/src/Util.Caching/ICacheKeyGenerator.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Caching;
2 |
3 | ///
4 | /// 缓存键生成器
5 | ///
6 | public interface ICacheKeyGenerator {
7 | ///
8 | /// 创建缓存键
9 | ///
10 | /// 方法
11 | /// 参数
12 | /// 缓存键前缀
13 | string CreateCacheKey( MethodInfo methodInfo, object[] args, string prefix );
14 | }
--------------------------------------------------------------------------------
/src/Util.Caching/ILocalCache.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Caching;
2 |
3 | ///
4 | /// 本地缓存
5 | ///
6 | public interface ILocalCache : ICache {
7 | }
--------------------------------------------------------------------------------
/src/Util.Caching/IRedisCache.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Caching;
2 |
3 | ///
4 | /// Redis缓存
5 | ///
6 | public interface IRedisCache : ICache {
7 | }
--------------------------------------------------------------------------------
/src/Util.Caching/LocalCacheAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Caching;
2 |
3 | ///
4 | /// 本地缓存拦截器
5 | ///
6 | public class LocalCacheAttribute : CacheAttribute {
7 | ///
8 | /// 获取缓存服务
9 | ///
10 | protected override ICache GetCache( AspectContext context ) {
11 | return context.ServiceProvider.GetService();
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Util.Caching/RedisCacheAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Caching;
2 |
3 | ///
4 | /// Redis缓存拦截器
5 | ///
6 | public class RedisCacheAttribute : CacheAttribute {
7 | ///
8 | /// 获取缓存服务
9 | ///
10 | protected override ICache GetCache( AspectContext context ) {
11 | return context.ServiceProvider.GetService();
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Util.Caching/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.Threading;
6 | global using System.Reflection;
7 | global using Microsoft.Extensions.DependencyInjection;
8 | global using AspectCore.DynamicProxy;
--------------------------------------------------------------------------------
/src/Util.Core/Applications/StateCode.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Applications;
2 |
3 | ///
4 | /// 业务状态码
5 | ///
6 | public static class StateCode {
7 | ///
8 | /// 失败
9 | ///
10 | public const string Fail = "0";
11 | ///
12 | /// 成功
13 | ///
14 | public const string Ok = "1";
15 | ///
16 | /// 未授权
17 | ///
18 | public const string Unauthorized = "2";
19 | }
--------------------------------------------------------------------------------
/src/Util.Core/Configs/IAppBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Configs;
2 |
3 | ///
4 | /// 应用生成器
5 | ///
6 | public interface IAppBuilder {
7 | ///
8 | /// 主机生成器
9 | ///
10 | public IHostBuilder Host { get; }
11 | ///
12 | /// 构建
13 | ///
14 | public IHost Build();
15 | }
--------------------------------------------------------------------------------
/src/Util.Core/Configs/IOptions.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Configs;
2 |
3 | ///
4 | /// 配置项
5 | ///
6 | public interface IOptions {
7 | ///
8 | /// 配置项扩展列表
9 | ///
10 | List Extensions { get; }
11 | ///
12 | /// 添加配置项扩展
13 | ///
14 | /// 配置项扩展
15 | void AddExtension( IOptionsExtension extension );
16 | }
--------------------------------------------------------------------------------
/src/Util.Core/Configs/Options.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Configs;
2 |
3 | ///
4 | /// 配置项
5 | ///
6 | public class Options : OptionsBase {
7 | }
--------------------------------------------------------------------------------
/src/Util.Core/Dates/TimeOptions.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Dates;
2 |
3 | ///
4 | /// 时间配置
5 | ///
6 | public static class TimeOptions {
7 | ///
8 | /// 是否使用Utc日期
9 | ///
10 | public static bool IsUseUtc { get; set; } = false;
11 | }
--------------------------------------------------------------------------------
/src/Util.Core/Dependency/IDependencyRegistrar.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Dependency;
2 |
3 | ///
4 | /// 依赖注册器
5 | ///
6 | public interface IDependencyRegistrar {
7 | ///
8 | /// 注册依赖
9 | ///
10 | /// 服务集合
11 | void Register( IServiceCollection services );
12 | ///
13 | /// 注册序号
14 | ///
15 | int Order { get; }
16 | }
--------------------------------------------------------------------------------
/src/Util.Core/Dependency/IScopeDependency.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Dependency;
2 |
3 | ///
4 | /// 实现该接口将自动注册到Ioc容器,生命周期为每次请求创建一个实例
5 | ///
6 | public interface IScopeDependency {
7 | }
--------------------------------------------------------------------------------
/src/Util.Core/Dependency/ISingletonDependency.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Dependency;
2 |
3 | ///
4 | /// 实现该接口将自动注册到Ioc容器,生命周期为单例
5 | ///
6 | public interface ISingletonDependency {
7 | }
--------------------------------------------------------------------------------
/src/Util.Core/Dependency/ITransientDependency.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Dependency;
2 |
3 | ///
4 | /// 实现该接口将自动注册到Ioc容器,生命周期为每次创建一个新实例
5 | ///
6 | public interface ITransientDependency {
7 | }
--------------------------------------------------------------------------------
/src/Util.Core/Domain/IDelete.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Domain;
2 |
3 | ///
4 | /// 逻辑删除
5 | ///
6 | public interface IDelete {
7 | ///
8 | /// 是否删除
9 | ///
10 | bool IsDeleted { get; set; }
11 | }
--------------------------------------------------------------------------------
/src/Util.Core/Domain/IKey.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Domain;
2 |
3 | ///
4 | /// 标识
5 | ///
6 | /// 标识类型
7 | public interface IKey {
8 | ///
9 | /// 标识
10 | ///
11 | TKey Id { get; }
12 | }
--------------------------------------------------------------------------------
/src/Util.Core/Domain/IVersion.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Domain;
2 |
3 | ///
4 | /// 乐观锁
5 | ///
6 | public interface IVersion {
7 | ///
8 | /// 版本号
9 | ///
10 | byte[] Version { get; set; }
11 | }
--------------------------------------------------------------------------------
/src/Util.Core/Helpers/Validation.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Helpers;
2 |
3 | ///
4 | /// 验证操作
5 | ///
6 | public static class Validation {
7 | ///
8 | /// 是否数字
9 | ///
10 | /// 输入值
11 | public static bool IsNumber( string input ) {
12 | if( input.IsEmpty() )
13 | return false;
14 | const string pattern = @"^(-?\d*)(\.\d+)?$";
15 | return Regex.IsMatch( input, pattern );
16 | }
17 | }
--------------------------------------------------------------------------------
/src/Util.Core/Reflections/IAssemblyFinder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Reflections;
2 |
3 | ///
4 | /// 程序集查找器
5 | ///
6 | public interface IAssemblyFinder {
7 | ///
8 | /// 程序集过滤模式
9 | ///
10 | public string AssemblySkipPattern { get; set; }
11 | ///
12 | /// 查找程序集列表
13 | ///
14 | List Find();
15 | }
--------------------------------------------------------------------------------
/src/Util.Core/Reflections/ITypeFinder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Reflections;
2 |
3 | ///
4 | /// 类型查找器
5 | ///
6 | public interface ITypeFinder {
7 | ///
8 | /// 查找类型列表
9 | ///
10 | /// 查找类型
11 | List Find();
12 | ///
13 | /// 查找类型列表
14 | ///
15 | /// 查找类型
16 | List Find( Type findType );
17 | }
--------------------------------------------------------------------------------
/src/Util.Core/Sessions/ISession.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Sessions;
2 |
3 | ///
4 | /// 用户会话
5 | ///
6 | public interface ISession {
7 | ///
8 | /// 是否认证
9 | ///
10 | bool IsAuthenticated { get; }
11 | ///
12 | /// 用户标识
13 | ///
14 | string UserId { get; }
15 | }
--------------------------------------------------------------------------------
/src/Util.Core/Ui/ModelAttribute.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui;
2 |
3 | ///
4 | /// 模型绑定
5 | ///
6 | [AttributeUsage( AttributeTargets.Class )]
7 | public class ModelAttribute : Attribute {
8 | ///
9 | /// 初始化模型绑定
10 | ///
11 | /// 模型
12 | public ModelAttribute( string model ) {
13 | Model = model;
14 | }
15 |
16 | ///
17 | /// 模型
18 | ///
19 | public string Model { get; set; }
20 | }
--------------------------------------------------------------------------------
/src/Util.Data.Abstractions/Filters/IFilterOperation.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Filters;
2 |
3 | ///
4 | /// 数据过滤操作
5 | ///
6 | public interface IFilterOperation {
7 | }
--------------------------------------------------------------------------------
/src/Util.Data.Abstractions/ICondition.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data;
2 |
3 | ///
4 | /// 查询条件
5 | ///
6 | /// 实体类型
7 | public interface ICondition {
8 | ///
9 | /// 获取查询条件
10 | ///
11 | Expression> GetCondition();
12 | }
--------------------------------------------------------------------------------
/src/Util.Data.Abstractions/IUnitOfWork.cs:
--------------------------------------------------------------------------------
1 | using Util.Data.Filters;
2 |
3 | namespace Util.Data;
4 |
5 | ///
6 | /// 工作单元
7 | ///
8 | [Util.Aop.Ignore]
9 | public interface IUnitOfWork : IDisposable, IFilterOperation {
10 | ///
11 | /// 提交,返回影响的行数
12 | ///
13 | Task CommitAsync();
14 | }
--------------------------------------------------------------------------------
/src/Util.Data.Abstractions/IUnitOfWorkActionManager.cs:
--------------------------------------------------------------------------------
1 | using Util.Dependency;
2 |
3 | namespace Util.Data;
4 |
5 | ///
6 | /// 工作单元操作管理器,用于将操作延迟到工作单元提交后执行
7 | ///
8 | public interface IUnitOfWorkActionManager : IScopeDependency {
9 | ///
10 | /// 注册操作
11 | ///
12 | /// 操作
13 | void Register( Func action );
14 | ///
15 | /// 执行操作
16 | ///
17 | Task ExecuteAsync();
18 | }
--------------------------------------------------------------------------------
/src/Util.Data.Abstractions/Queries/ITrack.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Queries;
2 |
3 | ///
4 | /// 跟踪
5 | ///
6 | public interface ITrack {
7 | ///
8 | /// 设置为不跟踪实体
9 | ///
10 | void NoTracking();
11 | }
--------------------------------------------------------------------------------
/src/Util.Data.Abstractions/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.Threading;
6 | global using System.Linq.Expressions;
--------------------------------------------------------------------------------
/src/Util.Data.Core/IDatabase.cs:
--------------------------------------------------------------------------------
1 | using Util.Aop;
2 |
3 | namespace Util.Data;
4 |
5 | ///
6 | /// 数据库信息
7 | ///
8 | [Ignore]
9 | public interface IDatabase {
10 | ///
11 | /// 获取数据库连接
12 | ///
13 | IDbConnection GetConnection();
14 | }
--------------------------------------------------------------------------------
/src/Util.Data.Core/IDatabaseFactory.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data;
2 |
3 | ///
4 | /// 数据库工厂
5 | ///
6 | public interface IDatabaseFactory {
7 | ///
8 | /// 创建数据库信息
9 | ///
10 | /// 数据库连接字符串
11 | IDatabase Create( string connection );
12 | }
--------------------------------------------------------------------------------
/src/Util.Data.Core/Queries/Boundary.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Queries;
2 |
3 | ///
4 | /// 查询边界
5 | ///
6 | public enum Boundary {
7 | ///
8 | /// 包含左边
9 | ///
10 | Left,
11 | ///
12 | /// 包含右边
13 | ///
14 | Right,
15 | ///
16 | /// 包含两边
17 | ///
18 | Both,
19 | ///
20 | /// 不包含
21 | ///
22 | Neither
23 | }
--------------------------------------------------------------------------------
/src/Util.Data.Core/Queries/Conditions/Internal/DateTimeQuery.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Queries.Conditions.Internal;
2 |
3 | ///
4 | /// 日期范围查询参数对象 - 使用该对象的目的是构建参数化条件
5 | ///
6 | internal class DateTimeQuery {
7 | ///
8 | /// 起始时间
9 | ///
10 | public DateTime? BeginTime { get; set; }
11 | ///
12 | /// 结束时间
13 | ///
14 | public DateTime? EndTime { get; set; }
15 | }
--------------------------------------------------------------------------------
/src/Util.Data.Core/Queries/Conditions/Internal/DecimalQuery.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Queries.Conditions.Internal;
2 |
3 | ///
4 | /// decimal范围查询参数对象 - 使用该对象的目的是构建参数化条件
5 | ///
6 | internal class DecimalQuery {
7 | ///
8 | /// 最小值
9 | ///
10 | public decimal? MinValue { get; set; }
11 | ///
12 | /// 最大值
13 | ///
14 | public decimal? MaxValue { get; set; }
15 | }
--------------------------------------------------------------------------------
/src/Util.Data.Core/Queries/Conditions/Internal/DoubleQuery.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Queries.Conditions.Internal;
2 |
3 | ///
4 | /// double范围查询参数对象 - 使用该对象的目的是构建参数化条件
5 | ///
6 | internal class DoubleQuery {
7 | ///
8 | /// 最小值
9 | ///
10 | public double? MinValue { get; set; }
11 | ///
12 | /// 最大值
13 | ///
14 | public double? MaxValue { get; set; }
15 | }
--------------------------------------------------------------------------------
/src/Util.Data.Core/Queries/Conditions/Internal/IntQuery.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Queries.Conditions.Internal;
2 |
3 | ///
4 | /// int范围查询参数对象 - 使用该对象的目的是构建参数化条件
5 | ///
6 | internal class IntQuery {
7 | ///
8 | /// 最小值
9 | ///
10 | public int? MinValue { get; set; }
11 | ///
12 | /// 最大值
13 | ///
14 | public int? MaxValue { get; set; }
15 | }
--------------------------------------------------------------------------------
/src/Util.Data.Core/Queries/QueryParameter.cs:
--------------------------------------------------------------------------------
1 | using Util.Ui;
2 |
3 | namespace Util.Data.Queries;
4 |
5 | ///
6 | /// 查询参数
7 | ///
8 | [Model( "queryParam" )]
9 | public class QueryParameter : Pager {
10 | ///
11 | /// 搜索关键字
12 | ///
13 | [Display( Name = "util.keyword" )]
14 | public string Keyword { get; set; }
15 | }
--------------------------------------------------------------------------------
/src/Util.Data.Core/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.Data;
6 | global using System.Linq.Dynamic.Core;
7 | global using System.Linq.Expressions;
8 | global using System.ComponentModel.DataAnnotations;
9 |
--------------------------------------------------------------------------------
/src/Util.Data.Dapper.All/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using Microsoft.Extensions.DependencyInjection.Extensions;
3 |
--------------------------------------------------------------------------------
/src/Util.Data.Dapper.MySql/Sql/MySqlDatabaseFactory.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Dapper.Sql;
2 |
3 | ///
4 | /// MySql数据库工厂
5 | ///
6 | public class MySqlDatabaseFactory : IDatabaseFactory {
7 | ///
8 | /// 创建数据库信息
9 | ///
10 | /// 数据库连接字符串
11 | public IDatabase Create( string connection ) {
12 | return new DefaultDatabase( new MySqlConnection( connection ) );
13 | }
14 | }
--------------------------------------------------------------------------------
/src/Util.Data.Dapper.MySql/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.Text;
6 | global using System.Data;
7 | global using System.Collections.Concurrent;
8 | global using Microsoft.Extensions.DependencyInjection.Extensions;
9 | global using MySqlConnector;
10 |
--------------------------------------------------------------------------------
/src/Util.Data.Dapper.PostgreSql/Sql/PostgreSqlDatabaseFactory.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Dapper.Sql;
2 |
3 | ///
4 | /// PostgreSql数据库工厂
5 | ///
6 | public class PostgreSqlDatabaseFactory : IDatabaseFactory {
7 | ///
8 | /// 创建数据库信息
9 | ///
10 | /// 数据库连接字符串
11 | public IDatabase Create( string connection ) {
12 | return new DefaultDatabase( new NpgsqlConnection( connection ) );
13 | }
14 | }
--------------------------------------------------------------------------------
/src/Util.Data.Dapper.PostgreSql/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.Text;
6 | global using System.Data;
7 | global using System.Collections.Concurrent;
8 | global using Microsoft.Extensions.DependencyInjection.Extensions;
9 | global using Npgsql;
10 |
--------------------------------------------------------------------------------
/src/Util.Data.Dapper.SqlServer/Sql/SqlServerDatabaseFactory.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Dapper.Sql;
2 |
3 | ///
4 | /// Sql Server数据库工厂
5 | ///
6 | public class SqlServerDatabaseFactory : IDatabaseFactory {
7 | ///
8 | /// 创建数据库信息
9 | ///
10 | /// 数据库连接字符串
11 | public IDatabase Create( string connection ) {
12 | return new DefaultDatabase( new SqlConnection( connection ) );
13 | }
14 | }
--------------------------------------------------------------------------------
/src/Util.Data.Dapper.SqlServer/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.Text;
6 | global using System.Data;
7 | global using System.Collections.Concurrent;
8 | global using Microsoft.Extensions.DependencyInjection.Extensions;
9 | global using Microsoft.Data.SqlClient;
10 |
--------------------------------------------------------------------------------
/src/Util.Data.EntityFrameworkCore.MySql/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Data.Common;
3 | global using Microsoft.Extensions.DependencyInjection;
4 | global using Microsoft.EntityFrameworkCore;
5 | global using Microsoft.EntityFrameworkCore.Infrastructure;
6 | global using MySqlConnector;
7 |
--------------------------------------------------------------------------------
/src/Util.Data.EntityFrameworkCore.Oracle/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Data.Common;
3 | global using Microsoft.Extensions.DependencyInjection;
4 | global using Microsoft.EntityFrameworkCore;
5 | global using Microsoft.EntityFrameworkCore.Metadata;
6 | global using Oracle.EntityFrameworkCore.Infrastructure;
--------------------------------------------------------------------------------
/src/Util.Data.EntityFrameworkCore.PostgreSql/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Data.Common;
3 | global using Microsoft.Extensions.DependencyInjection;
4 | global using Microsoft.EntityFrameworkCore;
5 | global using Npgsql.EntityFrameworkCore.PostgreSQL.Infrastructure;
--------------------------------------------------------------------------------
/src/Util.Data.EntityFrameworkCore.SqlServer/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Data.Common;
3 | global using Microsoft.Extensions.DependencyInjection;
4 | global using Microsoft.EntityFrameworkCore;
5 | global using Microsoft.EntityFrameworkCore.Metadata;
6 | global using Microsoft.EntityFrameworkCore.Infrastructure;
--------------------------------------------------------------------------------
/src/Util.Data.EntityFrameworkCore.Sqlite/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Data.Common;
3 | global using Microsoft.Extensions.DependencyInjection;
4 | global using Microsoft.EntityFrameworkCore;
5 | global using Microsoft.EntityFrameworkCore.Infrastructure;
--------------------------------------------------------------------------------
/src/Util.Data.EntityFrameworkCore/ValueConverters/TrimStringValueConverter.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.EntityFrameworkCore.ValueConverters;
2 |
3 | ///
4 | /// 字符串值转换器,用于清除两端空白
5 | ///
6 | public class TrimStringValueConverter : ValueConverter {
7 | ///
8 | /// 初始化字符串值转换器
9 | ///
10 | public TrimStringValueConverter()
11 | : base( value => value.SafeString(), value => value ) {
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Util.Data.Metadata/IMetadataService.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Metadata;
2 |
3 | ///
4 | /// 数据库元数据服务
5 | ///
6 | public interface IMetadataService {
7 | ///
8 | /// 获取数据库信息
9 | ///
10 | Task GetDatabaseInfoAsync();
11 | }
--------------------------------------------------------------------------------
/src/Util.Data.Metadata/IMetadataServiceFactory.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Metadata;
2 |
3 | ///
4 | /// 数据库元数据服务工厂
5 | ///
6 | public interface IMetadataServiceFactory {
7 | ///
8 | /// 创建数据库元数据服务
9 | ///
10 | /// 数据库类型
11 | /// 数据库连接字符串
12 | IMetadataService Create( DatabaseType dbType, string connection );
13 | }
--------------------------------------------------------------------------------
/src/Util.Data.Metadata/ITypeConverter.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Metadata;
2 |
3 | ///
4 | /// 数据类型转换器
5 | ///
6 | public interface ITypeConverter {
7 | ///
8 | /// 将数据类型转换为DbType
9 | ///
10 | /// 数据类型
11 | /// 数据长度
12 | DbType? ToType( string dataType, int? length = null );
13 | }
--------------------------------------------------------------------------------
/src/Util.Data.Metadata/ITypeConverterFactory.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Metadata;
2 |
3 | ///
4 | /// 数据类型转换器工厂
5 | ///
6 | public interface ITypeConverterFactory {
7 | ///
8 | /// 创建数据库元数据服务
9 | ///
10 | /// 数据库类型
11 | ITypeConverter Create( DatabaseType dbType );
12 | }
--------------------------------------------------------------------------------
/src/Util.Data.Metadata/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System.Threading.Tasks;
2 | global using System.Collections.Generic;
3 | global using System.Data;
4 |
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Caches/IColumnCache.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Caches;
2 |
3 | ///
4 | /// 列缓存
5 | ///
6 | public interface IColumnCache {
7 | ///
8 | /// 从缓存中获取处理后的列集合
9 | ///
10 | /// 列集合
11 | string GetSafeColumns( string columns );
12 | ///
13 | /// 从缓存中获取处理后的列
14 | ///
15 | /// 列
16 | string GetSafeColumn( string column );
17 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Clauses/ISqlClause.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Clauses;
2 |
3 | ///
4 | /// Sql子句
5 | ///
6 | public interface ISqlClause : ISqlContent {
7 | ///
8 | /// 验证
9 | ///
10 | bool Validate();
11 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/IExistsSqlBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders;
2 |
3 | ///
4 | /// 判断是否存在Sql生成器
5 | ///
6 | public interface IExistsSqlBuilder {
7 | ///
8 | /// 获取Sql语句
9 | ///
10 | string GetSql();
11 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/ISqlContent.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders;
2 |
3 | ///
4 | /// Sql内容
5 | ///
6 | public interface ISqlContent {
7 | ///
8 | /// 添加到字符串生成器
9 | ///
10 | /// 字符串生成器
11 | void AppendTo( StringBuilder builder );
12 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Operations/IEnd.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Operations;
2 |
3 | ///
4 | /// 结束子句操作
5 | ///
6 | public interface IEnd {
7 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Operations/IFrom.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Operations;
2 |
3 | ///
4 | /// From子句操作
5 | ///
6 | public interface IFrom {
7 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Operations/IGroupBy.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Operations;
2 |
3 | ///
4 | /// GroupBy子句操作
5 | ///
6 | public interface IGroupBy {
7 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Operations/IInsert.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Operations;
2 |
3 | ///
4 | /// 插入子句操作
5 | ///
6 | public interface IInsert {
7 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Operations/IJoin.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Operations;
2 |
3 | ///
4 | /// Join子句操作
5 | ///
6 | public interface IJoin {
7 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Operations/IOrderBy.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Operations;
2 |
3 | ///
4 | /// OrderBy子句操作
5 | ///
6 | public interface IOrderBy {
7 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Operations/ISelect.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Operations;
2 |
3 | ///
4 | /// Select子句操作
5 | ///
6 | public interface ISelect {
7 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Operations/ISet.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Operations;
2 |
3 | ///
4 | /// Sql集合操作
5 | ///
6 | public interface ISet {
7 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Operations/ISqlOperation.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Operations;
2 |
3 | ///
4 | /// Sql操作
5 | ///
6 | public interface ISqlOperation : ISqlQueryOperation, IInsert {
7 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Operations/ISqlParameter.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Operations;
2 |
3 | ///
4 | /// Sql参数操作
5 | ///
6 | public interface ISqlParameter {
7 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Operations/ISqlQueryOperation.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Operations;
2 |
3 | ///
4 | /// Sql查询操作
5 | ///
6 | public interface ISqlQueryOperation : IStart, ISelect, IFrom, IJoin, IWhere, IGroupBy, IOrderBy, IEnd, ISqlParameter, ISet {
7 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Operations/IStart.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Operations;
2 |
3 | ///
4 | /// 起始子句操作
5 | ///
6 | public interface IStart {
7 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Operations/IWhere.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Operations;
2 |
3 | ///
4 | /// Where子句操作
5 | ///
6 | public interface IWhere {
7 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Params/IClearParameters.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Params;
2 |
3 | ///
4 | /// 清空Sql参数
5 | ///
6 | public interface IClearParameters {
7 | ///
8 | /// 清空Sql参数
9 | ///
10 | void ClearParams();
11 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Params/IGetParameter.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Params;
2 |
3 | ///
4 | /// 获取Sql参数
5 | ///
6 | public interface IGetParameter {
7 | ///
8 | /// 获取Sql参数值
9 | ///
10 | /// 参数值类型
11 | /// 参数名
12 | T GetParam( string name );
13 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Builders/Params/IParamLiteralsResolver.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Builders.Params;
2 |
3 | ///
4 | /// 参数字面值解析器
5 | ///
6 | public interface IParamLiteralsResolver {
7 | ///
8 | /// 获取参数字面值
9 | ///
10 | /// 参数值
11 | string GetParamLiterals( object value );
12 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Configs/ISqlOptions.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Configs;
2 |
3 | ///
4 | /// Sql配置操作
5 | ///
6 | public interface ISqlOptions {
7 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Configs/ISqlOptionsAccessor.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Configs;
2 |
3 | ///
4 | /// Sql配置访问器
5 | ///
6 | public interface ISqlOptionsAccessor {
7 | ///
8 | /// 获取Sql配置
9 | ///
10 | SqlOptions GetOptions();
11 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Database/IConnectionManager.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Database;
2 |
3 | ///
4 | /// 数据库连接管理器
5 | ///
6 | public interface IConnectionManager {
7 | ///
8 | /// 设置数据库连接
9 | ///
10 | /// 数据库连接
11 | void SetConnection( IDbConnection connection );
12 | ///
13 | /// 获取数据库连接
14 | ///
15 | IDbConnection GetConnection();
16 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/ISqlCondition.cs:
--------------------------------------------------------------------------------
1 | using Util.Data.Sql.Builders;
2 |
3 | namespace Util.Data.Sql;
4 |
5 | ///
6 | /// Sql查询条件
7 | ///
8 | public interface ISqlCondition : ISqlContent {
9 | }
--------------------------------------------------------------------------------
/src/Util.Data.Sql/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.Text;
6 | global using System.Data;
7 | global using System.Text.RegularExpressions;
8 | global using System.Collections;
9 |
--------------------------------------------------------------------------------
/src/Util.Domain.Biz/Enums/Gender.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Domain.Biz.Enums;
2 |
3 | ///
4 | /// 性别
5 | ///
6 | public enum Gender {
7 | ///
8 | /// 女
9 | ///
10 | [Description( "util.female" )]
11 | Female = 1,
12 | ///
13 | /// 男
14 | ///
15 | [Description( "util.male" )]
16 | Male = 2
17 | }
--------------------------------------------------------------------------------
/src/Util.Domain.Biz/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System.ComponentModel;
2 |
--------------------------------------------------------------------------------
/src/Util.Domain/Auditing/IAudited.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Domain.Auditing;
2 |
3 | ///
4 | /// 操作审计
5 | ///
6 | public interface IAudited : ICreationAudited, IModificationAudited {
7 | }
8 |
9 | ///
10 | /// 操作审计
11 | ///
12 | /// 操作人编号类型
13 | public interface IAudited : ICreationAudited, IModificationAudited {
14 | }
--------------------------------------------------------------------------------
/src/Util.Domain/Auditing/ICreationAudited.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Domain.Auditing;
2 |
3 | ///
4 | /// 创建操作审计
5 | ///
6 | public interface ICreationAudited : ICreationAudited {
7 | }
8 |
9 | ///
10 | /// 创建操作审计
11 | ///
12 | /// 创建人标识类型
13 | public interface ICreationAudited : ICreationTime {
14 | ///
15 | /// 创建人标识
16 | ///
17 | TKey CreatorId { get; set; }
18 | }
--------------------------------------------------------------------------------
/src/Util.Domain/Auditing/ICreationTime.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Domain.Auditing;
2 |
3 | ///
4 | /// 创建时间审计
5 | ///
6 | public interface ICreationTime {
7 | ///
8 | /// 创建时间
9 | ///
10 | DateTime? CreationTime { get; set; }
11 | }
--------------------------------------------------------------------------------
/src/Util.Domain/Auditing/ILastModificationTime.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Domain.Auditing;
2 |
3 | ///
4 | /// 修改时间审计
5 | ///
6 | public interface ILastModificationTime {
7 | ///
8 | /// 最后修改时间
9 | ///
10 | DateTime? LastModificationTime { get; set; }
11 | }
--------------------------------------------------------------------------------
/src/Util.Domain/Compare/ICompareChange.cs:
--------------------------------------------------------------------------------
1 | using Util.Domain.Entities;
2 |
3 | namespace Util.Domain.Compare;
4 |
5 | ///
6 | /// 通过对象比较获取变更属性集
7 | ///
8 | /// 领域对象类型
9 | public interface ICompareChange where T : IDomainObject {
10 | ///
11 | /// 获取变更属性
12 | ///
13 | /// 其它领域对象
14 | ChangeValueCollection GetChanges( T other );
15 | }
--------------------------------------------------------------------------------
/src/Util.Domain/Entities/IDomainObject.cs:
--------------------------------------------------------------------------------
1 | using Util.Validation;
2 |
3 | namespace Util.Domain.Entities;
4 |
5 | ///
6 | /// 领域对象
7 | ///
8 | public interface IDomainObject : IValidation {
9 | }
--------------------------------------------------------------------------------
/src/Util.Domain/Events/EntityChangeType.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Domain.Events;
2 |
3 | ///
4 | /// 实体变更类型
5 | ///
6 | public enum EntityChangeType {
7 | ///
8 | /// 新增
9 | ///
10 | Created,
11 | ///
12 | /// 修改
13 | ///
14 | Updated,
15 | ///
16 | /// 删除
17 | ///
18 | Deleted
19 | }
--------------------------------------------------------------------------------
/src/Util.Domain/Extending/IExtraProperties.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Domain.Extending;
2 |
3 | ///
4 | /// 扩展属性
5 | ///
6 | public interface IExtraProperties {
7 | }
--------------------------------------------------------------------------------
/src/Util.Domain/Services/IDomainService.cs:
--------------------------------------------------------------------------------
1 | using Util.Dependency;
2 |
3 | namespace Util.Domain.Services;
4 |
5 | ///
6 | /// 领域服务
7 | ///
8 | public interface IDomainService : IScopeDependency {
9 | }
--------------------------------------------------------------------------------
/src/Util.Domain/Trees/IEnabled.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Domain.Trees;
2 |
3 | ///
4 | /// 启用
5 | ///
6 | public interface IEnabled {
7 | ///
8 | /// 是否启用
9 | ///
10 | bool Enabled { get; set; }
11 | }
--------------------------------------------------------------------------------
/src/Util.Domain/Trees/IParentId.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Domain.Trees;
2 |
3 | ///
4 | /// 父标识
5 | ///
6 | /// 父标识类型
7 | public interface IParentId {
8 | ///
9 | /// 父标识
10 | ///
11 | TParentId ParentId { get; set; }
12 | }
--------------------------------------------------------------------------------
/src/Util.Domain/Trees/IPath.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Domain.Trees;
2 |
3 | ///
4 | /// 物化路径
5 | ///
6 | public interface IPath {
7 | ///
8 | /// 路径
9 | ///
10 | string Path { get; }
11 | ///
12 | /// 层级
13 | ///
14 | int Level { get; }
15 | }
--------------------------------------------------------------------------------
/src/Util.Domain/Trees/ISortId.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Domain.Trees;
2 |
3 | ///
4 | /// 排序号
5 | ///
6 | public interface ISortId {
7 | ///
8 | /// 排序号
9 | ///
10 | int? SortId { get; set; }
11 | }
--------------------------------------------------------------------------------
/src/Util.Domain/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.Threading;
6 | global using System.Text;
7 | global using System.Reflection;
8 | global using System.Linq.Expressions;
9 | global using System.ComponentModel.DataAnnotations;
--------------------------------------------------------------------------------
/src/Util.Events.Abstractions/IEvent.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Events;
2 |
3 | ///
4 | /// 事件
5 | ///
6 | public interface IEvent {
7 | }
--------------------------------------------------------------------------------
/src/Util.Events.Abstractions/IEventBus.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Events;
2 |
3 | ///
4 | /// 事件总线
5 | ///
6 | public interface IEventBus {
7 | ///
8 | /// 发布事件
9 | ///
10 | /// 事件类型
11 | /// 事件
12 | /// 取消令牌
13 | Task PublishAsync( TEvent @event,CancellationToken cancellationToken = default ) where TEvent : IEvent;
14 | }
--------------------------------------------------------------------------------
/src/Util.Events.Abstractions/IIntegrationEvent.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Events;
2 |
3 | ///
4 | /// 集成事件
5 | ///
6 | public interface IIntegrationEvent : IEvent {
7 | ///
8 | /// 事件标识
9 | ///
10 | public string EventId { get; }
11 | ///
12 | /// 事件发生时间
13 | ///
14 | public DateTime EventTime { get; }
15 | }
--------------------------------------------------------------------------------
/src/Util.Events.Abstractions/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Threading;
--------------------------------------------------------------------------------
/src/Util.Events/ILocalEventBus.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Events;
2 |
3 | ///
4 | /// 基于内存的本地事件总线
5 | ///
6 | public interface ILocalEventBus : IEventBus {
7 | }
--------------------------------------------------------------------------------
/src/Util.Events/ILocalEventHandler.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Events;
2 |
3 | ///
4 | /// 本地事件处理器
5 | ///
6 | public interface ILocalEventHandler : IEventHandler {
7 | ///
8 | /// 序号
9 | ///
10 | int Order { get; }
11 | }
--------------------------------------------------------------------------------
/src/Util.Events/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.Threading;
6 | global using Microsoft.Extensions.DependencyInjection;
7 | global using Microsoft.Extensions.DependencyInjection.Extensions;
--------------------------------------------------------------------------------
/src/Util.FileStorage.Minio/IMinioConfigProvider.cs:
--------------------------------------------------------------------------------
1 | using Util.Dependency;
2 |
3 | namespace Util.FileStorage.Minio;
4 |
5 | ///
6 | /// Minio配置提供器
7 | ///
8 | public interface IMinioConfigProvider : ITransientDependency {
9 | ///
10 | /// 获取配置
11 | ///
12 | Task GetConfigAsync();
13 | }
--------------------------------------------------------------------------------
/src/Util.FileStorage.Minio/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.Threading;
6 | global using System.IO;
7 | global using System.Net.Http;
8 | global using Microsoft.Extensions.DependencyInjection;
9 | global using Microsoft.Extensions.DependencyInjection.Extensions;
10 | global using Minio;
11 | global using Minio.Exceptions;
--------------------------------------------------------------------------------
/src/Util.FileStorage/BucketNameProcessorFactory.cs:
--------------------------------------------------------------------------------
1 | namespace Util.FileStorage;
2 |
3 | ///
4 | /// 存储桶名称处理器工厂
5 | ///
6 | public class BucketNameProcessorFactory : IBucketNameProcessorFactory {
7 | ///
8 | public IBucketNameProcessor CreateProcessor( string policy ) {
9 | if ( policy.IsEmpty() )
10 | return new BucketNameProcessor();
11 | throw new NotImplementedException( $"存储桶名称处理策略 {policy} 未实现." );
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Util.FileStorage/DeleteFileArgs.cs:
--------------------------------------------------------------------------------
1 | namespace Util.FileStorage;
2 |
3 | ///
4 | /// 删除文件方法参数
5 | ///
6 | public class DeleteFileArgs : FileStorageArgs {
7 | ///
8 | /// 初始化删除文件方法参数
9 | ///
10 | /// 文件名
11 | public DeleteFileArgs( string fileName ) : base( fileName ) {
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Util.FileStorage/FileExistsArgs.cs:
--------------------------------------------------------------------------------
1 | namespace Util.FileStorage;
2 |
3 | ///
4 | /// 文件是否存在方法参数
5 | ///
6 | public class FileExistsArgs : FileStorageArgs {
7 | ///
8 | /// 初始化文件是否存在方法参数
9 | ///
10 | /// 文件名
11 | public FileExistsArgs( string fileName ) : base( fileName ) {
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Util.FileStorage/FileNameProcessor.cs:
--------------------------------------------------------------------------------
1 | namespace Util.FileStorage;
2 |
3 | ///
4 | /// 默认文件名处理器,不作任何修改
5 | ///
6 | public class FileNameProcessor : IFileNameProcessor {
7 | ///
8 | public ProcessedName Process( string fileName ) {
9 | return new ProcessedName( fileName );
10 | }
11 | }
--------------------------------------------------------------------------------
/src/Util.FileStorage/GenerateUploadUrlArgs.cs:
--------------------------------------------------------------------------------
1 | namespace Util.FileStorage;
2 |
3 | ///
4 | /// 生成上传Url方法参数
5 | ///
6 | public class GenerateUploadUrlArgs : FileStorageArgs {
7 | ///
8 | /// 初始化生成上传Url方法参数
9 | ///
10 | /// 文件名
11 | public GenerateUploadUrlArgs( string fileName ) : base( fileName ) {
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Util.FileStorage/GetFileStreamArgs.cs:
--------------------------------------------------------------------------------
1 | namespace Util.FileStorage;
2 |
3 | ///
4 | /// 获取文件流方法参数
5 | ///
6 | public class GetFileStreamArgs : FileStorageArgs {
7 | ///
8 | /// 初始化获取文件流方法参数
9 | ///
10 | /// 文件名
11 | public GetFileStreamArgs( string fileName ) : base( fileName ) {
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Util.FileStorage/IBucketNameProcessor.cs:
--------------------------------------------------------------------------------
1 | namespace Util.FileStorage;
2 |
3 | ///
4 | /// 存储桶名称处理器
5 | ///
6 | public interface IBucketNameProcessor {
7 | ///
8 | /// 处理存储桶名称
9 | ///
10 | /// 存储桶名称
11 | ProcessedName Process( string bucketName );
12 | }
--------------------------------------------------------------------------------
/src/Util.FileStorage/IBucketNameProcessorFactory.cs:
--------------------------------------------------------------------------------
1 | using Util.Dependency;
2 |
3 | namespace Util.FileStorage;
4 |
5 | ///
6 | /// 存储桶名称处理器工厂
7 | ///
8 | public interface IBucketNameProcessorFactory : ITransientDependency {
9 | ///
10 | /// 创建存储桶名称处理器
11 | ///
12 | /// 存储桶名称处理策略
13 | IBucketNameProcessor CreateProcessor( string policy );
14 | }
--------------------------------------------------------------------------------
/src/Util.FileStorage/IFileNameProcessor.cs:
--------------------------------------------------------------------------------
1 | using Util.Dependency;
2 |
3 | namespace Util.FileStorage;
4 |
5 | ///
6 | /// 文件名处理器
7 | ///
8 | public interface IFileNameProcessor : ITransientDependency {
9 | ///
10 | /// 处理文件名
11 | ///
12 | /// 文件名
13 | ProcessedName Process( string fileName );
14 | }
--------------------------------------------------------------------------------
/src/Util.FileStorage/IFileNameProcessorFactory.cs:
--------------------------------------------------------------------------------
1 | using Util.Dependency;
2 |
3 | namespace Util.FileStorage;
4 |
5 | ///
6 | /// 文件名处理器工厂
7 | ///
8 | public interface IFileNameProcessorFactory : ITransientDependency {
9 | ///
10 | /// 创建文件名处理器
11 | ///
12 | /// 文件名处理策略
13 | IFileNameProcessor CreateProcessor( string policy );
14 | }
--------------------------------------------------------------------------------
/src/Util.FileStorage/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Threading;
5 | global using System.IO;
6 |
--------------------------------------------------------------------------------
/src/Util.Generators.Razor/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.IO;
5 | global using Microsoft.Extensions.DependencyInjection.Extensions;
--------------------------------------------------------------------------------
/src/Util.Generators/Configuration/GeneratorOptionsBuilder.cs:
--------------------------------------------------------------------------------
1 | using Util.Helpers;
2 |
3 | namespace Util.Generators.Configuration;
4 |
5 | ///
6 | /// 生成器配置项构建器
7 | ///
8 | public class GeneratorOptionsBuilder : IGeneratorOptionsBuilder {
9 | ///
10 | /// 构建生成器配置项
11 | ///
12 | public Task BuildAsync() {
13 | var result = Config.Get( "Generator" );
14 | return Task.FromResult( result );
15 | }
16 | }
--------------------------------------------------------------------------------
/src/Util.Generators/Configuration/IGeneratorOptionsBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Generators.Configuration;
2 |
3 | ///
4 | /// 生成器配置项构建器
5 | ///
6 | public interface IGeneratorOptionsBuilder {
7 | ///
8 | /// 构建生成器配置项
9 | ///
10 | Task BuildAsync();
11 | }
--------------------------------------------------------------------------------
/src/Util.Generators/Configuration/ProjectType.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Generators.Configuration;
2 |
3 | ///
4 | /// 项目类型
5 | ///
6 | public enum ProjectType {
7 | ///
8 | /// 生成Web API相关的项目,不生成UI
9 | ///
10 | WebApi,
11 | ///
12 | /// 生成UI,包含Web API项目
13 | ///
14 | Ui
15 | }
--------------------------------------------------------------------------------
/src/Util.Generators/Contexts/IGeneratorContextBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Generators.Contexts;
2 |
3 | ///
4 | /// 生成器上下文构建器
5 | ///
6 | public interface IGeneratorContextBuilder {
7 | ///
8 | /// 创建生成器上下文
9 | ///
10 | Task BuildAsync();
11 | }
--------------------------------------------------------------------------------
/src/Util.Generators/IGenerator.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Generators;
2 |
3 | ///
4 | /// 生成器
5 | ///
6 | public interface IGenerator {
7 | ///
8 | /// 生成
9 | ///
10 | Task GenerateAsync();
11 | }
--------------------------------------------------------------------------------
/src/Util.Generators/NamingConvention.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Generators;
2 |
3 | ///
4 | /// 命名约定
5 | ///
6 | public enum NamingConvention {
7 | ///
8 | /// 帕斯卡命名,所有单词首字母大写
9 | ///
10 | PascalCase,
11 | ///
12 | /// 驼峰命名,第一个单词首字母小写,其余单词首字母大写
13 | ///
14 | CamelCase
15 | }
--------------------------------------------------------------------------------
/src/Util.Generators/Templates/ITemplate.cs:
--------------------------------------------------------------------------------
1 | using Util.Generators.Contexts;
2 |
3 | namespace Util.Generators.Templates;
4 |
5 | ///
6 | /// 模板
7 | ///
8 | public interface ITemplate {
9 | ///
10 | /// 模板路径
11 | ///
12 | string Path { get; }
13 | ///
14 | /// 渲染
15 | ///
16 | /// 实体上下文
17 | Task RenderAsync( EntityContext context );
18 | }
--------------------------------------------------------------------------------
/src/Util.Generators/Templates/ITemplateFilter.cs:
--------------------------------------------------------------------------------
1 | using Util.Generators.Contexts;
2 |
3 | namespace Util.Generators.Templates;
4 |
5 | ///
6 | /// 模板过滤器
7 | ///
8 | public interface ITemplateFilter {
9 | ///
10 | /// 是否过滤模板,返回true则不生成该模板
11 | ///
12 | /// 模板绝对路径
13 | /// 项目上下文
14 | bool IsFilter( string path, ProjectContext projectContext );
15 | }
--------------------------------------------------------------------------------
/src/Util.Generators/Templates/ITemplateFinder.cs:
--------------------------------------------------------------------------------
1 | using Util.Generators.Contexts;
2 |
3 | namespace Util.Generators.Templates;
4 |
5 | ///
6 | /// 模板查找器
7 | ///
8 | public interface ITemplateFinder {
9 | ///
10 | /// 查找模板列表
11 | ///
12 | /// 模板根目录绝对路径
13 | /// 项目上下文
14 | IEnumerable Find( string rootPath, ProjectContext projectContext );
15 | }
--------------------------------------------------------------------------------
/src/Util.Generators/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.Diagnostics;
6 | global using System.IO;
7 | global using System.Data;
8 | global using System.ComponentModel.DataAnnotations;
9 | global using Humanizer;
10 |
--------------------------------------------------------------------------------
/src/Util.Images.Avatar/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Linq;
4 | global using System.Threading;
5 | global using SixLabors.Fonts;
6 |
--------------------------------------------------------------------------------
/src/Util.Images.ImageSharp/Commands/ICommand.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Images.Commands;
2 |
3 | ///
4 | /// 调用命令
5 | ///
6 | public interface ICommand {
7 | ///
8 | /// 调用
9 | ///
10 | /// 图片实例
11 | void Invoke( Image image );
12 | }
--------------------------------------------------------------------------------
/src/Util.Logging.Serilog.Exceptionless/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using Microsoft.Extensions.Configuration;
3 | global using Microsoft.Extensions.DependencyInjection;
4 | global using Microsoft.Extensions.Logging;
5 | global using Serilog;
6 | global using Exceptionless;
--------------------------------------------------------------------------------
/src/Util.Logging.Serilog/LogOptions.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Logging.Serilog;
2 |
3 | ///
4 | /// 日志配置
5 | ///
6 | public class LogOptions {
7 | ///
8 | /// 是否清除默认设置的日志提供程序
9 | ///
10 | public bool IsClearProviders { get; set; }
11 | ///
12 | /// 应用程序名称
13 | ///
14 | public string Application { get; set; }
15 | }
--------------------------------------------------------------------------------
/src/Util.Logging.Serilog/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using Microsoft.Extensions.Configuration;
3 | global using Microsoft.Extensions.DependencyInjection;
4 | global using Microsoft.Extensions.Logging;
5 | global using Serilog;
6 | global using Serilog.Core;
7 | global using Serilog.Events;
8 | global using Serilog.Configuration;
--------------------------------------------------------------------------------
/src/Util.Logging/ILogContextAccessor.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Logging;
2 |
3 | ///
4 | /// 日志上下文访问器
5 | ///
6 | public interface ILogContextAccessor {
7 | ///
8 | /// 日志上下文
9 | ///
10 | LogContext Context { get; set; }
11 | }
--------------------------------------------------------------------------------
/src/Util.Logging/ILogFactory.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Logging;
2 |
3 | ///
4 | /// 日志操作工厂
5 | ///
6 | public interface ILogFactory {
7 | ///
8 | /// 创建日志操作
9 | ///
10 | /// 日志类别
11 | ILog CreateLog( string categoryName );
12 | ///
13 | /// 创建日志操作
14 | ///
15 | /// 日志类别类型
16 | ILog CreateLog( Type type );
17 | }
--------------------------------------------------------------------------------
/src/Util.Logging/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Collections.Generic;
3 | global using System.Diagnostics;
4 | global using System.Text;
5 | global using Microsoft.Extensions.Logging;
6 |
--------------------------------------------------------------------------------
/src/Util.Microservices.HealthChecks/EntityFrameworkCore/UnitOfWorkHealthCheck.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/src/Util.Microservices.HealthChecks/EntityFrameworkCore/UnitOfWorkHealthCheck.cs
--------------------------------------------------------------------------------
/src/Util.Microservices.HealthChecks/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.Threading;
6 | global using Microsoft.Extensions.DependencyInjection;
7 | global using Microsoft.Extensions.Diagnostics.HealthChecks;
8 | global using Dapr.Client;
9 | global using Util.Data;
10 | global using Util.Data.EntityFrameworkCore;
11 |
--------------------------------------------------------------------------------
/src/Util.Microservices.Polly/IPolicy.cs:
--------------------------------------------------------------------------------
1 | using Util.Dependency;
2 |
3 | namespace Util.Microservices;
4 |
5 | ///
6 | /// 弹性处理策略
7 | ///
8 | public interface IPolicy : ITransientDependency {
9 | ///
10 | /// 重试
11 | ///
12 | IRetryPolicyHandler Retry();
13 | ///
14 | /// 重试
15 | ///
16 | /// 重试次数
17 | IRetryPolicyHandler Retry( int count );
18 | }
--------------------------------------------------------------------------------
/src/Util.Microservices.Polly/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using Polly;
4 | global using Polly.Retry;
--------------------------------------------------------------------------------
/src/Util.Microservices/IMicroserviceClient.cs:
--------------------------------------------------------------------------------
1 | using Util.Http;
2 |
3 | namespace Util.Microservices;
4 |
5 | ///
6 | /// 微服务客户端
7 | ///
8 | public interface IMicroserviceClient {
9 | ///
10 | /// Http客户端
11 | ///
12 | IHttpClient HttpClient { get; }
13 | ///
14 | /// WebApi服务调用
15 | ///
16 | IServiceInvocation ServiceInvocation { get; }
17 | }
--------------------------------------------------------------------------------
/src/Util.Microservices/IMicroserviceClientFactory.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Microservices;
2 |
3 | ///
4 | /// 微服务客户端工厂
5 | ///
6 | public interface IMicroserviceClientFactory : ITransientDependency {
7 | ///
8 | /// 创建微服务客户端
9 | ///
10 | IMicroserviceClient Create();
11 | }
--------------------------------------------------------------------------------
/src/Util.Microservices/ServiceResult.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Microservices;
2 |
3 | ///
4 | /// 服务约定结果
5 | ///
6 | public class ServiceResult {
7 | ///
8 | /// 状态码
9 | ///
10 | public string Code { get; set; }
11 | ///
12 | /// 消息
13 | ///
14 | public string Message { get; set; }
15 | ///
16 | /// 数据
17 | ///
18 | public TData Data { get; set; }
19 | }
--------------------------------------------------------------------------------
/src/Util.Microservices/ServiceState.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Microservices;
2 |
3 | ///
4 | /// 服务状态码
5 | ///
6 | public enum ServiceState {
7 | ///
8 | /// 失败
9 | ///
10 | Fail,
11 | ///
12 | /// 成功
13 | ///
14 | Ok,
15 | ///
16 | /// 未授权
17 | ///
18 | Unauthorized
19 | }
--------------------------------------------------------------------------------
/src/Util.Microservices/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Collections.Generic;
3 | global using System.Threading.Tasks;
4 | global using System.Threading;
5 | global using System.Net.Http;
6 | global using System.Text.Json;
7 | global using Microsoft.AspNetCore.Http;
8 | global using Util.Dependency;
--------------------------------------------------------------------------------
/src/Util.ObjectMapping.AutoMapper/IAutoMapperConfig.cs:
--------------------------------------------------------------------------------
1 | namespace Util.ObjectMapping;
2 |
3 | ///
4 | /// AutoMapper配置
5 | ///
6 | public interface IAutoMapperConfig {
7 | ///
8 | /// 配置映射
9 | ///
10 | /// 配置映射表达式
11 | void Config( IMapperConfigurationExpression expression );
12 | }
--------------------------------------------------------------------------------
/src/Util.ObjectMapping.AutoMapper/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Linq;
3 | global using System.Linq.Expressions;
4 | global using Microsoft.Extensions.DependencyInjection;
5 | global using AutoMapper;
6 | global using AutoMapper.Internal;
7 |
--------------------------------------------------------------------------------
/src/Util.Scheduling.Hangfire/HangfireJobInfo.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Scheduling;
2 |
3 | ///
4 | /// Hangfire任务信息
5 | ///
6 | public class HangfireJobInfo : IJobInfo {
7 | ///
8 | /// 任务标识
9 | ///
10 | public string Id { get; set; }
11 | ///
12 | /// 队列名称
13 | ///
14 | public string Queue { get; set; } = "default";
15 | }
--------------------------------------------------------------------------------
/src/Util.Scheduling.Hangfire/HangfireTrigger.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Scheduling;
2 |
3 | ///
4 | /// Hangfire触发器
5 | ///
6 | public class HangfireTrigger : IJobTrigger {
7 | ///
8 | /// 延迟执行时间间隔
9 | ///
10 | public TimeSpan? Delay { get; set; }
11 | ///
12 | /// Cron表达式
13 | ///
14 | public string Cron { get; set; }
15 | }
--------------------------------------------------------------------------------
/src/Util.Scheduling.Hangfire/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Threading;
4 | global using System.Linq.Expressions;
5 | global using Microsoft.Extensions.DependencyInjection;
6 | global using Microsoft.Extensions.DependencyInjection.Extensions;
7 | global using Hangfire;
8 |
--------------------------------------------------------------------------------
/src/Util.Scheduling.Quartz/QuartzJobInfo.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Scheduling;
2 |
3 | ///
4 | /// Quartz任务信息
5 | ///
6 | public class QuartzJobInfo : IJobInfo {
7 | ///
8 | /// 任务名称
9 | ///
10 | public string Name { get; set; }
11 | ///
12 | /// 任务组名称
13 | ///
14 | public string Group { get; set; }
15 | }
--------------------------------------------------------------------------------
/src/Util.Scheduling.Quartz/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Threading;
4 | global using Microsoft.Extensions.DependencyInjection;
5 | global using Microsoft.Extensions.DependencyInjection.Extensions;
6 | global using Quartz;
7 |
--------------------------------------------------------------------------------
/src/Util.Scheduling/IJob.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Scheduling;
2 |
3 | ///
4 | /// 后台任务
5 | ///
6 | public interface IJob {
7 | ///
8 | /// 配置
9 | ///
10 | void Config();
11 | }
--------------------------------------------------------------------------------
/src/Util.Scheduling/IJobInfo.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Scheduling;
2 |
3 | ///
4 | /// 后台任务信息
5 | ///
6 | public interface IJobInfo {
7 | }
--------------------------------------------------------------------------------
/src/Util.Scheduling/IJobTrigger.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Scheduling;
2 |
3 | ///
4 | /// 后台任务触发器
5 | ///
6 | public interface IJobTrigger {
7 | }
--------------------------------------------------------------------------------
/src/Util.Scheduling/IScan.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Scheduling;
2 |
3 | ///
4 | /// 自动扫描,后台任务实现该接口,当关闭全局扫描时也会自动加入
5 | ///
6 | public interface IScan {
7 | }
--------------------------------------------------------------------------------
/src/Util.Scheduling/SchedulerOptions.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Scheduling;
2 |
3 | ///
4 | /// 后台任务调度器配置
5 | ///
6 | public class SchedulerOptions {
7 | ///
8 | /// 是否扫描加载后台任务
9 | ///
10 | public bool IsScanJobs { get; set; }
11 | }
--------------------------------------------------------------------------------
/src/Util.Scheduling/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.Threading;
6 | global using Microsoft.Extensions.DependencyInjection;
7 | global using Microsoft.Extensions.Hosting;
8 | global using Microsoft.Extensions.Options;
--------------------------------------------------------------------------------
/src/Util.Security/Security/Authentication/UnauthenticatedIdentity.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Security.Authentication;
2 |
3 | ///
4 | /// 未认证的身份标识
5 | ///
6 | public class UnauthenticatedIdentity : ClaimsIdentity {
7 | ///
8 | /// 是否认证
9 | ///
10 | public override bool IsAuthenticated => false;
11 |
12 | ///
13 | /// 未认证的身份标识实例
14 | ///
15 | public static readonly UnauthenticatedIdentity Instance = new();
16 | }
--------------------------------------------------------------------------------
/src/Util.Security/Security/Authorization/IPermissionManager.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Security.Authorization;
2 |
3 | ///
4 | /// 权限管理器
5 | ///
6 | public interface IPermissionManager {
7 | ///
8 | /// 检查当前用户是否具有该资源的访问权限,返回true表示允许访问,false表示拒绝访问
9 | ///
10 | /// 资源标识
11 | Task HasPermissionAsync( string resourceUri );
12 | }
--------------------------------------------------------------------------------
/src/Util.Security/Security/Encryptors/IEncryptor.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Security.Encryptors;
2 |
3 | ///
4 | /// 加密器
5 | ///
6 | public interface IEncryptor {
7 | ///
8 | /// 加密
9 | ///
10 | /// 原始数据
11 | string Encrypt( string data );
12 | ///
13 | /// 解密
14 | ///
15 | /// 已加密数据
16 | string Decrypt( string data );
17 | }
--------------------------------------------------------------------------------
/src/Util.Security/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Linq;
4 | global using System.Text;
5 | global using System.Security.Cryptography;
6 | global using System.Security.Claims;
7 | global using System.Security.Principal;
8 |
--------------------------------------------------------------------------------
/src/Util.Templates.Handlebars/HandlebarsDotNet/IHandlebarsTemplateEngine.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Templates.HandlebarsDotNet;
2 |
3 | ///
4 | /// Handlebars模板引擎
5 | ///
6 | public interface IHandlebarsTemplateEngine : ITemplateEngine {
7 | }
--------------------------------------------------------------------------------
/src/Util.Templates.Handlebars/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Concurrent;
4 | global using Microsoft.Extensions.DependencyInjection;
5 | global using HandlebarsDotNet;
--------------------------------------------------------------------------------
/src/Util.Templates.Razor/Razor/Filters/PartialAsyncFilter.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Templates.Razor.Filters;
2 |
3 | ///
4 | /// 部分视图过滤器,移除模板中的await
5 | ///
6 | public class PartialAsyncFilter : ITemplateFilter {
7 | ///
8 | /// 过滤模板
9 | ///
10 | /// 模板字符串
11 | public string Filter( string template ) {
12 | return Util.Helpers.Regex.Replace( template, @"await\s+Html.PartialAsync", "Html.PartialAsync" );
13 | }
14 | }
--------------------------------------------------------------------------------
/src/Util.Templates.Razor/Razor/IRazorTemplateEngine.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Templates.Razor;
2 |
3 | ///
4 | /// Razor模板引擎
5 | ///
6 | public interface IRazorTemplateEngine : ITemplateEngine {
7 | }
--------------------------------------------------------------------------------
/src/Util.Templates.Razor/RazorEngineCore/RazorEngineTemplateBaseT.cs:
--------------------------------------------------------------------------------
1 | namespace RazorEngineCore;
2 |
3 | public abstract class RazorEngineTemplateBase : RazorEngineTemplateBase
4 | {
5 | public new T Model { get; set; }
6 | }
--------------------------------------------------------------------------------
/src/Util.Templates.Razor/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.Text;
6 | global using System.IO;
7 | global using System.Reflection;
8 | global using System.Runtime.InteropServices;
9 | global using System.Collections.Concurrent;
10 | global using Microsoft.Extensions.DependencyInjection;
11 | global using RazorEngineCore;
--------------------------------------------------------------------------------
/src/Util.Templates/ITemplateFilter.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Templates;
2 |
3 | ///
4 | /// 模板过滤器
5 | ///
6 | public interface ITemplateFilter {
7 | ///
8 | /// 过滤模板
9 | ///
10 | /// 模板字符串
11 | string Filter( string template );
12 | }
--------------------------------------------------------------------------------
/src/Util.Templates/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
--------------------------------------------------------------------------------
/src/Util.Ui.Angular/Builders/RouterOutletBuilder.cs:
--------------------------------------------------------------------------------
1 | using Util.Ui.Configs;
2 |
3 | namespace Util.Ui.Angular.Builders;
4 |
5 | ///
6 | /// router-outlet标签生成器
7 | ///
8 | public class RouterOutletBuilder : AngularTagBuilder {
9 | ///
10 | /// 初始化router-outlet标签生成器
11 | ///
12 | /// 配置
13 | public RouterOutletBuilder( Config config ) : base( config, "router-outlet" ) {
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Util.Ui.Angular/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using Microsoft.AspNetCore.Html;
3 | global using Microsoft.AspNetCore.Razor.TagHelpers;
4 |
--------------------------------------------------------------------------------
/src/Util.Ui.NgAlain/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System.Text;
2 | global using System.ComponentModel;
3 | global using Microsoft.AspNetCore.Html;
4 |
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Components/Avatars/Builders/AvatarGroupBuilder.cs:
--------------------------------------------------------------------------------
1 | using Util.Ui.Angular.Builders;
2 | using Util.Ui.Configs;
3 |
4 | namespace Util.Ui.NgZorro.Components.Avatars.Builders;
5 |
6 | ///
7 | /// 头像组标签生成器
8 | ///
9 | public class AvatarGroupBuilder : AngularTagBuilder {
10 | ///
11 | /// 初始化头像组标签生成器
12 | ///
13 | public AvatarGroupBuilder( Config config ) : base( config,"nz-avatar-group" ) {
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Components/Comments/Configs/CommentShareConfig.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Components.Comments.Configs;
2 |
3 | ///
4 | /// 评论共享配置
5 | ///
6 | public class CommentShareConfig {
7 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Components/Forms/Builders/FormTextBuilder.cs:
--------------------------------------------------------------------------------
1 | using Util.Ui.Angular.Builders;
2 | using Util.Ui.Configs;
3 |
4 | namespace Util.Ui.NgZorro.Components.Forms.Builders;
5 |
6 | ///
7 | /// 表单文本标签生成器
8 | ///
9 | public class FormTextBuilder : AngularTagBuilder {
10 | ///
11 | /// 初始化表单文本标签生成器
12 | ///
13 | /// 配置
14 | public FormTextBuilder( Config config ) : base( config,"nz-form-text" ) {
15 | }
16 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Components/Layouts/Builders/ContentBuilder.cs:
--------------------------------------------------------------------------------
1 | using Util.Ui.Angular.Builders;
2 | using Util.Ui.Configs;
3 |
4 | namespace Util.Ui.NgZorro.Components.Layouts.Builders;
5 |
6 | ///
7 | /// 内容区布局标签生成器
8 | ///
9 | public class ContentBuilder : AngularTagBuilder {
10 | ///
11 | /// 初始化内容区布局标签生成器
12 | ///
13 | /// 配置
14 | public ContentBuilder( Config config ) : base( config,"nz-content" ) {
15 | }
16 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Components/Layouts/Builders/FooterBuilder.cs:
--------------------------------------------------------------------------------
1 | using Util.Ui.Angular.Builders;
2 | using Util.Ui.Configs;
3 |
4 | namespace Util.Ui.NgZorro.Components.Layouts.Builders;
5 |
6 | ///
7 | /// 底部布局标签生成器
8 | ///
9 | public class FooterBuilder : AngularTagBuilder {
10 | ///
11 | /// 初始化底部布局标签生成器
12 | ///
13 | /// 配置
14 | public FooterBuilder( Config config ) : base( config,"nz-footer" ) {
15 | }
16 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Components/Layouts/Builders/HeaderBuilder.cs:
--------------------------------------------------------------------------------
1 | using Util.Ui.Angular.Builders;
2 | using Util.Ui.Configs;
3 |
4 | namespace Util.Ui.NgZorro.Components.Layouts.Builders;
5 |
6 | ///
7 | /// 顶部布局标签生成器
8 | ///
9 | public class HeaderBuilder : AngularTagBuilder {
10 | ///
11 | /// 初始化顶部布局标签生成器
12 | ///
13 | /// 配置
14 | public HeaderBuilder( Config config ) : base( config,"nz-header" ) {
15 | }
16 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Components/Layouts/Builders/LayoutBuilder.cs:
--------------------------------------------------------------------------------
1 | using Util.Ui.Angular.Builders;
2 | using Util.Ui.Configs;
3 |
4 | namespace Util.Ui.NgZorro.Components.Layouts.Builders;
5 |
6 | ///
7 | /// 布局标签生成器
8 | ///
9 | public class LayoutBuilder : AngularTagBuilder {
10 | ///
11 | /// 初始化布局标签生成器
12 | ///
13 | /// 配置
14 | public LayoutBuilder( Config config ) : base( config,"nz-layout" ) {
15 | }
16 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Components/Mentions/Configs/MentionShareConfig.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Components.Mentions.Configs;
2 |
3 | ///
4 | /// 提及共享配置
5 | ///
6 | public class MentionShareConfig {
7 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Components/PageHeaders/Configs/PageHeaderShareConfig.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Components.PageHeaders.Configs;
2 |
3 | ///
4 | /// 页头共享配置
5 | ///
6 | public class PageHeaderShareConfig {
7 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Components/Tables/Builders/Contents/ITableColumnContent.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Components.Tables.Builders.Contents;
2 |
3 | ///
4 | /// 表格列内容
5 | ///
6 | public interface ITableColumnContent {
7 | ///
8 | /// 获取显示内容
9 | ///
10 | /// 表格单元格标签生成器
11 | IHtmlContent GetDisplayContent( TableColumnBuilder builder );
12 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Components/Tables/Builders/Contents/ITableColumnContentLoader.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Components.Tables.Builders.Contents;
2 |
3 | ///
4 | /// 表格列内容加载器
5 | ///
6 | public interface ITableColumnContentLoader {
7 | ///
8 | /// 加载内容
9 | ///
10 | /// 表格单元格标签生成器
11 | /// 显示内容
12 | void Load( TableColumnBuilder builder, IHtmlContent displayContent );
13 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Components/Tables/Configs/TableBodyShareConfig.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Components.Tables.Configs;
2 |
3 | ///
4 | /// 表格主体共享配置
5 | ///
6 | public class TableBodyShareConfig {
7 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Components/Tables/Configs/TableHeadShareConfig.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Components.Tables.Configs;
2 |
3 | ///
4 | /// 表格头共享配置
5 | ///
6 | public class TableHeadShareConfig {
7 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/Align.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 垂直对齐方式
5 | ///
6 | public enum Align {
7 | ///
8 | /// 顶部对齐
9 | ///
10 | [Description( "top" )]
11 | Top,
12 | ///
13 | /// 中间对齐
14 | ///
15 | [Description( "middle" )]
16 | Middle,
17 | ///
18 | /// 底部对齐
19 | ///
20 | [Description( "bottom" )]
21 | Bottom
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/AvatarShape.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 头像形状
5 | ///
6 | public enum AvatarShape {
7 | ///
8 | /// 圆形
9 | ///
10 | [Description( "circle" )]
11 | Circle,
12 | ///
13 | /// 方形
14 | ///
15 | [Description( "square" )]
16 | Square
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/AvatarSize.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 头像大小
5 | ///
6 | public enum AvatarSize {
7 | ///
8 | /// 默认
9 | ///
10 | [Description( "default" )]
11 | Default,
12 | ///
13 | /// 小尺寸
14 | ///
15 | [Description( "small" )]
16 | Small,
17 | ///
18 | /// 大尺寸
19 | ///
20 | [Description( "large" )]
21 | Large
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/ButtonShape.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 按钮形状
5 | ///
6 | public enum ButtonShape {
7 | ///
8 | /// 默认
9 | ///
10 | [Description( "" )]
11 | Default,
12 | ///
13 | /// 圆形
14 | ///
15 | [Description( "circle" )]
16 | Circle,
17 | ///
18 | /// 圆角
19 | ///
20 | [Description( "round" )]
21 | Round
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/ButtonSize.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 按钮大小
5 | ///
6 | public enum ButtonSize {
7 | ///
8 | /// 默认
9 | ///
10 | [Description( "default" )]
11 | Default,
12 | ///
13 | /// 小尺寸
14 | ///
15 | [Description( "small" )]
16 | Small,
17 | ///
18 | /// 大尺寸
19 | ///
20 | [Description( "large" )]
21 | Large
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/CalendarMode.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 日历显示模式
5 | ///
6 | public enum CalendarMode {
7 | ///
8 | /// 月
9 | ///
10 | [Description( "month" )]
11 | Month,
12 | ///
13 | /// 年
14 | ///
15 | [Description( "year" )]
16 | Year
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/CardSize.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 卡片大小
5 | ///
6 | public enum CardSize {
7 | ///
8 | /// 默认尺寸
9 | ///
10 | [Description( "default" )]
11 | Default,
12 | ///
13 | /// 小尺寸
14 | ///
15 | [Description( "small" )]
16 | Small
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/CardType.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 卡片类型
5 | ///
6 | public enum CardType {
7 | ///
8 | /// 默认
9 | ///
10 | Default,
11 | ///
12 | /// 内部卡片
13 | ///
14 | Inner
15 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/CarouselEffect.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 走马灯动画效果
5 | ///
6 | public enum CarouselEffect {
7 | ///
8 | /// X轴滚动
9 | ///
10 | [Description( "scrollx" )]
11 | ScrollX,
12 | ///
13 | /// 渐显
14 | ///
15 | [Description( "fade" )]
16 | Fade
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/CascaderExpandTrigger.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 级联选择展开方式
5 | ///
6 | public enum CascaderExpandTrigger {
7 | ///
8 | /// 点击展开
9 | ///
10 | [Description( "click" )]
11 | Click,
12 | ///
13 | /// 鼠标悬停展开
14 | ///
15 | [Description( "hover" )]
16 | Hover
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/CollapseIconPosition.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 折叠图标位置
5 | ///
6 | public enum CollapseIconPosition {
7 | ///
8 | /// 左方
9 | ///
10 | [Description( "left" )]
11 | Left,
12 | ///
13 | /// 右方
14 | ///
15 | [Description( "right" )]
16 | Right
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/DataType.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 数据类型
5 | ///
6 | public enum DataType {
7 | ///
8 | /// 布尔
9 | ///
10 | Bool,
11 | ///
12 | /// 日期
13 | ///
14 | Date,
15 | ///
16 | /// 枚举
17 | ///
18 | Enum
19 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/DescriptionSize.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 描述列表大小
5 | ///
6 | public enum DescriptionSize {
7 | ///
8 | /// 默认
9 | ///
10 | [Description( "default" )]
11 | Default,
12 | ///
13 | /// 中
14 | ///
15 | [Description( "middle" )]
16 | Middle,
17 | ///
18 | /// 小
19 | ///
20 | [Description( "small" )]
21 | Small
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/Direction.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 方向
5 | ///
6 | public enum Direction {
7 | ///
8 | /// 从左到右
9 | ///
10 | [Description( "ltr" )]
11 | Ltr,
12 | ///
13 | /// 从右到左
14 | ///
15 | [Description( "rtl" )]
16 | Rtl
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/DividerOrientation.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 分隔线中间文字方向
5 | ///
6 | public enum DividerOrientation {
7 | ///
8 | /// 中
9 | ///
10 | [Description( "center" )]
11 | Center,
12 | ///
13 | /// 左
14 | ///
15 | [Description( "left" )]
16 | Left,
17 | ///
18 | /// 右
19 | ///
20 | [Description( "right" )]
21 | Right
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/DividerType.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 分隔线类型
5 | ///
6 | public enum DividerType {
7 | ///
8 | /// 水平
9 | ///
10 | [Description( "horizontal" )]
11 | Horizontal,
12 | ///
13 | /// 垂直
14 | ///
15 | [Description( "vertical" )]
16 | Vertical
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/DropdownMenuTrigger.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 下拉菜单触发方式
5 | ///
6 | public enum DropdownMenuTrigger {
7 | ///
8 | /// 移入触发
9 | ///
10 | [Description( "hover" )]
11 | Hover,
12 | ///
13 | /// 点击触发
14 | ///
15 | [Description( "click" )]
16 | Click
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/IconTheme.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 图标主题风格
5 | ///
6 | public enum IconTheme {
7 | ///
8 | /// 实心主题
9 | ///
10 | [Description( "fill" )]
11 | Fill,
12 | ///
13 | /// 描线主题
14 | ///
15 | [Description( "outline" )]
16 | Outline,
17 | ///
18 | /// 双色主题
19 | ///
20 | [Description( "twotone" )]
21 | Twotone
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/InputNumberPrecisionMode.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 数字输入精度模式
5 | ///
6 | public enum InputNumberPrecisionMode {
7 | ///
8 | /// 多余的位数直接截断
9 | ///
10 | [Description( "cut" )]
11 | Cut,
12 | ///
13 | /// 四舍五入
14 | ///
15 | [Description( "toFixed" )]
16 | ToFixed
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/InputSize.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 输入框大小
5 | ///
6 | public enum InputSize {
7 | ///
8 | /// 默认尺寸
9 | ///
10 | [Description( "default" )]
11 | Default,
12 | ///
13 | /// 小尺寸
14 | ///
15 | [Description( "small" )]
16 | Small,
17 | ///
18 | /// 大尺寸
19 | ///
20 | [Description( "large" )]
21 | Large
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/ListItemLayout.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 列表项布局方式
5 | ///
6 | public enum ListItemLayout {
7 | ///
8 | /// 水平排列
9 | ///
10 | [Description( "horizontal" )]
11 | Horizontal,
12 | ///
13 | /// 垂直排列
14 | ///
15 | [Description( "vertical" )]
16 | Vertical
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/ListSize.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 列表大小
5 | ///
6 | public enum ListSize {
7 | ///
8 | /// 默认
9 | ///
10 | [Description( "default" )]
11 | Default,
12 | ///
13 | /// 小尺寸
14 | ///
15 | [Description( "small" )]
16 | Small,
17 | ///
18 | /// 大尺寸
19 | ///
20 | [Description( "large" )]
21 | Large
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/MentionPlacement.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 提及建议框位置
5 | ///
6 | public enum MentionPlacement {
7 | ///
8 | /// 向上展开建议框
9 | ///
10 | [Description( "top" )]
11 | Top,
12 | ///
13 | /// 向下展开建议框
14 | ///
15 | [Description( "bottom" )]
16 | Bottom
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/MenuMode.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 菜单模式
5 | ///
6 | public enum MenuMode {
7 | ///
8 | /// 垂直
9 | ///
10 | [Description( "vertical" )]
11 | Vertical,
12 | ///
13 | /// 水平
14 | ///
15 | [Description( "horizontal" )]
16 | Horizontal,
17 | ///
18 | /// 内嵌
19 | ///
20 | [Description( "inline" )]
21 | Inline
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/MenuTheme.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 菜单主题
5 | ///
6 | public enum MenuTheme {
7 | ///
8 | /// 浅色
9 | ///
10 | [Description( "light" )]
11 | Light,
12 | ///
13 | /// 深色
14 | ///
15 | [Description( "dark" )]
16 | Dark
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/ModalAutofocus.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 对话框自动聚焦
5 | ///
6 | public enum ModalAutofocus {
7 | ///
8 | /// 聚集到确认按钮
9 | ///
10 | [Description( "ok" )]
11 | Ok,
12 | ///
13 | /// 聚集到取消按钮
14 | ///
15 | [Description( "cancel" )]
16 | Cancel,
17 | ///
18 | /// 自动聚焦
19 | ///
20 | [Description( "auto" )]
21 | Auto
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/PaginationSize.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 分页大小
5 | ///
6 | public enum PaginationSize {
7 | ///
8 | /// 默认尺寸
9 | ///
10 | [Description( "default" )]
11 | Default,
12 | ///
13 | /// 小尺寸
14 | ///
15 | [Description( "small" )]
16 | Small
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/PopoverTrigger.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 气泡框触发行为
5 | ///
6 | public enum PopoverTrigger {
7 | ///
8 | /// 点击触发
9 | ///
10 | [Description( "click" )]
11 | Click,
12 | ///
13 | /// 获得焦点触发
14 | ///
15 | [Description( "focus" )]
16 | Focus,
17 | ///
18 | /// 移入触发
19 | ///
20 | [Description( "hover" )]
21 | Hover
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/ProgressStrokeLinecap.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 进度条端点形状
5 | ///
6 | public enum ProgressStrokeLinecap {
7 | ///
8 | /// 圆角边缘
9 | ///
10 | [Description( "round" )]
11 | Round,
12 | ///
13 | /// 方角边缘
14 | ///
15 | [Description( "square" )]
16 | Square
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/ProgressType.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 进度条类型
5 | ///
6 | public enum ProgressType {
7 | ///
8 | /// 进度条
9 | ///
10 | [Description( "line" )]
11 | Line,
12 | ///
13 | /// 进度圈
14 | ///
15 | [Description( "circle" )]
16 | Circle,
17 | ///
18 | /// 仪表盘
19 | ///
20 | [Description( "dashboard" )]
21 | Dashboard
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/RadioStyle.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 单选框风格
5 | ///
6 | public enum RadioStyle {
7 | ///
8 | /// 描边风格
9 | ///
10 | [Description( "outline" )]
11 | Outline,
12 | ///
13 | /// 填色风格
14 | ///
15 | [Description( "solid" )]
16 | Solid
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/RibbonPlacement.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 缎带徽标位置
5 | ///
6 | public enum RibbonPlacement {
7 | ///
8 | /// 起始位置
9 | ///
10 | [Description( "start" )]
11 | Start,
12 | ///
13 | /// 结束位置
14 | ///
15 | [Description( "end" )]
16 | End
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/SelectMode.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 选择模式
5 | ///
6 | public enum SelectMode {
7 | ///
8 | /// 默认
9 | ///
10 | [Description( "default" )]
11 | Default,
12 | ///
13 | /// 多选
14 | ///
15 | [Description( "multiple" )]
16 | Multiple,
17 | ///
18 | /// 标签
19 | ///
20 | [Description( "tags" )]
21 | Tags
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/SiderTheme.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 侧边栏主题颜色
5 | ///
6 | public enum SiderTheme {
7 | ///
8 | /// 浅色
9 | ///
10 | [Description( "light" )]
11 | Light,
12 | ///
13 | /// 深色
14 | ///
15 | [Description( "dark" )]
16 | Dark
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/SkeletonElementShape.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 骨架屏元素形状
5 | ///
6 | public enum SkeletonElementShape {
7 | ///
8 | /// 圆形
9 | ///
10 | [Description( "circle" )]
11 | Circle,
12 | ///
13 | /// 方形
14 | ///
15 | [Description( "square" )]
16 | Square
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/SpaceDirection.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 间距方向
5 | ///
6 | public enum SpaceDirection {
7 | ///
8 | /// 水平方向
9 | ///
10 | [Description( "horizontal" )]
11 | Horizontal,
12 | ///
13 | /// 垂直方向
14 | ///
15 | [Description( "vertical" )]
16 | Vertical
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/SpaceSize.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 间距大小
5 | ///
6 | public enum SpaceSize {
7 | ///
8 | /// 小
9 | ///
10 | [Description( "small" )]
11 | Small,
12 | ///
13 | /// 中
14 | ///
15 | [Description( "middle" )]
16 | Middle,
17 | ///
18 | /// 大
19 | ///
20 | [Description( "large" )]
21 | Large
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/SpinSize.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 加载中组件大小
5 | ///
6 | public enum SpinSize {
7 | ///
8 | /// 默认
9 | ///
10 | [Description( "default" )]
11 | Default,
12 | ///
13 | /// 小尺寸
14 | ///
15 | [Description( "small" )]
16 | Small,
17 | ///
18 | /// 大尺寸
19 | ///
20 | [Description( "large" )]
21 | Large
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/StepsDirection.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 步骤条方向
5 | ///
6 | public enum StepsDirection {
7 | ///
8 | /// 水平方向
9 | ///
10 | [Description( "horizontal" )]
11 | Horizontal,
12 | ///
13 | /// 垂直方向
14 | ///
15 | [Description( "vertical" )]
16 | Vertical
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/StepsLabelPlacement.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 步骤条标签位置
5 | ///
6 | public enum StepsLabelPlacement {
7 | ///
8 | /// 水平放图标右侧
9 | ///
10 | [Description( "horizontal" )]
11 | Horizontal,
12 | ///
13 | /// 垂直放图标下方
14 | ///
15 | [Description( "vertical" )]
16 | Vertical
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/StepsSize.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 步骤条大小
5 | ///
6 | public enum StepsSize {
7 | ///
8 | /// 默认尺寸
9 | ///
10 | [Description( "default" )]
11 | Default,
12 | ///
13 | /// 小尺寸
14 | ///
15 | [Description( "small" )]
16 | Small
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/StepsType.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 步骤条类型
5 | ///
6 | public enum StepsType {
7 | ///
8 | /// 默认类型
9 | ///
10 | [Description( "default" )]
11 | Default,
12 | ///
13 | /// 导航类型
14 | ///
15 | [Description( "navigation" )]
16 | Navigation
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/SwitchSize.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 开关大小
5 | ///
6 | public enum SwitchSize {
7 | ///
8 | /// 默认尺寸
9 | ///
10 | [Description( "default" )]
11 | Default,
12 | ///
13 | /// 小尺寸
14 | ///
15 | [Description( "small" )]
16 | Small
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/TabSize.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 标签大小
5 | ///
6 | public enum TabSize {
7 | ///
8 | /// 默认
9 | ///
10 | [Description( "default" )]
11 | Default,
12 | ///
13 | /// 小尺寸
14 | ///
15 | [Description( "small" )]
16 | Small,
17 | ///
18 | /// 大尺寸
19 | ///
20 | [Description( "large" )]
21 | Large
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/TabType.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 标签类型
5 | ///
6 | public enum TabType {
7 | ///
8 | /// 常规标签
9 | ///
10 | [Description( "line" )]
11 | Line,
12 | ///
13 | /// 卡片式标签
14 | ///
15 | [Description( "card" )]
16 | Card,
17 | ///
18 | /// 可关闭的卡片式标签
19 | ///
20 | [Description( "editable-card" )]
21 | EditableCard
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/TableColumnType.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 表格列类型
5 | ///
6 | public enum TableColumnType {
7 | ///
8 | /// 布尔
9 | ///
10 | Bool,
11 | ///
12 | /// 日期
13 | ///
14 | Date,
15 | ///
16 | /// 枚举
17 | ///
18 | Enum
19 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/TableLayout.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 表格布局
5 | ///
6 | public enum TableLayout {
7 | ///
8 | /// 自动布局
9 | ///
10 | [Description( "auto" )]
11 | Auto,
12 | ///
13 | /// 固定布局
14 | ///
15 | [Description( "fixed" )]
16 | Fixed
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/TablePaginationSize.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 表格分页大小
5 | ///
6 | public enum TablePaginationSize {
7 | ///
8 | /// 默认尺寸
9 | ///
10 | [Description( "default" )]
11 | Default,
12 | ///
13 | /// 小尺寸
14 | ///
15 | [Description( "small" )]
16 | Small
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/TableSize.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 表格大小
5 | ///
6 | public enum TableSize {
7 | ///
8 | /// 默认尺寸
9 | ///
10 | [Description( "default" )]
11 | Default,
12 | ///
13 | /// 中等尺寸
14 | ///
15 | [Description( "middle" )]
16 | Middle,
17 | ///
18 | /// 小尺寸
19 | ///
20 | [Description( "small" )]
21 | Small
22 | }
--------------------------------------------------------------------------------
/src/Util.Ui.NgZorro/Enums/TimelineItemPosition.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.NgZorro.Enums;
2 |
3 | ///
4 | /// 时间轴节点位置
5 | ///
6 | public enum TimelineItemPosition {
7 | ///
8 | /// 左侧显示
9 | ///
10 | [Description( "left" )]
11 | Left,
12 | ///
13 | /// 右侧显示
14 | ///
15 | [Description( "right" )]
16 | Right
17 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Builders/ArticleBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.Builders;
2 |
3 | ///
4 | /// article标签生成器
5 | ///
6 | public class ArticleBuilder : TagBuilder {
7 | ///
8 | /// 初始化article标签生成器
9 | ///
10 | public ArticleBuilder() : base( "article" ) {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Builders/CodeBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.Builders;
2 |
3 | ///
4 | /// code标签生成器
5 | ///
6 | public class CodeBuilder : TagBuilder {
7 | ///
8 | /// 初始化code标签生成器
9 | ///
10 | public CodeBuilder() : base( "code" ) {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Builders/DelBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.Builders;
2 |
3 | ///
4 | /// del标签生成器
5 | ///
6 | public class DelBuilder : TagBuilder {
7 | ///
8 | /// 初始化del标签生成器
9 | ///
10 | public DelBuilder() : base( "del" ) {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Builders/DivBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.Builders;
2 |
3 | ///
4 | /// div生成器
5 | ///
6 | public class DivBuilder : TagBuilder {
7 | ///
8 | /// 初始化div生成器
9 | ///
10 | public DivBuilder() : base( "div" ) {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Builders/ItalicBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.Builders;
2 |
3 | ///
4 | /// i标签生成器
5 | ///
6 | public class ItalicBuilder : TagBuilder {
7 | ///
8 | /// 初始化i标签生成器
9 | ///
10 | public ItalicBuilder() : base( "i" ) {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Builders/KbdBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.Builders;
2 |
3 | ///
4 | /// kbd标签生成器
5 | ///
6 | public class KbdBuilder : TagBuilder {
7 | ///
8 | /// 初始化kbd标签生成器
9 | ///
10 | public KbdBuilder() : base( "kbd" ) {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Builders/LiBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.Builders;
2 |
3 | ///
4 | /// li标签生成器
5 | ///
6 | public class LiBuilder : TagBuilder {
7 | ///
8 | /// 初始化li标签生成器
9 | ///
10 | public LiBuilder() : base( "li" ) {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Builders/MarkBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.Builders;
2 |
3 | ///
4 | /// mark标签生成器
5 | ///
6 | public class MarkBuilder : TagBuilder {
7 | ///
8 | /// 初始化mark标签生成器
9 | ///
10 | public MarkBuilder() : base( "mark" ) {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Builders/PBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.Builders;
2 |
3 | ///
4 | /// p标签生成器
5 | ///
6 | public class PBuilder : TagBuilder {
7 | ///
8 | /// 初始化p标签生成器
9 | ///
10 | public PBuilder() : base( "p" ) {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Builders/SpanBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.Builders;
2 |
3 | ///
4 | /// span生成器
5 | ///
6 | public class SpanBuilder : TagBuilder {
7 | ///
8 | /// 初始化span生成器
9 | ///
10 | public SpanBuilder() : base( "span" ) {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Builders/StrongBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.Builders;
2 |
3 | ///
4 | /// strong标签生成器
5 | ///
6 | public class StrongBuilder : TagBuilder {
7 | ///
8 | /// 初始化strong标签生成器
9 | ///
10 | public StrongBuilder() : base( "strong" ) {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Builders/UBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.Builders;
2 |
3 | ///
4 | /// u标签生成器
5 | ///
6 | public class UBuilder : TagBuilder {
7 | ///
8 | /// 初始化u标签生成器
9 | ///
10 | public UBuilder() : base( "u" ) {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Builders/UlBuilder.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.Builders;
2 |
3 | ///
4 | /// ul标签生成器
5 | ///
6 | public class UlBuilder : TagBuilder {
7 | ///
8 | /// 初始化ul标签生成器
9 | ///
10 | public UlBuilder() : base( "ul" ) {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Expressions/IExpressionLoader.cs:
--------------------------------------------------------------------------------
1 | using Util.Ui.Configs;
2 |
3 | namespace Util.Ui.Expressions;
4 |
5 | ///
6 | /// 表达式加载器
7 | ///
8 | public interface IExpressionLoader {
9 | ///
10 | /// 加载模型表达式配置
11 | ///
12 | /// 配置
13 | /// 模型表达式属性名,默认值为for
14 | void Load( Config config, string expressionPropertyName = "for" );
15 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Expressions/IExpressionResolver.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.Expressions;
2 |
3 | ///
4 | /// 模型表达式解析器
5 | ///
6 | public interface IExpressionResolver {
7 | ///
8 | /// 解析
9 | ///
10 | /// 模型表达式
11 | ModelExpressionInfo Resolve( ModelExpression expression );
12 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Razor/RazorOptions.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.Razor;
2 |
3 | ///
4 | /// Razor配置
5 | ///
6 | public class RazorOptions {
7 | ///
8 | /// 是否在Razor页面运行时自动生成html文件
9 | ///
10 | public bool IsGenerateHtml { get; set; }
11 | }
--------------------------------------------------------------------------------
/src/Util.Ui/Renders/IRender.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Ui.Renders;
2 |
3 | ///
4 | /// 渲染器
5 | ///
6 | public interface IRender : IHtmlContent {
7 | ///
8 | /// 复制副本
9 | ///
10 | IHtmlContent Clone();
11 | }
--------------------------------------------------------------------------------
/src/Util.Validation/IValidation.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Validation;
2 |
3 | ///
4 | /// 验证操作
5 | ///
6 | public interface IValidation {
7 | ///
8 | /// 验证
9 | ///
10 | ValidationResultCollection Validate();
11 | }
--------------------------------------------------------------------------------
/src/Util.Validation/IValidationHandler.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Validation;
2 |
3 | ///
4 | /// 验证处理器
5 | ///
6 | public interface IValidationHandler {
7 | ///
8 | /// 处理验证错误
9 | ///
10 | /// 验证结果集合
11 | void Handle( ValidationResultCollection results );
12 | }
--------------------------------------------------------------------------------
/src/Util.Validation/IValidationRule.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Validation;
2 |
3 | ///
4 | /// 验证规则
5 | ///
6 | public interface IValidationRule {
7 | ///
8 | /// 验证
9 | ///
10 | ValidationResult Validate();
11 | }
--------------------------------------------------------------------------------
/src/Util.Validation/NothingHandler.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Validation;
2 |
3 | ///
4 | /// 验证失败,不做任何处理
5 | ///
6 | public class NothingHandler : IValidationHandler {
7 | ///
8 | /// 处理验证错误
9 | ///
10 | /// 验证结果集合
11 | public void Handle( ValidationResultCollection results ) {
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Util.Validation/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.Globalization;
6 | global using System.ComponentModel.DataAnnotations;
--------------------------------------------------------------------------------
/src/Util.Validation/Validators/ValidatePattern.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Validation.Validators;
2 |
3 | ///
4 | /// 验证模式
5 | ///
6 | public static class ValidatePattern {
7 | ///
8 | /// 手机号验证正则表达式
9 | ///
10 | public static string MobilePhonePattern = "^1[0-9]{10}$";
11 | ///
12 | /// 身份证验证正则表达式
13 | ///
14 | public static string IdCardPattern = @"(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)";
15 | }
--------------------------------------------------------------------------------
/test/Util.Aop.AspectCore.Tests/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Aop.AspectCore.Tests/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Application.EntityFrameworkCore.MySql.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Application.EntityFrameworkCore.MySql.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Application.EntityFrameworkCore.MySql.Tests.Integration/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft": "Trace"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "server=127.0.0.1;user=root;password=admin;database=Util.Application.EntityFrameworkCore.Test;port=3306;charset=utf8"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Application.EntityFrameworkCore.MySql.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Error",
5 | "Microsoft": "Error"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "server=mysql.common;user=root;password=admin;database=Util.Application.EntityFrameworkCore.Test;port=3306;charset=utf8"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Application.EntityFrameworkCore.PostgreSql.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Application.EntityFrameworkCore.PostgreSql.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Application.EntityFrameworkCore.PostgreSql.Tests.Integration/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft": "Trace"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "server=127.0.0.1;User Id=admin;password=admin;database=Util.Application.EntityFrameworkCore.Test"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Application.EntityFrameworkCore.PostgreSql.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Error",
5 | "Microsoft": "Error"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "server=postgresql.common;User Id=admin;password=admin;database=Util.Application.EntityFrameworkCore.Test"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Application.EntityFrameworkCore.SqlServer.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Application.EntityFrameworkCore.SqlServer.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Application.EntityFrameworkCore.SqlServer.Tests.Integration/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft": "Trace"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "Server=.\\sql2019;Database=Util.Application.EntityFrameworkCore.Test;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/test/Util.Application.EntityFrameworkCore.SqlServer.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Error",
5 | "Microsoft": "Error"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "Server=192.168.31.123\\sql2019;Database=Util.Application.EntityFrameworkCore.Test;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Application.Tests/Dtos/TreeDto.cs:
--------------------------------------------------------------------------------
1 | using Util.Applications.Trees;
2 |
3 | namespace Util.Applications.Dtos {
4 | ///
5 | /// 树形参数
6 | ///
7 | public class TreeDto : TreeDtoBase {
8 |
9 | public string Text { get; set; }
10 |
11 | public override string GetText() {
12 | return Text;
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/test/Util.Application.Tests/Repositories/ICustomerRepository.cs:
--------------------------------------------------------------------------------
1 | using Util.Applications.Models;
2 | using Util.Domain.Repositories;
3 |
4 | namespace Util.Applications.Repositories {
5 | ///
6 | /// 客户仓储
7 | ///
8 | public interface ICustomerRepository : IRepository {
9 | }
10 | }
--------------------------------------------------------------------------------
/test/Util.Application.WebApi.MySql.Tests.Integration/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "Util.Application.WebApi.MySql.Tests.Integration": {
4 | "commandName": "Project",
5 | "launchBrowser": true,
6 | "environmentVariables": {
7 | "ASPNETCORE_ENVIRONMENT": "Development"
8 | },
9 | "applicationUrl": "https://localhost:65194;http://localhost:65195"
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/test/Util.Application.WebApi.MySql.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Application.WebApi.MySql.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Application.WebApi.MySql.Tests.Integration/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft": "Trace"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "server=127.0.0.1;user=root;password=admin;database=Util.WebApi.Test;port=3306;charset=utf8"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Application.WebApi.MySql.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Error",
5 | "Microsoft": "Error"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "server=mysql.common;user=root;password=admin;database=Util.WebApi.Test;port=3306;charset=utf8"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Application.WebApi.PostgreSql.Tests.Integration/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "Util.Application.WebApi.PostgreSql.Tests.Integration": {
4 | "commandName": "Project",
5 | "launchBrowser": true,
6 | "environmentVariables": {
7 | "ASPNETCORE_ENVIRONMENT": "Development"
8 | },
9 | "applicationUrl": "https://localhost:3603;http://localhost:3604"
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/test/Util.Application.WebApi.PostgreSql.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Application.WebApi.PostgreSql.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Application.WebApi.PostgreSql.Tests.Integration/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft": "Trace"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "server=127.0.0.1;User Id=admin;password=admin;database=Util.WebApi.Test"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Application.WebApi.PostgreSql.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Error",
5 | "Microsoft": "Error"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "server=postgresql.common;User Id=admin;password=admin;database=Util.WebApi.Test"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Application.WebApi.SqlServer.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Application.WebApi.SqlServer.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Application.WebApi.SqlServer.Tests.Integration/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft": "Trace"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "Server=.\\sql2019;Database=Util.WebApi.Test;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/test/Util.Application.WebApi.SqlServer.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Error",
5 | "Microsoft": "Error"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "Server=192.168.31.123\\sql2019;Database=Util.WebApi.Test;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Application.WebApi.Tests.Integration/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "Util.Application.WebApi.Tests.Integration": {
4 | "commandName": "Project",
5 | "launchBrowser": true,
6 | "environmentVariables": {
7 | "ASPNETCORE_ENVIRONMENT": "Development"
8 | },
9 | "applicationUrl": "https://localhost:17185;http://localhost:17186"
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/test/Util.Application.WebApi.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Application.WebApi.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Delete.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Delete.cs
--------------------------------------------------------------------------------
/test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Get.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Get.cs
--------------------------------------------------------------------------------
/test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Post.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Post.cs
--------------------------------------------------------------------------------
/test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Put.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.AspNetCore.Tests.Integration/Http/HttpClientServiceTest.Put.cs
--------------------------------------------------------------------------------
/test/Util.AspNetCore.Tests.Integration/Samples/Certificate/apiclient_cert.p12:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.AspNetCore.Tests.Integration/Samples/Certificate/apiclient_cert.p12
--------------------------------------------------------------------------------
/test/Util.AspNetCore.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.AspNetCore.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Caching.EasyCaching.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Caching.EasyCaching.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Caching.EasyCaching.Tests.Integration/Tests/CacheManagerTest.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Caching.EasyCaching.Tests.Integration/Tests/CacheManagerTest.cs
--------------------------------------------------------------------------------
/test/Util.Caching.EasyCaching.Tests.Integration/Tests/MemoryCacheManagerTest.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Caching.EasyCaching.Tests.Integration/Tests/MemoryCacheManagerTest.cs
--------------------------------------------------------------------------------
/test/Util.Caching.EasyCaching.Tests.Integration/Tests/RedisCacheManagerTest.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Caching.EasyCaching.Tests.Integration/Tests/RedisCacheManagerTest.cs
--------------------------------------------------------------------------------
/test/Util.Core.Tests.Integration/Samples/FileSample.txt:
--------------------------------------------------------------------------------
1 | test
--------------------------------------------------------------------------------
/test/Util.Core.Tests.Integration/Samples/TestOptions.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Tests.Samples;
2 |
3 | public class TestOptions {
4 | public int Code { get; set; }
5 | public string Name { get; set; }
6 | }
--------------------------------------------------------------------------------
/test/Util.Core.Tests.Integration/Samples/version.xml:
--------------------------------------------------------------------------------
1 |
2 | 1
3 | 2
4 | 3
5 |
--------------------------------------------------------------------------------
/test/Util.Core.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Test": {
3 | "Code": 1,
4 | "Name": "a"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Exists.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Exists.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Procedure.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Procedure.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Query.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Query.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Scalar.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Scalar.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Single.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.Single.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.MySql.Tests.Integration/SqlQuery/MySqlQueryTest.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.MySql.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.MySql.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.MySql.Tests.Integration/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft": "Trace"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "server=127.0.0.1;user=root;password=admin;database=Util.Data.Dapper.Test;port=3306;charset=utf8"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.MySql.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Error",
5 | "Microsoft": "Error"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "server=mysql.common;user=root;password=admin;database=Util.Data.Dapper.Test;port=3306;charset=utf8"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Exists.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Exists.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Procedure.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Procedure.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Query.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Query.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Scalar.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Scalar.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Single.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.Single.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.PostgreSql.Tests.Integration/SqlQuery/PostgreSqlQueryTest.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.PostgreSql.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.PostgreSql.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.PostgreSql.Tests.Integration/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft": "Trace"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "server=127.0.0.1;User Id=admin;password=admin;database=Util.Data.Dapper.Test"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.PostgreSql.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Error",
5 | "Microsoft": "Error"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "server=postgresql.common;User Id=admin;password=admin;database=Util.Data.Dapper.Test"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Exists.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Exists.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Procedure.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Procedure.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Query.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Query.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Scalar.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Scalar.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Single.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.Single.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.SqlServer.Tests.Integration/SqlQuery/SqlServerSqlQueryTest.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.SqlServer.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.Dapper.SqlServer.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.SqlServer.Tests.Integration/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft": "Trace"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "Server=.\\sql2019;Database=Util.Data.Dapper.Test;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Data.Dapper.SqlServer.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Error",
5 | "Microsoft": "Error"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "Server=192.168.31.123\\sql2019;Database=Util.Data.Dapper.Test;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Data.EntityFrameworkCore.MySql.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.EntityFrameworkCore.MySql.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Data.EntityFrameworkCore.MySql.Tests.Integration/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft": "Trace"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "server=127.0.0.1;user=root;password=admin;database=Util.Data.EntityFrameworkCore.Test;port=3306;charset=utf8"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Data.EntityFrameworkCore.MySql.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Error",
5 | "Microsoft": "Error"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "server=mysql.common;user=root;password=admin;database=Util.Data.EntityFrameworkCore.Test;port=3306;charset=utf8"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Data.EntityFrameworkCore.Oracle.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.EntityFrameworkCore.Oracle.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Data.EntityFrameworkCore.Oracle.Tests.Integration/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft": "Trace"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "User Id=admin;Password=admin;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)));"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/test/Util.Data.EntityFrameworkCore.Oracle.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Error",
5 | "Microsoft": "Error"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "User Id=TEST;Password=123456;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=gateway.docker.internal)(PORT=11521)))(CONNECT_DATA=(SERVICE_NAME=xe)))"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Data.EntityFrameworkCore.PostgreSql.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.EntityFrameworkCore.PostgreSql.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Data.EntityFrameworkCore.PostgreSql.Tests.Integration/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft": "Trace"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "server=127.0.0.1;User Id=admin;password=admin;database=Util.Data.EntityFrameworkCore.Test"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Data.EntityFrameworkCore.PostgreSql.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Error",
5 | "Microsoft": "Error"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "server=postgresql.common;User Id=admin;password=admin;database=Util.Data.EntityFrameworkCore.Test"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Data.EntityFrameworkCore.SqlServer.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.EntityFrameworkCore.SqlServer.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Data.EntityFrameworkCore.SqlServer.Tests.Integration/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Information"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "Server=.\\sql2019;Database=Util.Data.EntityFrameworkCore.Test;uid=sa;pwd=sa;TrustServerCertificate=true"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Data.EntityFrameworkCore.SqlServer.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Error",
5 | "Microsoft": "Error"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "Server=192.168.31.123\\sql2019;Database=Util.Data.EntityFrameworkCore.Test;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Data.EntityFrameworkCore.Sqlite.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Data.EntityFrameworkCore.Sqlite.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Data.EntityFrameworkCore.Sqlite.Tests.Integration/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft": "Trace"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "Filename=Util.Data.EntityFrameworkCore.Test.db"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Data.EntityFrameworkCore.Sqlite.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Error",
5 | "Microsoft": "Error"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "Filename=Util.Data.EntityFrameworkCore.Test.db"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Data.Sql.Tests/Samples/TestParameter.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Data.Sql.Tests.Samples;
2 |
3 | ///
4 | /// 测试参数
5 | ///
6 | public class TestParameter {
7 | ///
8 | /// 编码
9 | ///
10 | public string Code { get; set; }
11 | }
--------------------------------------------------------------------------------
/test/Util.Domain.Tests/Compare/ChangeValueTest.cs:
--------------------------------------------------------------------------------
1 | using Util.Domain.Compare;
2 | using Xunit;
3 |
4 | namespace Util.Domain.Tests.Compare;
5 |
6 | ///
7 | /// 变更值测试
8 | ///
9 | public class ChangeValueTest {
10 | ///
11 | /// 测试变更值输出结果
12 | ///
13 | [Fact]
14 | public void TestToString() {
15 | var result = new ChangeValue( "a", "b", "1", "2" ).ToString();
16 | Assert.Equal( "a(b),原始值:1,新值:2", result );
17 | }
18 | }
--------------------------------------------------------------------------------
/test/Util.Domain.Tests/Samples/EnumSample.cs:
--------------------------------------------------------------------------------
1 | using System.ComponentModel;
2 |
3 | namespace Util.Domain.Tests.Samples;
4 |
5 | ///
6 | /// 枚举测试样例
7 | ///
8 | public enum EnumSample {
9 | A = 1,
10 | [Description( "B2" )]
11 | B = 2,
12 | [Description( "C3" )]
13 | C = 3,
14 | [Description( "D4" )]
15 | D = 4,
16 | [Description( "E5" )]
17 | E = 5
18 | }
--------------------------------------------------------------------------------
/test/Util.Events.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Events.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.FileStorage.Minio.Tests.Integration/Resources/a.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.FileStorage.Minio.Tests.Integration/Resources/a.jpg
--------------------------------------------------------------------------------
/test/Util.FileStorage.Minio.Tests.Integration/Resources/b.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.FileStorage.Minio.Tests.Integration/Resources/b.jpg
--------------------------------------------------------------------------------
/test/Util.FileStorage.Minio.Tests.Integration/Samples/TestSession.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Util.Sessions;
3 |
4 | namespace Util.FileStorage.Minio.Samples;
5 |
6 | ///
7 | /// 测试用户会话
8 | ///
9 | public class TestSession : ISession {
10 | public static Guid TestUserId = new ( "2af5e99e-391c-451b-9112-f7a3eb9b0a55" );
11 | public bool IsAuthenticated => true;
12 | public string UserId => TestUserId.ToString();
13 | }
--------------------------------------------------------------------------------
/test/Util.FileStorage.Minio.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.FileStorage.Minio.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Generators.Razor.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Generators.Razor.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Generators.Razor.Tests.Integration/Templates/Test1/Parts/Test.Part.cshtml:
--------------------------------------------------------------------------------
1 | @model Util.Generators.Contexts.EntityContext
2 |
3 | @Model.Name,Test.Part
--------------------------------------------------------------------------------
/test/Util.Generators.Razor.Tests.Integration/Templates/Test1/Template.cshtml:
--------------------------------------------------------------------------------
1 | @model Util.Generators.Contexts.EntityContext
2 | @{
3 | Model.Output.Extension = ".cs";
4 | }
5 | @Model.Name,World
--------------------------------------------------------------------------------
/test/Util.Generators.Razor.Tests.Integration/Templates/Test1/Test2/Test.cshtml:
--------------------------------------------------------------------------------
1 | @using Util.Generators
2 | @model Util.Generators.Contexts.EntityContext
3 |
4 | @{
5 | Model.Output.Extension = ".ts";
6 | Model.Output.NamingConvention = NamingConvention.CamelCase;
7 | }
8 |
9 | @Model.Name,Test2
--------------------------------------------------------------------------------
/test/Util.Generators.Razor.Tests.Integration/Templates/Test1/Test2/TestPart.cshtml:
--------------------------------------------------------------------------------
1 | @model Util.Generators.Contexts.EntityContext
2 |
3 | @Model.Name,TestPart
--------------------------------------------------------------------------------
/test/Util.Generators.Tests/Samples/TestExtend.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Generators.Tests.Samples {
2 | ///
3 | /// 测试扩展
4 | ///
5 | public class TestExtend {
6 | ///
7 | /// 标识
8 | ///
9 | public string Id { get; set; }
10 | ///
11 | /// 名称
12 | ///
13 | public string Name { get; set; }
14 |
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/test/Util.Images.Avatar.Tests.Integration/Fonts/STZHONGS.TTF:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Images.Avatar.Tests.Integration/Fonts/STZHONGS.TTF
--------------------------------------------------------------------------------
/test/Util.Images.Avatar.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Images.Avatar.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Images.ImageSharp.Tests.Integration/Fonts/STZHONGS.TTF:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Images.ImageSharp.Tests.Integration/Fonts/STZHONGS.TTF
--------------------------------------------------------------------------------
/test/Util.Images.ImageSharp.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Images.ImageSharp.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Localization.Resources/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Extensions.Localization;
2 | [assembly: ResourceLocation( "Resources2" )]
--------------------------------------------------------------------------------
/test/Util.Localization.Resources/ResourceTypes/Resource101.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Localization.Resources.ResourceTypes;
2 |
3 | ///
4 | /// 资源类型101
5 | ///
6 | public class Resource101 {
7 | }
--------------------------------------------------------------------------------
/test/Util.Localization.Resources/ResourceTypes/Resource102.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Localization.Resources.ResourceTypes;
2 |
3 | ///
4 | /// 资源类型102
5 | ///
6 | public class Resource102 {
7 | }
--------------------------------------------------------------------------------
/test/Util.Localization.Resources/Resources2/ResourceTypes.Resource101.en-US.json:
--------------------------------------------------------------------------------
1 | {
2 | "Hello": "hi"
3 | }
4 |
--------------------------------------------------------------------------------
/test/Util.Localization.Resources/Resources2/ResourceTypes.Resource101.zh-CN.json:
--------------------------------------------------------------------------------
1 | {
2 | "Hello": "哈楼"
3 | }
4 |
--------------------------------------------------------------------------------
/test/Util.Localization.Resources/Resources2/ResourceTypes/Resource102.zh-CN.json:
--------------------------------------------------------------------------------
1 | {
2 | "Hello": "哈罗"
3 | }
4 |
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Extensions.Localization;
2 | [assembly: RootNamespace( "Util.Localization" )]
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "Util.Localization.Tests.Integration": {
4 | "commandName": "Project",
5 | "launchBrowser": true,
6 | "environmentVariables": {
7 | "ASPNETCORE_ENVIRONMENT": "Development"
8 | },
9 | "applicationUrl": "https://localhost:54279;http://localhost:54280"
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/ResourceTypes/Resource1.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Localization.ResourceTypes;
2 |
3 | ///
4 | /// 资源类型1
5 | ///
6 | public class Resource1 {
7 | }
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/ResourceTypes/Resource2.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Localization.ResourceTypes;
2 |
3 | ///
4 | /// 资源类型2
5 | ///
6 | public class Resource2 {
7 | }
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/ResourceTypes/Resource3.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Localization.ResourceTypes;
2 |
3 | ///
4 | /// 资源类型3
5 | ///
6 | public class Resource3 {
7 | }
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/ResourceTypes/Resource4.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Localization.ResourceTypes;
2 |
3 | ///
4 | /// 资源类型4
5 | ///
6 | public class Resource4 {
7 |
8 | ///
9 | /// 资源类型41 - 测试内部类
10 | ///
11 | public class Resource41 {
12 | }
13 |
14 | }
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/ResourceTypes/Resource5.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Localization.ResourceTypes;
2 |
3 | ///
4 | /// 资源类型5
5 | ///
6 | public class Resource5 {
7 | }
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/ResourceTypes/Resource6.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Localization.ResourceTypes;
2 |
3 | ///
4 | /// 资源类型6
5 | ///
6 | public class Resource6 {
7 | }
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/Resources/ResourceTypes.Resource1.en-US.json:
--------------------------------------------------------------------------------
1 | {
2 | "Hello": "hi"
3 | }
4 |
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/Resources/ResourceTypes.Resource1.zh-CN.json:
--------------------------------------------------------------------------------
1 | {
2 | "Hello": "哈楼"
3 | }
4 |
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource2.en-US.json:
--------------------------------------------------------------------------------
1 | {
2 | "Hello": "hi"
3 | }
4 |
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource2.zh-CN.json:
--------------------------------------------------------------------------------
1 | {
2 | "Hello": "哈楼",
3 | "World": "世界",
4 | "Hello,{0},{1},World": "哈楼,{0},{1},世界"
5 | }
6 |
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource2.zh-Hans.json:
--------------------------------------------------------------------------------
1 | {
2 | "Hello": "哈哈",
3 | "World": "世界"
4 | }
5 |
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource2.zh.json:
--------------------------------------------------------------------------------
1 | {
2 | "Hello": "嘿嘿",
3 | "World": "世界"
4 | }
5 |
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource3.zh-Hans.json:
--------------------------------------------------------------------------------
1 | {
2 | "Hello": "哈哈",
3 | "World": "世界"
4 | }
5 |
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource4.Resource41.zh-CN.json:
--------------------------------------------------------------------------------
1 | {
2 | "Hello": "嘻嘻",
3 | "World": "世界"
4 | }
5 |
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource4.zh.json:
--------------------------------------------------------------------------------
1 | {
2 | "Hello": "嘿嘿",
3 | "World": "世界"
4 | }
5 |
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource5.zh-CN.json:
--------------------------------------------------------------------------------
1 | {
2 | "Hello": "哈楼",
3 | "World": "世界"
4 | }
5 |
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource5.zh-Hans.json:
--------------------------------------------------------------------------------
1 | {
2 | "Hello2": "哈楼2",
3 | "World2": "世界2"
4 | }
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/Resources/ResourceTypes/Resource5.zh.json:
--------------------------------------------------------------------------------
1 | {
2 | "Hello3": "哈楼3",
3 | "World3": "世界3"
4 | }
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/Resources/zh.json:
--------------------------------------------------------------------------------
1 | {
2 | "Hello": "呜呜",
3 | "World": "世界"
4 | }
5 |
--------------------------------------------------------------------------------
/test/Util.Localization.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Localization.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Logging.Serilog.Exceptionless.Tests.Integration/LogTest.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Serilog.Exceptionless.Tests.Integration/LogTest.cs
--------------------------------------------------------------------------------
/test/Util.Logging.Serilog.Exceptionless.Tests.Integration/Samples/Product.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Logging.Tests.Samples;
2 |
3 | ///
4 | /// 产品
5 | ///
6 | public class Product {
7 | ///
8 | /// 产品编码
9 | ///
10 | public string Code { get; set; }
11 | ///
12 | /// 产品名称
13 | ///
14 | public string Name { get; set; }
15 | ///
16 | /// 价格
17 | ///
18 | public decimal Price { get; set; }
19 | }
--------------------------------------------------------------------------------
/test/Util.Logging.Serilog.Exceptionless.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Serilog.Exceptionless.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Logging.Serilog.Exceptionless.Tests.Integration/appsettings.Production.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft": "Warning"
6 | }
7 | },
8 | "Exceptionless": {
9 | "ApiKey": "0yYDCrbsgdGZX7PImygwk06KMTf5dNI5opsrKA6x",
10 | "ServerUrl": "http://exceptionless.common/",
11 | "QueueMaxAttempts": 1
12 | }
13 | }
--------------------------------------------------------------------------------
/test/Util.Logging.Serilog.Exceptionless.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft": "Warning"
6 | }
7 | },
8 | "Exceptionless": {
9 | "ApiKey": "0ntTeU4QFBKCm1FIM9sjr4NKaXkXTEBeRKch5tL9",
10 | "ServerUrl": "http://127.0.0.1:8095",
11 | "QueueMaxAttempts": 1
12 | }
13 | }
--------------------------------------------------------------------------------
/test/Util.Logging.Serilog.Tests.Integration/LogTest.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Serilog.Tests.Integration/LogTest.cs
--------------------------------------------------------------------------------
/test/Util.Logging.Serilog.Tests.Integration/Samples/Product.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Logging.Tests.Samples;
2 |
3 | ///
4 | /// 产品
5 | ///
6 | public class Product {
7 | ///
8 | /// 产品编码
9 | ///
10 | public string Code { get; set; }
11 | ///
12 | /// 产品名称
13 | ///
14 | public string Name { get; set; }
15 | ///
16 | /// 价格
17 | ///
18 | public decimal Price { get; set; }
19 | }
--------------------------------------------------------------------------------
/test/Util.Logging.Serilog.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Serilog.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Logging.Tests/LogTest.Critical .cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Tests/LogTest.Critical .cs
--------------------------------------------------------------------------------
/test/Util.Logging.Tests/LogTest.Debug .cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Tests/LogTest.Debug .cs
--------------------------------------------------------------------------------
/test/Util.Logging.Tests/LogTest.Error .cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Tests/LogTest.Error .cs
--------------------------------------------------------------------------------
/test/Util.Logging.Tests/LogTest.Information .cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Tests/LogTest.Information .cs
--------------------------------------------------------------------------------
/test/Util.Logging.Tests/LogTest.Trace .cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Tests/LogTest.Trace .cs
--------------------------------------------------------------------------------
/test/Util.Logging.Tests/LogTest.Warning .cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Tests/LogTest.Warning .cs
--------------------------------------------------------------------------------
/test/Util.Logging.Tests/LogTest.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Logging.Tests/LogTest.cs
--------------------------------------------------------------------------------
/test/Util.Logging.Tests/Samples/Product.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Logging.Tests.Samples;
2 |
3 | ///
4 | /// 产品
5 | ///
6 | public class Product {
7 | ///
8 | /// 产品编码
9 | ///
10 | public string Code { get; set; }
11 | ///
12 | /// 产品名称
13 | ///
14 | public string Name { get; set; }
15 | ///
16 | /// 价格
17 | ///
18 | public int Price { get; set; }
19 | }
--------------------------------------------------------------------------------
/test/Util.Microservices.Dapr.Tests.Integration/Fixtures/GlobalCollection.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Microservices.Dapr.Tests.Fixtures;
2 |
3 | ///
4 | /// 全局测试集合
5 | ///
6 | [CollectionDefinition( "Global" )]
7 | public class GlobalCollection : ICollectionFixture {
8 | }
--------------------------------------------------------------------------------
/test/Util.Microservices.Dapr.Tests.Integration/Resources/components/pubsub.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: dapr.io/v1alpha1
2 | kind: Component
3 | metadata:
4 | name: pubsub
5 | spec:
6 | type: pubsub.redis
7 | metadata:
8 | - name: redisHost
9 | value: localhost:6379
10 | - name: redisPassword
11 | value: ""
12 |
--------------------------------------------------------------------------------
/test/Util.Microservices.Dapr.Tests.Integration/Resources/components/statestore.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: dapr.io/v1alpha1
2 | kind: Component
3 | metadata:
4 | name: statestore
5 | spec:
6 | type: state.redis
7 | metadata:
8 | - name: redisHost
9 | value: localhost:6379
10 | - name: redisPassword
11 | value: ""
12 | - name: actorStateStore
13 | value: "true"
14 |
--------------------------------------------------------------------------------
/test/Util.Microservices.Dapr.Tests.Integration/Resources/configuration/config.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: dapr.io/v1alpha1
2 | kind: Configuration
3 | metadata:
4 | name: daprConfig
5 | spec:
6 | tracing:
7 | samplingRate: "1"
8 | zipkin:
9 | endpointAddress: http://localhost:9411/api/v2/spans
--------------------------------------------------------------------------------
/test/Util.Microservices.Dapr.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Microservices.Dapr.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Microservices.Dapr.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft": "Trace"
6 | }
7 | }
8 | }
--------------------------------------------------------------------------------
/test/Util.Microservices.Dapr.Tests.Integration/clear.ps1:
--------------------------------------------------------------------------------
1 | Write-Host "Stop-Process -Name Util.Microservices.Dapr*"
2 | Stop-Process -Name "Util.Microservices.Dapr*"
3 | Write-Host "Stop-Process -Name dapr*"
4 | Stop-Process -Name "dapr*"
5 | Write-Host "Stop-Process -Name dotnet*"
6 | Stop-Process -Name "dotnet*"
--------------------------------------------------------------------------------
/test/Util.Microservices.Dapr.WebApiSample/Controllers/Test1Controller.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Microservices.Dapr.WebApiSample/Controllers/Test1Controller.cs
--------------------------------------------------------------------------------
/test/Util.Microservices.Dapr.WebApiSample/Controllers/Test2Controller.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Microservices.Dapr.WebApiSample/Controllers/Test2Controller.cs
--------------------------------------------------------------------------------
/test/Util.Microservices.Dapr.WebApiSample/Usings.cs:
--------------------------------------------------------------------------------
1 | global using System;
2 | global using System.Threading.Tasks;
3 | global using System.Collections.Generic;
4 | global using System.Linq;
5 | global using System.Threading;
6 | global using Microsoft.Extensions.Logging;
7 | global using Microsoft.Extensions.DependencyInjection;
8 | global using Microsoft.Extensions.DependencyInjection.Extensions;
9 | global using Microsoft.AspNetCore.Mvc;
10 | global using Util;
--------------------------------------------------------------------------------
/test/Util.Microservices.Dapr.WebApiSample/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Trace",
5 | "Microsoft.AspNetCore": "Trace"
6 | }
7 | },
8 | "AllowedHosts": "*"
9 | }
10 |
--------------------------------------------------------------------------------
/test/Util.Microservices.Polly.Tests.Integration/PolicyTest.Retry.Async.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Microservices.Polly.Tests.Integration/PolicyTest.Retry.Async.cs
--------------------------------------------------------------------------------
/test/Util.Microservices.Polly.Tests.Integration/PolicyTest.Retry.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Microservices.Polly.Tests.Integration/PolicyTest.Retry.cs
--------------------------------------------------------------------------------
/test/Util.Microservices.Polly.Tests.Integration/PolicyTest.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Microservices.Polly.Tests.Integration/PolicyTest.cs
--------------------------------------------------------------------------------
/test/Util.Microservices.Polly.Tests.Integration/Samples/SampleException.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Microservices.Polly.Tests.Samples;
2 |
3 | ///
4 | /// 样例异常
5 | ///
6 | public class SampleException : Exception {
7 | }
--------------------------------------------------------------------------------
/test/Util.Microservices.Polly.Tests.Integration/Samples/SampleResult.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Microservices.Polly.Tests.Samples;
2 |
3 | ///
4 | /// 样例结果
5 | ///
6 | public class SampleResult {
7 | ///
8 | /// 结果
9 | ///
10 | public string Result { get; set; }
11 | }
--------------------------------------------------------------------------------
/test/Util.Microservices.Polly.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Microservices.Polly.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.ObjectMapping.AutoMapper.Tests/ObjectMapperExtensionsTest.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.ObjectMapping.AutoMapper.Tests/ObjectMapperExtensionsTest.cs
--------------------------------------------------------------------------------
/test/Util.ObjectMapping.AutoMapper.Tests/ObjectMapperTest.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.ObjectMapping.AutoMapper.Tests/ObjectMapperTest.cs
--------------------------------------------------------------------------------
/test/Util.ObjectMapping.AutoMapper.Tests/Samples/EnumSample.cs:
--------------------------------------------------------------------------------
1 | using System.ComponentModel;
2 |
3 | namespace Util.ObjectMapping.AutoMapper.Tests.Samples;
4 |
5 | ///
6 | /// 枚举测试样例
7 | ///
8 | public enum EnumSample {
9 | A = 1,
10 | [Description( "B2" )]
11 | B = 2,
12 | [Description( "C3" )]
13 | C = 3,
14 | [Description( "D4" )]
15 | D = 4,
16 | [Description( "E5" )]
17 | E = 5
18 | }
--------------------------------------------------------------------------------
/test/Util.ObjectMapping.AutoMapper.Tests/Samples/Sample4.cs:
--------------------------------------------------------------------------------
1 | namespace Util.ObjectMapping.AutoMapper.Tests.Samples;
2 |
3 | ///
4 | /// 测试样例4
5 | ///
6 | public class Sample4 {
7 | ///
8 | /// string值
9 | ///
10 | public string StringValue { get; set; }
11 | }
--------------------------------------------------------------------------------
/test/Util.ObjectMapping.AutoMapper.Tests/Samples/Sample5.cs:
--------------------------------------------------------------------------------
1 | namespace Util.ObjectMapping.AutoMapper.Tests.Samples;
2 |
3 | ///
4 | /// 样例5
5 | ///
6 | public class Sample5 {
7 | public string Name { get; set; }
8 | public Sample6 Sample61 { get; set; }
9 | }
10 |
11 | ///
12 | /// 样例转换5
13 | ///
14 | public class Sample5to {
15 | public string Name { get; set; }
16 | public Sample6to Sample61 { get; set; }
17 | }
--------------------------------------------------------------------------------
/test/Util.ObjectMapping.AutoMapper.Tests/Samples/Sample6.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.ObjectMapping.AutoMapper.Tests/Samples/Sample6.cs
--------------------------------------------------------------------------------
/test/Util.ObjectMapping.AutoMapper.Tests/Samples/Sample7.cs:
--------------------------------------------------------------------------------
1 | namespace Util.ObjectMapping.AutoMapper.Tests.Samples;
2 |
3 | ///
4 | /// 样例7
5 | ///
6 | public class Sample7 {
7 | public string Name { get; set; }
8 | public Sample5 Sample75 { get; set; }
9 | }
10 |
11 | ///
12 | /// 样例转换7
13 | ///
14 | public class Sample7to {
15 | public string Name { get; set; }
16 | public Sample5 Sample75 { get; set; }
17 | }
--------------------------------------------------------------------------------
/test/Util.ObjectMapping.AutoMapper.Tests/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.ObjectMapping.AutoMapper.Tests/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Scheduling.Hangfire.Tests.Integration/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "Util.Scheduling.Hangfire.Tests.Integration": {
4 | "commandName": "Project",
5 | "launchBrowser": true,
6 | "environmentVariables": {
7 | "ASPNETCORE_ENVIRONMENT": "Development"
8 | },
9 | "applicationUrl": "https://localhost:63169;http://localhost:63170"
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/test/Util.Scheduling.Hangfire.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Scheduling.Hangfire.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Scheduling.Quartz.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Scheduling.Quartz.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Scheduling.Quartz.Tests.Integration/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Information"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "Server=.\\sql2019;Database=Util.Scheduling.Quartz.Tests;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Scheduling.Quartz.Tests.Integration/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Error",
5 | "Microsoft": "Error"
6 | }
7 | },
8 | "ConnectionStrings": {
9 | "connection": "Server=192.168.31.123\\sql2019;Database=Util.Scheduling.Quartz.Tests;uid=sa;pwd=sa;MultipleActiveResultSets=true;TrustServerCertificate=true"
10 | }
11 | }
--------------------------------------------------------------------------------
/test/Util.Templates.Handlebars.Tests.Integration/HandlebarsTemplateEngineTest.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Templates.Handlebars.Tests.Integration/HandlebarsTemplateEngineTest.cs
--------------------------------------------------------------------------------
/test/Util.Templates.Handlebars.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Templates.Handlebars.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Templates.Razor.Tests.Integration/RazorTemplateEngineTest.Path.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Templates.Razor.Tests.Integration/RazorTemplateEngineTest.Path.cs
--------------------------------------------------------------------------------
/test/Util.Templates.Razor.Tests.Integration/RazorTemplateEngineTest.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Templates.Razor.Tests.Integration/RazorTemplateEngineTest.cs
--------------------------------------------------------------------------------
/test/Util.Templates.Razor.Tests.Integration/Samples/Templates/Child/Child2/TestChildTemplate2.cshtml:
--------------------------------------------------------------------------------
1 | @using Util.Templates.Razor.Tests.Integration.Samples.Models
2 | @model TestModel3
3 | @Model.Name
--------------------------------------------------------------------------------
/test/Util.Templates.Razor.Tests.Integration/Samples/Templates/Child/TestChildTemplate.cshtml:
--------------------------------------------------------------------------------
1 | @using Util.Templates.Razor.Tests.Integration.Samples.Models
2 | @model TestModel2
3 | @Model.Name,@Html.PartialAsync( "~/Samples/Templates/Child/Child2/TestChildTemplate2.cshtml",Model.Model3 )
--------------------------------------------------------------------------------
/test/Util.Templates.Razor.Tests.Integration/Samples/Templates/TestTemplate.cshtml:
--------------------------------------------------------------------------------
1 | @using Util.Templates.Razor.Tests.Integration.Samples.Models
2 | @model TestModel
3 | hello,@Model.Name
--------------------------------------------------------------------------------
/test/Util.Templates.Razor.Tests.Integration/Samples/Templates/TestTemplate2.cshtml:
--------------------------------------------------------------------------------
1 | @using Util.Templates.Razor.Tests.Integration.Samples.Models
2 | @model TestModel
3 | @Model.Name,@await Html.PartialAsync( "~/Samples/Templates/Child/TestChildTemplate.cshtml",Model.Model2 )
--------------------------------------------------------------------------------
/test/Util.Templates.Razor.Tests.Integration/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Templates.Razor.Tests.Integration/Startup.cs
--------------------------------------------------------------------------------
/test/Util.TestShare/Events/TestEvent.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Util.Events;
3 |
4 | namespace Util.Tests.Events;
5 |
6 | ///
7 | /// 测试事件
8 | ///
9 | public class TestEvent : IEvent {
10 | public Guid Id { get; set; }
11 | public string Name { get; set; }
12 | }
--------------------------------------------------------------------------------
/test/Util.TestShare/Infrastructure/WebApiResult.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Tests.Infrastructure;
2 |
3 | ///
4 | /// Web Api操作结果
5 | ///
6 | public class WebApiResult {
7 | ///
8 | /// 状态码
9 | ///
10 | public string Code { get; set; }
11 | ///
12 | /// 消息
13 | ///
14 | public string Message { get; set; }
15 | ///
16 | /// 数据
17 | ///
18 | public T Data { get; set; }
19 | }
--------------------------------------------------------------------------------
/test/Util.TestShare/Models/ProductEnum.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Tests.Models;
2 |
3 | ///
4 | /// 用于测试枚举扩展属性
5 | ///
6 | public enum ProductEnum {
7 | Hello,
8 | World
9 | }
--------------------------------------------------------------------------------
/test/Util.TestShare/Models/ProductItem.cs:
--------------------------------------------------------------------------------
1 | namespace Util.Tests.Models;
2 |
3 | ///
4 | /// 用于测试扩展属性
5 | ///
6 | public class ProductItem {
7 | ///
8 | /// 编码
9 | ///
10 | public int Code { get; set; }
11 | ///
12 | /// 名称
13 | ///
14 | public string Name { get; set; }
15 | ///
16 | /// 枚举
17 | ///
18 | public ProductEnum EnumValue { get; set; }
19 | }
--------------------------------------------------------------------------------
/test/Util.TestShare/Repositories/ICustomerRepository.cs:
--------------------------------------------------------------------------------
1 | using Util.Domain.Repositories;
2 | using Util.Tests.Models;
3 |
4 | namespace Util.Tests.Repositories;
5 |
6 | ///
7 | /// 客户仓储
8 | ///
9 | public interface ICustomerRepository : IRepository {
10 | }
--------------------------------------------------------------------------------
/test/Util.TestShare/Repositories/IOperationLogRepository.cs:
--------------------------------------------------------------------------------
1 | using Util.Domain.Repositories;
2 | using Util.Tests.Models;
3 |
4 | namespace Util.Tests.Repositories;
5 |
6 | ///
7 | /// 操作日志仓储
8 | ///
9 | public interface IOperationLogRepository : IRepository {
10 | }
--------------------------------------------------------------------------------
/test/Util.TestShare/Repositories/IOrderRepository.cs:
--------------------------------------------------------------------------------
1 | using Util.Domain.Repositories;
2 | using Util.Tests.Models;
3 |
4 | namespace Util.Tests.Repositories;
5 |
6 | ///
7 | /// 订单仓储
8 | ///
9 | public interface IOrderRepository : IRepository {
10 | }
--------------------------------------------------------------------------------
/test/Util.TestShare/Repositories/IPostRepository.cs:
--------------------------------------------------------------------------------
1 | using Util.Domain.Repositories;
2 | using Util.Tests.Models;
3 |
4 | namespace Util.Tests.Repositories;
5 |
6 | ///
7 | /// 贴子仓储
8 | ///
9 | public interface IPostRepository : IRepository {
10 | }
--------------------------------------------------------------------------------
/test/Util.TestShare/Repositories/IProductRepository.cs:
--------------------------------------------------------------------------------
1 | using Util.Domain.Repositories;
2 | using Util.Tests.Models;
3 |
4 | namespace Util.Tests.Repositories;
5 |
6 | ///
7 | /// 产品仓储
8 | ///
9 | public interface IProductRepository : IRepository {
10 | ///
11 | /// 更新产品
12 | ///
13 | /// 产品
14 | public void UpdateProduct( Product product );
15 | }
--------------------------------------------------------------------------------
/test/Util.TestShare/Repositories/IResourceRepository.cs:
--------------------------------------------------------------------------------
1 | using System.Threading.Tasks;
2 | using System;
3 | using Util.Domain.Trees;
4 | using Util.Tests.Models;
5 |
6 | namespace Util.Tests.Repositories;
7 |
8 | ///
9 | /// 资源仓储
10 | ///
11 | public interface IResourceRepository : ITreeRepository {
12 | ///
13 | /// 生成排序号
14 | ///
15 | /// 父标识
16 | Task GenerateSortIdAsync( Guid? parentId );
17 | }
--------------------------------------------------------------------------------
/test/Util.TestShare/Repositories/ITagRepository.cs:
--------------------------------------------------------------------------------
1 | using Util.Domain.Repositories;
2 | using Util.Tests.Models;
3 |
4 | namespace Util.Tests.Repositories;
5 |
6 | ///
7 | /// 标签仓储
8 | ///
9 | public interface ITagRepository : IRepository {
10 | }
--------------------------------------------------------------------------------
/test/Util.TestShare/Services/ICustomerQueryService.cs:
--------------------------------------------------------------------------------
1 | using Util.Applications;
2 | using Util.Tests.Dtos;
3 | using Util.Tests.Queries;
4 |
5 | namespace Util.Tests.Services;
6 |
7 | ///
8 | /// 客户查询服务
9 | ///
10 | public interface ICustomerQueryService : IQueryService {
11 | }
--------------------------------------------------------------------------------
/test/Util.TestShare/Services/ICustomerService.cs:
--------------------------------------------------------------------------------
1 | using Util.Applications;
2 | using Util.Tests.Dtos;
3 | using Util.Tests.Queries;
4 |
5 | namespace Util.Tests.Services;
6 |
7 | ///
8 | /// 客户服务
9 | ///
10 | public interface ICustomerService : ICrudService {
11 | }
--------------------------------------------------------------------------------
/test/Util.TestShare/Services/IProductService.cs:
--------------------------------------------------------------------------------
1 | using Util.Applications;
2 | using Util.Tests.Dtos;
3 | using Util.Tests.Queries;
4 |
5 | namespace Util.Tests.Services;
6 |
7 | ///
8 | /// 产品服务
9 | ///
10 | public interface IProductService : ICrudService {
11 | }
--------------------------------------------------------------------------------
/test/Util.TestShare/Services/IResourceService.cs:
--------------------------------------------------------------------------------
1 | using Util.Applications.Trees;
2 | using Util.Tests.Dtos;
3 | using Util.Tests.Queries;
4 |
5 | namespace Util.Tests.Services;
6 |
7 | ///
8 | /// 资源服务
9 | ///
10 | public interface IResourceService : ITreeService {
11 | }
--------------------------------------------------------------------------------
/test/Util.TestShare/UnitOfWorks/ITestUnitOfWork.cs:
--------------------------------------------------------------------------------
1 | using Util.Data;
2 |
3 | namespace Util.Tests.UnitOfWorks;
4 |
5 | ///
6 | /// 工作单元
7 | ///
8 | public interface ITestUnitOfWork : IUnitOfWork {
9 | }
--------------------------------------------------------------------------------
/test/Util.Ui.NgAlain.Tests/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Ui.NgAlain.Tests/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Ui.NgZorro.Tests/Samples/TreeDto.cs:
--------------------------------------------------------------------------------
1 | using Util.Applications.Trees;
2 |
3 | namespace Util.Ui.NgZorro.Tests.Samples {
4 | ///
5 | /// 树形参数
6 | ///
7 | public class TreeDto : TreeDtoBase {
8 | public string Text { get; set; }
9 |
10 | public override string GetText() {
11 | return Text;
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/test/Util.Ui.NgZorro.Tests/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Ui.NgZorro.Tests/Startup.cs
--------------------------------------------------------------------------------
/test/Util.Validation.Tests/Samples/Sample2.cs:
--------------------------------------------------------------------------------
1 | using System.ComponentModel.DataAnnotations;
2 |
3 | namespace Util.Validation.Tests.Samples;
4 |
5 | ///
6 | /// 验证样例2
7 | ///
8 | public class Sample2 {
9 | ///
10 | /// 验证身份证
11 | ///
12 | [IdCard]
13 | public string IdCard { get; set; }
14 | }
--------------------------------------------------------------------------------
/test/Util.Validation.Tests/Samples/Sample3.cs:
--------------------------------------------------------------------------------
1 | using System.ComponentModel.DataAnnotations;
2 |
3 | namespace Util.Validation.Tests.Samples;
4 |
5 | ///
6 | /// 验证样例3
7 | ///
8 | public class Sample3 {
9 | ///
10 | /// 验证身份证
11 | ///
12 | [IdCard( ErrorMessage = "IdCard" )]
13 | public string IdCard { get; set; }
14 | }
--------------------------------------------------------------------------------
/test/Util.Validation.Tests/Startup.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YSGStudyHards/Util/0c4039997702919938e4f70aae871de8e9a896c5/test/Util.Validation.Tests/Startup.cs
--------------------------------------------------------------------------------