From a82f57059893c81698f1b7889f2fc7a6e1132468 Mon Sep 17 00:00:00 2001 From: gvreddy04 Date: Mon, 5 Jan 2026 21:58:57 +0530 Subject: [PATCH] Add metadata attributes and improve null-safety Added [AddedVersion], [DefaultValue], and [Description] attributes to properties and methods in AutoComplete and GridSettings for better documentation and versioning. Introduced new methods (Disable, Enable, RefreshDataAsync, ResetAsync) to AutoComplete with metadata. Updated several property types to nullable for improved null-safety. Enhanced XML documentation and clarified property comments. --- .../Form/AutoComplete/AutoComplete.razor.cs | 129 ++++++++++++------ blazorbootstrap/Models/GridSettings.cs | 15 +- 2 files changed, 103 insertions(+), 41 deletions(-) diff --git a/blazorbootstrap/Components/Form/AutoComplete/AutoComplete.razor.cs b/blazorbootstrap/Components/Form/AutoComplete/AutoComplete.razor.cs index d98eeca0b..a9ecec5c3 100644 --- a/blazorbootstrap/Components/Form/AutoComplete/AutoComplete.razor.cs +++ b/blazorbootstrap/Components/Form/AutoComplete/AutoComplete.razor.cs @@ -96,22 +96,30 @@ public void bsShownAutocomplete() { } /// /// Disables autocomplete. /// + [AddedVersion("1.0.0")] + [Description("Disables autocomplete.")] public void Disable() => Disabled = true; /// /// Enables autocomplete. /// + [AddedVersion("1.0.0")] + [Description("Enables autocomplete.")] public void Enable() => Disabled = false; /// /// Refresh the autocomplete data. /// /// Task + [AddedVersion("1.0.0")] + [Description("Refresh the autocomplete data.")] public async Task RefreshDataAsync() => await FilterDataAsync(); /// /// Resets the autocomplete selection. /// + [AddedVersion("1.0.0")] + [Description("Resets the autocomplete selection.")] public async Task ResetAsync() => await ClearInputTextAsync(); /// @@ -294,13 +302,16 @@ private async Task ShowAsync() /// /// Gets or sets the data provider. + /// + /// Default value is . + /// /// - /// - /// Default value is null. - /// - [Parameter] + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("Gets or sets the data provider.")] [EditorRequired] - public AutoCompleteDataProviderDelegate DataProvider { get; set; } = null!; + [Parameter] + public AutoCompleteDataProviderDelegate? DataProvider { get; set; } /// /// Gets all Style attributes for the autocomplete delete button. @@ -316,21 +327,28 @@ private async Task ShowAsync() /// /// Gets or sets the disabled state. + /// + /// Default value is . + /// /// - /// - /// Default value is false. - /// + [AddedVersion("1.0.0")] + [DefaultValue(false)] + [Description("Gets or sets the disabled state.")] [Parameter] public bool Disabled { get; set; } - [CascadingParameter] private EditContext EditContext { get; set; } = default!; + [CascadingParameter] + private EditContext EditContext { get; set; } = default!; /// /// Gets or sets the empty text. - /// - /// + /// /// Default value is 'No records found.'. - /// + /// + /// + [AddedVersion("1.0.0")] + [DefaultValue("No records found.")] + [Description("Gets or sets the empty text.")] [Parameter] public string EmptyText { get; set; } = "No records found."; @@ -338,86 +356,121 @@ private async Task ShowAsync() /// /// Gets or sets the loading text. - /// - /// + /// /// Default value is 'Loading...'. - /// + /// + /// + [AddedVersion("1.0.0")] + [DefaultValue("Loading...")] + [Description("Gets or sets the loading text.")] [Parameter] public string LoadingText { get; set; } = "Loading..."; /// /// This event fires immediately when the autocomplete selection changes by the user. /// + [AddedVersion("1.0.0")] + [Description("This event fires immediately when the autocomplete selection changes by the user.")] [Parameter] public EventCallback OnChanged { get; set; } /// /// Gets or sets the placeholder. + /// + /// Default value is . + /// /// - /// - /// Default value is null. - /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("Gets or sets the placeholder.")] [Parameter] public string? Placeholder { get; set; } /// /// Gets or sets the property name. + /// + /// Default value is . + /// /// - /// - /// Default value is null. - /// - [Parameter] + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("Gets or sets the property name.")] [EditorRequired] - public string PropertyName { get; set; } = null!; + [Parameter] + public string? PropertyName { get; set; } /// /// Gets selected item. /// - public TItem SelectedItem => selectedItem = default!; + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("Gets selected item.")] + public TItem? SelectedItem => selectedItem; /// /// Gets or sets the autocomplete size. - /// - /// + /// /// Default value is . - /// + /// + /// + [AddedVersion("1.0.0")] + [DefaultValue(AutoCompleteSize.Default)] + [Description("Gets or sets the autocomplete size.")] [Parameter] public AutoCompleteSize Size { get; set; } = AutoCompleteSize.Default; /// /// Gets or sets the StringComparison. - /// - /// + /// /// Default value is . - /// + /// + /// + [AddedVersion("1.0.0")] + [DefaultValue(StringComparison.OrdinalIgnoreCase)] + [Description("Gets or sets the StringComparison.")] [Parameter] public StringComparison StringComparison { get; set; } = StringComparison.OrdinalIgnoreCase; /// /// Gets or sets the string filter operator. - /// - /// + /// /// Default value is . - /// + /// + /// + [AddedVersion("1.0.0")] + [DefaultValue(StringFilterOperator.Contains)] + [Description("Gets or sets the string filter operator.")] [Parameter] public StringFilterOperator StringFilterOperator { get; set; } = StringFilterOperator.Contains; /// /// Gets or sets the value. + /// + /// Default value is . + /// /// - /// - /// Default value is null. - /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("Gets or sets the value.")] [Parameter] - public string Value { get; set; } = default!; + public string? Value { get; set; } /// /// This is event fires on every user keystroke that changes the textbox value. /// + [AddedVersion("1.0.0")] + [Description("This is event fires on every user keystroke that changes the textbox value.")] [Parameter] public EventCallback ValueChanged { get; set; } - [Parameter] public Expression> ValueExpression { get; set; } = default!; + /// + /// Gets or sets the value expression. + /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("Gets or sets the value expression.")] + [Parameter] + public Expression>? ValueExpression { get; set; } #endregion } diff --git a/blazorbootstrap/Models/GridSettings.cs b/blazorbootstrap/Models/GridSettings.cs index 9bdda35bc..2079aa3c2 100644 --- a/blazorbootstrap/Models/GridSettings.cs +++ b/blazorbootstrap/Models/GridSettings.cs @@ -5,18 +5,27 @@ public class GridSettings #region Properties, Indexers /// - /// Current filters. + /// Gets or sets the filters. /// + [AddedVersion("1.0.0")] + [DefaultValue(null)] + [Description("Gets or sets the filters.")] public IEnumerable? Filters { get; set; } /// - /// Page number. + /// Gets or sets the page number. /// + [AddedVersion("1.0.0")] + [DefaultValue(0)] + [Description("Gets or sets the page number.")] public int PageNumber { get; set; } /// - /// Size of the page. + /// Gets or sets the page size. /// + [AddedVersion("1.0.0")] + [DefaultValue(0)] + [Description("Gets or sets the page size.")] public int PageSize { get; set; } #endregion