diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Microsoft/AspNetCore/Razor/TagHelpers/AbpTagHelperAttributeListExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Microsoft/AspNetCore/Razor/TagHelpers/AbpTagHelperAttributeListExtensions.cs index 81aefb7382..def91ef68b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Microsoft/AspNetCore/Razor/TagHelpers/AbpTagHelperAttributeListExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Microsoft/AspNetCore/Razor/TagHelpers/AbpTagHelperAttributeListExtensions.cs @@ -22,7 +22,7 @@ public static class AbpTagHelperAttributeListExtensions } else { - var existingClasses = classAttribute.Value.ToString().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList(); + var existingClasses = classAttribute.Value.ToString()!.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList(); existingClasses.AddIfNotContains(className); attributes.SetAttribute("class", string.Join(" ", existingClasses)); } @@ -41,7 +41,7 @@ public static class AbpTagHelperAttributeListExtensions return; } - var classList = classAttribute.Value.ToString().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList(); + var classList = classAttribute.Value.ToString()!.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList(); classList.RemoveAll(c => c == className); attributes.SetAttribute("class", classList.JoinAsString(" ")); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelper.cs index 5b9c1430f2..8d0227fd11 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelper.cs @@ -23,7 +23,7 @@ public abstract class AbpTagHelper : AbpTagHelper [HtmlAttributeNotBound] [ViewContext] - public ViewContext ViewContext { get; set; } + public ViewContext ViewContext { get; set; } = default!; protected AbpTagHelper(TService service) { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperLocalizer.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperLocalizer.cs index c4314134be..5b6db4ff17 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperLocalizer.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperLocalizer.cs @@ -27,12 +27,12 @@ public class AbpTagHelperLocalizer : IAbpTagHelperLocalizer : localizer[text].Value; } - public IStringLocalizer GetLocalizerOrNull(ModelExplorer explorer) + public IStringLocalizer? GetLocalizerOrNull(ModelExplorer explorer) { return GetLocalizerOrNull(explorer.Container.ModelType.Assembly); } - public IStringLocalizer GetLocalizerOrNull(Assembly assembly) + public IStringLocalizer? GetLocalizerOrNull(Assembly assembly) { var resourceType = GetResourceType(assembly); return resourceType == null @@ -40,7 +40,7 @@ public class AbpTagHelperLocalizer : IAbpTagHelperLocalizer : _stringLocalizerFactory.Create(resourceType); } - private Type GetResourceType(Assembly assembly) + private Type? GetResourceType(Assembly assembly) { return _options .AssemblyResources diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperService.cs index b9c3aa92e6..95de4f7f51 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/AbpTagHelperService.cs @@ -23,7 +23,7 @@ public abstract class AbpTagHelperService : IAbpTagHelperService { - public string Href { get; set; } + public string? Href { get; set; } - public string Title { get; set; } + public string Title { get; set; } = default!; public bool Active { get; set; } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Breadcrumb/BreadcrumbItem.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Breadcrumb/BreadcrumbItem.cs index 37a194b906..de9f59ca01 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Breadcrumb/BreadcrumbItem.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Breadcrumb/BreadcrumbItem.cs @@ -2,7 +2,7 @@ public class BreadcrumbItem { - public string Html { get; set; } + public string Html { get; set; } = default!; public bool Active { get; set; } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelper.cs index 624d750274..60c986f34b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelper.cs @@ -9,11 +9,11 @@ public class AbpButtonTagHelper : AbpTagHelper : AbpTagHelperSe case FontIconType.FontAwesome: return "fa fa-" + TagHelper.Icon; default: - return TagHelper.Icon; + return TagHelper.Icon!; } } @@ -69,7 +69,7 @@ public abstract class AbpButtonTagHelperServiceBase : AbpTagHelperSe } var span = new TagBuilder("span"); - span.InnerHtml.AppendHtml(TagHelper.Text); + span.InnerHtml.AppendHtml(TagHelper.Text!); output.Content.AppendHtml(span); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpLinkButtonTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpLinkButtonTagHelper.cs index bf3b4d8bac..53508864cd 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpLinkButtonTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpLinkButtonTagHelper.cs @@ -11,9 +11,9 @@ public class AbpLinkButtonTagHelper : AbpTagHelper { - public string Title { get; set; } + public string? Title { get; set; } - public string Subtitle { get; set; } + public string? Subtitle { get; set; } public AbpCardBodyTagHelper(AbpCardBodyTagHelperService tagHelperService) : base(tagHelperService) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelperService.cs index 172fa778b6..e50d0a791a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Card/AbpCardBodyTagHelperService.cs @@ -22,7 +22,7 @@ public class AbpCardBodyTagHelperService : AbpTagHelperService { - public string Id { get; set; } + public string? Id { get; set; } public bool? Crossfade { get; set; } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Carousel/AbpCarouselTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Carousel/AbpCarouselTagHelperService.cs index 9264737b7b..af81b045f5 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Carousel/AbpCarouselTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Carousel/AbpCarouselTagHelperService.cs @@ -138,7 +138,7 @@ public class AbpCarouselTagHelperService : AbpTagHelperService it.Active) && itemList.Count > 0) { - itemList.FirstOrDefault().Active = true; + itemList.FirstOrDefault()!.Active = true; } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionItemTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionItemTagHelper.cs index 8742631e9a..99dd4ff3a1 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionItemTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionItemTagHelper.cs @@ -2,9 +2,9 @@ public class AbpAccordionItemTagHelper : AbpTagHelper { - public string Id { get; set; } + public string? Id { get; set; } - public string Title { get; set; } + public string Title { get; set; } = default!; public bool? Active { get; set; } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionTagHelper.cs index 49cca3199f..a4a87ab32a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionTagHelper.cs @@ -2,7 +2,7 @@ public class AbpAccordionTagHelper : AbpTagHelper { - public string Id { get; set; } + public string? Id { get; set; } public AbpAccordionTagHelper(AbpAccordionTagHelperService tagHelperService) : base(tagHelperService) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseBodyTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseBodyTagHelper.cs index cd6d5d43ed..477c8ed1d8 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseBodyTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseBodyTagHelper.cs @@ -2,7 +2,7 @@ public class AbpCollapseBodyTagHelper : AbpTagHelper { - public string Id { get; set; } + public string? Id { get; set; } public bool? Multi { get; set; } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseButtonTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseButtonTagHelper.cs index c1219b3bbb..64d90496c3 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseButtonTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseButtonTagHelper.cs @@ -8,7 +8,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Collapse; public class AbpCollapseButtonTagHelper : AbpTagHelper { [HtmlAttributeName("abp-collapse-id")] - public string BodyId { get; set; } + public string BodyId { get; set; } = default!; public AbpCollapseButtonTagHelper(AbpCollapseButtonTagHelperService tagHelperService) : base(tagHelperService) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Dropdown/AbpDropdownButtonTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Dropdown/AbpDropdownButtonTagHelper.cs index ac87900307..bc0778cb47 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Dropdown/AbpDropdownButtonTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Dropdown/AbpDropdownButtonTagHelper.cs @@ -4,7 +4,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Dropdown; public class AbpDropdownButtonTagHelper : AbpTagHelper { - public string Text { get; set; } + public string? Text { get; set; } public AbpButtonSize Size { get; set; } = AbpButtonSize.Default; @@ -12,7 +12,7 @@ public class AbpDropdownButtonTagHelper : AbpTagHelper(this ModelExplorer property) where T : Attribute + public static T? GetAttribute(this ModelExplorer property) where T : Attribute { - return property?.Metadata?.ContainerType?.GetTypeInfo()?.GetProperty(property.Metadata.PropertyName)?.GetCustomAttribute(); + return property?.Metadata?.ContainerType?.GetTypeInfo()?.GetProperty(property.Metadata.PropertyName!)?.GetCustomAttribute(); } public static int GetDisplayOrder(this ModelExplorer explorer) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Extensions/TagHelperContextExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Extensions/TagHelperContextExtensions.cs index 47ab8827e7..bda437f8c5 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Extensions/TagHelperContextExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Extensions/TagHelperContextExtensions.cs @@ -11,7 +11,7 @@ public static class TagHelperContextExtensions { if (!context.Items.ContainsKey(key)) { - return default(T); + return default(T)!; } return (T)context.Items[key]; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelper.cs index 6f2ed964cb..4e4b86a308 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelper.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; public class AbpDynamicFormTagHelper : AbpTagHelper { [HtmlAttributeName("abp-model")] - public ModelExpression Model { get; set; } + public ModelExpression Model { get; set; } = default!; [HtmlAttributeName("column-size")] public ColumnSize ColumnSize { get; set; } @@ -23,7 +23,7 @@ public class AbpDynamicFormTagHelper : AbpTagHelper _routeValues; + private IDictionary? _routeValues; private const string ActionAttributeName = "asp-action"; private const string AreaAttributeName = "asp-area"; @@ -36,28 +36,28 @@ public class AbpDynamicFormTagHelper : AbpTagHelper RouteValues diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs index 5938ad356d..57fa9fe0fb 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs @@ -201,7 +201,7 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService(); + var modelAttribute = model.ModelExplorer.GetAttribute()!; var pickerId = modelAttribute.PickerId; @@ -214,16 +214,16 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService().IsEnd) + if (otherModelExists && otherModel!.GetAttribute()!.IsEnd) { - abpDateRangeInputTagHelper.AspForEnd = ModelExplorerToModelExpressionConverter(otherModel); + abpDateRangeInputTagHelper.AspForEnd = ModelExplorerToModelExpressionConverter(otherModel!); } } return abpDateRangeInputTagHelper; } - private bool TryToGetOtherDateModel(ModelExpression model, string pickerId, out ModelExplorer otherModel) + private bool TryToGetOtherDateModel(ModelExpression model, string pickerId, out ModelExplorer? otherModel) { otherModel = TagHelper.Model.ModelExplorer.Properties.SingleOrDefault(x => x != model.ModelExplorer && x.GetAttribute()?.PickerId == pickerId); return otherModel != null; @@ -266,7 +266,7 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService(); + var radioButtonAttribute = model.ModelExplorer.GetAttribute()!; var abpRadioInputTagHelper = _serviceProvider.GetRequiredService(); abpRadioInputTagHelper.AspFor = model; abpRadioInputTagHelper.AspItems = null; @@ -356,7 +356,7 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService -1000 - 1; [HtmlAttributeName("abp-id-name")] - public ModelExpression IdNameFor { get; set; } + public ModelExpression? IdNameFor { get; set; } private readonly MvcViewOptions _mvcViewOptions; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs index 8c58e3c285..a426b50d33 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs @@ -6,11 +6,11 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; public class AbpInputTagHelper : AbpTagHelper { - public ModelExpression AspFor { get; set; } + public ModelExpression AspFor { get; set; } = default!; - public string Label { get; set; } + public string? Label { get; set; } - public string LabelTooltip { get; set; } + public string? LabelTooltip { get; set; } public string LabelTooltipIcon { get; set; } = "bi-info-circle"; @@ -19,7 +19,7 @@ public class AbpInputTagHelper : AbpTagHelper } } - protected virtual TextArea TryGetTextAreaAttribute(TagHelperOutput output) + protected virtual TextArea? TryGetTextAreaAttribute(TagHelperOutput output) { var textAreaAttribute = TagHelper.AspFor.ModelExplorer.GetAttribute