gitextract_s1v18kb7/ ├── .gitattributes ├── .gitignore ├── LICENSE.txt ├── PagerDemo.md ├── PagerDemov1.md ├── README.md ├── Sakura.AspNetCore.Extensions/ │ ├── Directory.Build.props │ ├── Sakura.AspNetCore.AsyncPagedList/ │ │ ├── AsyncCacheable.cs │ │ ├── AsyncPagedList.cs │ │ ├── IAsyncPagedList.cs │ │ ├── PagedListCreationHelper.cs │ │ ├── Properties/ │ │ │ ├── Annotations.cs │ │ │ └── AssemblyInfo.cs │ │ └── Sakura.AspNetCore.AsyncPagedList.csproj │ ├── Sakura.AspNetCore.Authentication.ExternalCookie/ │ │ ├── ApplicationBuilderExtensions.cs │ │ ├── ExternalSecurityStampValidator.cs │ │ ├── ExternalSignInManager.Net1.cs │ │ ├── ExternalSignInManager.Net2.cs │ │ ├── ExternalSignInManager.cs │ │ ├── IdentityHelper.cs │ │ ├── Sakura.AspNetCore.Authentication.ExternalCookie.csproj │ │ └── ServiceCollectionExtensions.cs │ ├── Sakura.AspNetCore.DynamicLocalizer/ │ │ ├── IDynamicHtmlLocalizer.cs │ │ ├── IDynamicStringLocalizer.cs │ │ ├── IDynamicViewLocalizer.cs │ │ ├── Internal/ │ │ │ ├── DynamicHtmlLocalizer.cs │ │ │ ├── DynamicHtmlLocalizerWrapper.cs │ │ │ ├── DynamicHtmlTextLocalizerWrapper.cs │ │ │ ├── DynamicStringLocalizer.cs │ │ │ ├── DynamicStringLocalizerWrapper.cs │ │ │ ├── DynamicViewLocalizer.cs │ │ │ └── IDynamicLocalizerWrapper.cs │ │ ├── Sakura.AspNetCore.DynamicLocalizer.csproj │ │ └── ServiceCollectionExtensions.cs │ ├── Sakura.AspNetCore.Extensions.sln │ ├── Sakura.AspNetCore.Extensions.sln.DotSettings │ ├── Sakura.AspNetCore.Localization.Dictionary/ │ │ ├── DictionaryStringLocalizer.cs │ │ └── Sakura.AspNetCore.Localization.Dictionary.csproj │ ├── Sakura.AspNetCore.Messages/ │ │ ├── DefaultOperationMessageAccessor.cs │ │ ├── OperationMessageOptions.cs │ │ ├── OperationMessageServiceCollectionExtensions.cs │ │ └── Sakura.AspNetCore.Messages.csproj │ ├── Sakura.AspNetCore.Messages.Abstractions/ │ │ ├── IOperationMessageAccessor.cs │ │ ├── OperationMessage.cs │ │ ├── OperationMessageExtensions.cs │ │ ├── OperationMessageLevel.cs │ │ └── Sakura.AspNetCore.Messages.Abstractions.csproj │ ├── Sakura.AspNetCore.Mvc.ActionResultExceptionExtensions/ │ │ ├── ActionResultException.cs │ │ ├── EnableActionResultExceptionAttribute.cs │ │ ├── Properties/ │ │ │ └── AssemblyInfo.cs │ │ ├── Sakura.AspNetCore.Mvc.ActionResultExceptionExtensions.csproj │ │ └── ServiceExtensions.cs │ ├── Sakura.AspNetCore.Mvc.Messages/ │ │ ├── CssClassBasedIconMapper.cs │ │ ├── IIconMapper.cs │ │ ├── IIconToCssClassMapper.cs │ │ ├── IOperationMessageHtmlGenerator.cs │ │ ├── IOperationMessageLevelToStyleMapper.cs │ │ ├── Implementations/ │ │ │ ├── Bootstrap5AlertMessageContentLayout.cs │ │ │ ├── Bootstrap5AlertMessageHtmlGenerator.cs │ │ │ ├── Bootstrap5AlertMessageHtmlGeneratorOptions.cs │ │ │ ├── Bootstrap5MessagesServiceBuilder.cs │ │ │ ├── Bootstrap5ToastMessageHtmlGenerator.cs │ │ │ ├── Bootstrap5ToastMessageHtmlGeneratorOptions.cs │ │ │ ├── BootstrapBuilderExtensions.cs │ │ │ ├── BootstrapIconCssClassMapperOptions.cs │ │ │ ├── BootstrapIconMapper.cs │ │ │ ├── BootstrapIconStyle.cs │ │ │ ├── DefaultBootstrap5OperationMessageLevelToStyleMapper.cs │ │ │ ├── DefaultBootstrapIconCssClassMapper.cs │ │ │ ├── HorizontalAlignment.cs │ │ │ ├── IBootstrapIconServiceBuilder.cs │ │ │ ├── Utility.cs │ │ │ └── VerticalAlignment.cs │ │ ├── MessageTagHelper.cs │ │ ├── OperationMessageServiceBuilder.cs │ │ ├── Sakura.AspNetCore.Mvc.Messages.csproj │ │ ├── ServiceCollectionExtensions.cs │ │ └── StaticIIconToCssClassMapper.cs │ ├── Sakura.AspNetCore.Mvc.PagedList/ │ │ ├── FirstAndLastPagerItemActiveMode.cs │ │ ├── Generators/ │ │ │ ├── BaseUriLinkGenerator.cs │ │ │ ├── CustomHtmlContentGenerator.cs │ │ │ ├── CustomLinkGenerator.cs │ │ │ ├── CustomQueryStringLinkGenerator.cs │ │ │ ├── CustomQueryValueLinkGenerator.cs │ │ │ ├── CustomStringContentGenerator.cs │ │ │ ├── DisabledLinkGenerator.cs │ │ │ ├── FormattedLinkGenerator.cs │ │ │ ├── FormattedQueryValueLinkGenerator.cs │ │ │ ├── FormattedStringContentGenerator.cs │ │ │ ├── FragmentLinkGenerator.cs │ │ │ ├── QueryStringLinkGenerator.cs │ │ │ ├── QueryValueLinkGenerator.cs │ │ │ ├── SimpleLinkGenerator.cs │ │ │ ├── SimpleQueryValueLinkGenerator.cs │ │ │ ├── SimpleStringContentGenerator.cs │ │ │ └── StringContentGenerator.cs │ │ ├── IPagerItemContentGenerator.cs │ │ ├── IPagerItemLinkGenerator.cs │ │ ├── Internal/ │ │ │ ├── BootstrapPagerHtmlGenerator.cs │ │ │ ├── DefaultPagerGenerator.cs │ │ │ ├── DefaultPagerListGenerator.cs │ │ │ ├── DefaultPagerRenderingListGenerator.cs │ │ │ ├── IPagerGenerator.cs │ │ │ ├── IPagerHtmlGenerator.cs │ │ │ ├── IPagerListGenerator.cs │ │ │ ├── IPagerRenderingListGenerator.cs │ │ │ ├── PagerGenerationContext.cs │ │ │ ├── PagerItem.cs │ │ │ ├── PagerItemContentGeneratorConverter.cs │ │ │ ├── PagerItemLinkGeneratorConverter.cs │ │ │ ├── PagerItemType.cs │ │ │ ├── PagerLayoutConverter.cs │ │ │ ├── PagerList.cs │ │ │ ├── PagerRenderingItem.cs │ │ │ ├── PagerRenderingItemState.cs │ │ │ ├── PagerRenderingList.cs │ │ │ ├── StringToHtmlContentConverter.cs │ │ │ └── Utility.cs │ │ ├── PagerGenerationMode.cs │ │ ├── PagerItemContentGenerators.cs │ │ ├── PagerItemGenerationContext.cs │ │ ├── PagerItemLinkGenerators.cs │ │ ├── PagerItemMode.cs │ │ ├── PagerItemOptions.cs │ │ ├── PagerItemOptionsSet.cs │ │ ├── PagerLayout.cs │ │ ├── PagerLayoutElement.cs │ │ ├── PagerLayouts.cs │ │ ├── PagerOptions.cs │ │ ├── PagerOptionsExtensions.cs │ │ ├── Sakura.AspNetCore.Mvc.PagedList.csproj │ │ ├── ServiceCollectionExtensions.cs │ │ ├── SpecialPagerItemInactiveBehavior.cs │ │ └── TagHelpers/ │ │ ├── AjaxOptions.cs │ │ ├── AjaxUpdateMode.cs │ │ ├── PagerTagHelper.cs │ │ └── TagHelperUtility.cs │ ├── Sakura.AspNetCore.Mvc.TagHelpers/ │ │ ├── AuthorizeAttributeTagHelper.cs │ │ ├── AuthorizeTagHelper.cs │ │ ├── AuthorizeTagHelperBase.cs │ │ ├── ConditionalClassTagHelper.cs │ │ ├── DisplayTextTagHelper.cs │ │ ├── EnumForSelectTagHelper.cs │ │ ├── EnumOptionValueSource.cs │ │ ├── EnumSelectTagHelper.cs │ │ ├── EnumTypeSelectTagHelper.cs │ │ ├── EnumValueTextHelper.cs │ │ ├── FlagsEnumInputTagHelper.cs │ │ ├── FlagsEnumModelBinder.cs │ │ ├── FlagsEnumModelBinderProvider.cs │ │ ├── FlagsEnumModelBinderServiceCollectionExtensions.cs │ │ ├── HtmlGeneratorHelper.cs │ │ ├── IdFormatTagHelper.cs │ │ ├── OptionLabelPosition.cs │ │ ├── PartialViewItemTagHelper.cs │ │ ├── ReflectionHelper.cs │ │ ├── ResourceHelper.cs │ │ ├── Sakura.AspNetCore.Mvc.TagHelpers.csproj │ │ ├── SelectOptionLabelTagHelper.cs │ │ ├── SelectValueOptionTagHelper.cs │ │ ├── SelectValueTagHelper.cs │ │ ├── TextSource.cs │ │ └── ViewDataExtensions.cs │ ├── Sakura.AspNetCore.Mvc.TempDataExtensions/ │ │ ├── EnhancedSessionStateTempDataProvider.cs │ │ ├── HtmlContentConverter.NetCoreApp3.cs │ │ ├── HtmlContentConverter.cs │ │ ├── IObjectSerializer.cs │ │ ├── JsonObjectSerializer.cs │ │ ├── Sakura.AspNetCore.Mvc.TempDataExtensions.csproj │ │ ├── SerializedObjectInfo.cs │ │ ├── ServiceCollectionExtensions.cs │ │ ├── TempDataSerializationOptions.cs │ │ └── TypedJsonTempDataSerializer.cs │ ├── Sakura.AspNetCore.Mvc.VisualStyles/ │ │ ├── Sakura.AspNetCore.Mvc.VisualStyles.csproj │ │ ├── VisualStyle.cs │ │ ├── VisualStyleMatchResult.cs │ │ ├── VisualStyleMatchType.cs │ │ ├── VisualStyleOptions.cs │ │ └── VisualStyleService.cs │ ├── Sakura.AspNetCore.PagedList/ │ │ ├── CacheMode.cs │ │ ├── Cacheable.cs │ │ ├── DisableAutoRefreshController.cs │ │ ├── DynamicPagedList.cs │ │ ├── DynamicPagedListBase.cs │ │ ├── DynamicPagedListCacheOptions.cs │ │ ├── DynamicQueryablePagedList.cs │ │ ├── ICacheControl.cs │ │ ├── PagedList.cs │ │ ├── PagedListCreationHelper.cs │ │ └── Sakura.AspNetCore.PagedList.csproj │ ├── Sakura.AspNetCore.PagedList.Abstractions/ │ │ ├── DynamicPagedListExtensions.cs │ │ ├── IDynamicPagedList.cs │ │ ├── IPagedList.cs │ │ ├── PagedListExtensions.cs │ │ └── Sakura.AspNetCore.PagedList.Abstractions.csproj │ ├── Sakura.AspNetCore.PagedList.Async/ │ │ ├── AsyncPagedListCreationHelper.cs │ │ └── Sakura.AspNetCore.PagedList.Async.csproj │ └── Sakura.EntityFrameworkCore.FromSqlExtensions/ │ ├── DbContextFromSqlExtensions.cs │ └── Sakura.EntityFrameworkCore.FromSqlExtensions.csproj └── TagHelperDemo.md