diff --git a/Directory.Packages.props b/Directory.Packages.props index 428a3fa877..439f651454 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -19,10 +19,10 @@ - - - - + + + + diff --git a/docs/en/package-version-changes.md b/docs/en/package-version-changes.md index 519256e0b5..d4249c4ea7 100644 --- a/docs/en/package-version-changes.md +++ b/docs/en/package-version-changes.md @@ -4,6 +4,10 @@ | Package | Old Version | New Version | PR | |---------|-------------|-------------|-----| +| Blazorise | 1.8.8 | 2.0.0 | #24906 | +| Blazorise.Components | 1.8.8 | 2.0.0 | #24906 | +| Blazorise.DataGrid | 1.8.8 | 2.0.0 | #24906 | +| Blazorise.Snackbar | 1.8.8 | 2.0.0 | #24906 | | TickerQ | 2.5.3 | 10.1.1 | #24916 | | TickerQ.Dashboard | 2.5.3 | 10.1.1 | #24916 | | TickerQ.EntityFrameworkCore | 2.5.3 | 10.1.1 | #24916 | diff --git a/docs/en/release-info/migration-guides/blazorise-2-0-migration.md b/docs/en/release-info/migration-guides/blazorise-2-0-migration.md new file mode 100644 index 0000000000..ad020cde0b --- /dev/null +++ b/docs/en/release-info/migration-guides/blazorise-2-0-migration.md @@ -0,0 +1,157 @@ +```json +//[doc-seo] +{ + "Description": "This migration guide provides a comprehensive overview of the necessary code changes when upgrading your ABP solution from Blazorise 1.x to 2.0, ensuring a smooth transition to the latest version." +} +``` + +# ABP Blazorise 1.x to 2.0 Migration Guide + +This document summarizes the required code changes when upgrading ABP solutions from Blazorise 1.x to 2.0. + +## 1. Package upgrades + +Upgrade Blazorise-related packages to `2.0.0`. + +- `Blazorise` +- `Blazorise.Components` +- `Blazorise.DataGrid` +- `Blazorise.Snackbar` +- `Blazorise.Bootstrap5` +- `Blazorise.Icons.FontAwesome` + +## 2. Input component renames + +Blazorise 2.0 uses new input component names: + +- `TextEdit` -> `TextInput` +- `MemoEdit` -> `MemoInput` +- `DateEdit` -> `DateInput` +- `TimeEdit` -> `TimeInput` +- `NumericEdit` -> `NumericInput` +- `ColorEdit` -> `ColorInput` +- `FileEdit` -> `FileInput` + +## 3. Binding API normalization to Value/ValueChanged + +Migrate old binding/value APIs to the new `Value` model. + +- `@bind-Text` -> `@bind-Value` +- `Text` / `TextChanged` -> `Value` / `ValueChanged` +- `@bind-Checked` -> `@bind-Value` +- `Checked` / `CheckedChanged` -> `Value` / `ValueChanged` +- `CheckedValue` / `CheckedValueChanged` -> `Value` / `ValueChanged` +- `@bind-Date` / `@bind-Time` -> `@bind-Value` +- `Date` / `DateChanged` -> `Value` / `ValueChanged` +- `Time` / `TimeChanged` -> `Value` / `ValueChanged` +- `@bind-SelectedValue` (for `Select`) -> `@bind-Value` +- `SelectedValue` / `SelectedValueChanged` (for `Select`) -> `Value` / `ValueChanged` +- `@bind-Checked` (for `Switch`) -> `@bind-Value` +- `Checked` / `CheckedChanged` (for `Switch`) -> `Value` / `ValueChanged` + +## 4. DatePicker and Select multiple changes + +### DatePicker range mode + +For `SelectionMode="DateInputSelectionMode.Range"`, the old `Dates` / `DatesChanged` parameters are replaced by the unified `Value` / `ValueChanged`. Use an array or `IReadOnlyList` as `TValue`: + +- `@bind-Dates` -> `@bind-Value` (with `TValue="DateTime[]"` or `TValue="IReadOnlyList"`) +- `Dates` / `DatesChanged` -> `Value` / `ValueChanged` + +### DatePicker single value mode + +For non-range `DatePicker` usage: + +- `Date` / `DateChanged` -> `Value` / `ValueChanged` + +### Select multiple mode + +For ``, the old `SelectedValues` / `SelectedValuesChanged` parameters are replaced by the unified `Value` / `ValueChanged`. Use an array or `IReadOnlyList` as `TValue`: + +- `@bind-SelectedValues` -> `@bind-Value` (with `TValue="string[]"` or `TValue="IReadOnlyList"`) +- `SelectedValues` / `SelectedValuesChanged` -> `Value` / `ValueChanged` + +Example: + +```razor + + One + Two + + +@code { + private int[] Selected { get; set; } = new int[] { 1 }; +} +``` + +### Empty SelectItem type requirement + +For empty placeholder items, set explicit `TValue`: + +- `` -> `` (or another correct type such as `Guid?`) + +## 5. DataGrid migration + +### 5.1 Page parameter rename + +- `CurrentPage` -> `Page` on `DataGrid` + +Important: `AbpExtensibleDataGrid` still uses `CurrentPage` (for example ABP v10.2). Do not rename it to `Page`. + +### 5.2 DisplayTemplate context type change + +Inside `DisplayTemplate`, use `context.Item` instead of directly using `context`. + +Typical updates: + +- `context.Property` -> `context.Item.Property` +- `Method(context)` -> `Method(context.Item)` +- `() => Method(context)` -> `() => Method(context.Item)` +- For custom template variable names, same rule applies: `row.Property` -> `row.Item.Property` + +The same rule also applies to action handlers in `DataGridEntityActionsColumn` and `DataGridCommandColumn` (such as `Clicked`, `Visible`, and `ConfirmationMessage`): + +- `Clicked="async () => await action.Clicked(context)"` -> `Clicked="async () => await action.Clicked(context.Item)"` +- `Visible="action.Visible(context)"` -> `Visible="action.Visible(context.Item)"` + +Important: This change applies to DataGrid template contexts only (`DisplayTemplate` in `DataGridColumn`, `DataGridEntityActionsColumn`, etc.). In non-DataGrid templates (for example `TreeView` `NodeContent`), `context` is already the item and should remain unchanged (for example `DeleteMenuItemAsync(context)`). + +### 5.3 Width type change (string -> Fluent sizing) + +DataGrid column `Width` moved from plain string to fluent sizing APIs: + +- `Width="30px"` -> `Width="Width.Px(30)"` +- `Width="60px"` -> `Width="Width.Px(60)"` +- `Width="0.5rem"` -> `Width="Width.Px(8)"` (or another equivalent pixel value) +- `Width="50%"` -> `Width="Width.Percent(50)"` or `Width="Width.Is50"` +- `Width="100%"` -> `Width="Width.Is100"` + +For dynamic string widths (for example `column.Width`), ABP introduces `BlazoriseFluentSizingParse.Parse(...)` to convert string values into `IFluentSizingStyle`. + +```csharp +Width="@BlazoriseFluentSizingParse.Parse(column.Width)" // column.Width is a string +``` + +## 6. Modal parameter placement changes + +`Size` and `Centered` should be placed on ``, not on ``. + +- `` -> `` + `` + +## 7. Other component parameter changes + +- `Dropdown RightAligned="true"` -> `Dropdown EndAligned="true"` +- `Autocomplete MinLength` -> `MinSearchLength` + +## 8. Notes from ABP migration implementation + +- Keep component-specific behavior in mind. Not every component follows exactly the same rename pattern. +- `Autocomplete` usage can still involve `SelectedValue` / `SelectedValueChanged`, depending on component API. +- `BarDropdown` and `Dropdown` are different components; align parameter names according to the actual component type. + +# Reference + +This document may not cover all Blazorise 2.0 changes. For completeness, refer to the official migration guide and release notes: + +- [Blazorise 2.0 - Release Notes](https://blazorise.com/news/release-notes/200) +- [Blazorise 2.0 - Migration Guide](https://blazorise.com/news/migration/200) diff --git a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseFluentSizingParse.cs b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseFluentSizingParse.cs new file mode 100644 index 0000000000..5492623be7 --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseFluentSizingParse.cs @@ -0,0 +1,87 @@ +using Blazorise; +using System; +using System.Globalization; +using System.Text.RegularExpressions; + +namespace Volo.Abp.BlazoriseUI; + +public static class BlazoriseFluentSizingParse +{ + private static readonly Regex SizingPattern = new Regex( + @"^(\d+(?:\.\d+)?)(px|rem|em|ch|vw|vh|%)$", + RegexOptions.IgnoreCase | RegexOptions.Compiled); + + /// + /// Parses a CSS size string into an IFluentSizingStyle. + /// Supported formats (based on Blazorise FluentSizing source): + /// Fixed units : 10px, 10rem, 10em, 10ch + /// Viewport units : 10vw, 10vh + /// Percentage : 25%, 33%, 50%, 66%, 75%, 100% -> maps to SizingSize enum (CSS class) + /// other % values -> inline style + /// Keyword : auto -> SizingSize.Auto + /// CSS variable : var(--my-var), --my-var, or my-var (all handled by WithVariable) + /// + public static IFluentSizingStyle Parse(string value, SizingType sizingType = SizingType.None) + { + var fluentSizing = new FluentSizing(sizingType); + + if (string.IsNullOrWhiteSpace(value)) + { + return fluentSizing; + } + + value = value.Trim(); + + // "auto" -> SizingSize.Auto + if (value.Equals("auto", StringComparison.OrdinalIgnoreCase)) + { + return (IFluentSizingStyle)fluentSizing.WithSize(SizingSize.Auto); + } + + // CSS variable: + // "var(--my-var)" -> used as-is + // "--my-var" -> wrapped as var(--my-var) + // "my-var" -> prepended "--" and wrapped as var(--my-var) + // All three cases are handled correctly by Blazorise's GetCssVariableValue. + if (value.StartsWith("var(", StringComparison.Ordinal) || value.StartsWith("--", StringComparison.Ordinal)) + { + return fluentSizing.WithVariable(value); + } + + var match = SizingPattern.Match(value); + + if (!match.Success) + { + return fluentSizing; + } + + var number = double.Parse(match.Groups[1].Value, CultureInfo.InvariantCulture); + var unit = match.Groups[2].Value.ToLowerInvariant(); + + if (unit == "%") + { + // Standard percentages map to SizingSize enum (generates CSS class via class provider) + var sizingSize = number switch + { + 25 => SizingSize.Is25, + 33 => SizingSize.Is33, + 50 => SizingSize.Is50, + 66 => SizingSize.Is66, + 75 => SizingSize.Is75, + 100 => SizingSize.Is100, + _ => SizingSize.Default + }; + + if (sizingSize != SizingSize.Default) + { + return (IFluentSizingStyle)fluentSizing.WithSize(sizingSize); + } + + // Non-standard percentage falls back to inline style + return fluentSizing.WithSize("%", number); + } + + // px, rem, em, ch, vw, vh -> inline style via WithSize(unit, size) + return fluentSizing.WithSize(unit, number); + } +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiObjectExtensionPropertyInfoExtensions.cs b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiObjectExtensionPropertyInfoExtensions.cs index 5794021488..b8a31d6a54 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiObjectExtensionPropertyInfoExtensions.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiObjectExtensionPropertyInfoExtensions.cs @@ -211,7 +211,7 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions { foreach (var attribute in propertyInfo.Attributes) { - var inputTypeByAttribute = GetInputTypeFromAttributeOrNull(attribute); + var inputTypeByAttribute = GetInputTypeFromAttributeOrNull(attribute, propertyInfo.Type); if (inputTypeByAttribute != null) { return inputTypeByAttribute; @@ -226,7 +226,7 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions return propertyInfo.Type.IsEnum || TypeHelper.IsNullableEnum(propertyInfo.Type); } - private static Type? GetInputTypeFromAttributeOrNull(Attribute attribute) + private static Type? GetInputTypeFromAttributeOrNull(Attribute attribute, Type propertyType) { var hasTextEditSupport = TextEditSupportedAttributeTypes.Any(t => t == attribute.GetType()); @@ -235,7 +235,6 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions return typeof(TextExtensionProperty<,>); } - if (attribute is DataTypeAttribute dataTypeAttribute) { switch (dataTypeAttribute.DataType) @@ -247,7 +246,9 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions return typeof(TextExtensionProperty<,>); case DataType.Date: case DataType.DateTime: - return typeof(DateTimeExtensionProperty<,>); + return propertyType == typeof(DateTimeOffset) || propertyType == typeof(DateTimeOffset?) + ? typeof(DateTimeOffsetExtensionProperty<,>) + : typeof(DateTimeExtensionProperty<,>); case DataType.Time: return typeof(TimeExtensionProperty<,>); case DataType.MultilineText: @@ -265,11 +266,16 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions return typeof(CheckExtensionProperty<,>); } - if (type == typeof(DateTime)) + if (type == typeof(DateTime) || type == typeof(DateTime?)) { return typeof(DateTimeExtensionProperty<,>); } + if (type == typeof(DateTimeOffset) || type == typeof(DateTimeOffset?)) + { + return typeof(DateTimeOffsetExtensionProperty<,>); + } + if (NumberTypes.Contains(type)) { return typeof(TextExtensionProperty<,>); diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor index 44b8aa46e4..6f1a82df5d 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor @@ -7,7 +7,7 @@ ReadData="@ReadData" TotalItems="@TotalItems" ShowPager="@ShowPager" - CurrentPage="@CurrentPage" + Page="@CurrentPage" PageSize="@PageSize" Responsive="@Responsive" Striped @@ -44,9 +44,9 @@ @@ -54,10 +54,10 @@ else { @@ -73,17 +73,17 @@ { @if (column.ValueConverter == null) { - + - @RenderCustomTableColumnComponent(column.Component, context!) + @RenderCustomTableColumnComponent(column.Component, context.Item!) } else { - + - @RenderCustomTableColumnComponent(column.Component, context!) + @RenderCustomTableColumnComponent(column.Component, context.Item!) } @@ -92,11 +92,11 @@ { if (!ExtensionPropertiesRegex.IsMatch(column.Data)) { - @if (column.ValueConverter == null) + @if (column.ValueConverter == null && !IsDateTimeColumn(column)) { - @((MarkupString)GetConvertedFieldValue(context, column)) + @((MarkupString)GetConvertedFieldValue(context.Item, column)) } } else { - + @{ var entity = context as IHasExtraProperties; @@ -140,18 +140,11 @@ { if (column.ValueConverter != null) { - @((MarkupString)GetConvertedFieldValue(context, column)) + @((MarkupString)GetConvertedFieldValue(context.Item, column)) } else { - if (column.DisplayFormat == null) - { - @(propertyValue) - } - else - { - @(string.Format(column.DisplayFormatProvider, column.DisplayFormat, propertyValue)) - } + @((MarkupString)GetConvertedFieldValue(propertyValue, column)) } } } diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor.cs index 682643893e..be8ede1cb2 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Text.RegularExpressions; using Blazorise.DataGrid; using Blazorise.Extensions; @@ -7,6 +8,7 @@ using Localization.Resources.AbpUi; using Microsoft.AspNetCore.Components; using Microsoft.Extensions.Localization; using Volo.Abp.AspNetCore.Components.Web.Extensibility.TableColumns; +using Volo.Abp.Timing; namespace Volo.Abp.BlazoriseUI.Components; @@ -45,6 +47,9 @@ public partial class AbpExtensibleDataGrid : ComponentBase [Inject] public IStringLocalizer UiLocalizer { get; set; } = default!; + [Inject] + public IClock Clock { get; set; } = default!; + protected virtual RenderFragment RenderCustomTableColumnComponent(Type type, object data) { return (builder) => @@ -57,13 +62,67 @@ public partial class AbpExtensibleDataGrid : ComponentBase protected virtual string GetConvertedFieldValue(TItem item, TableColumn columnDefinition) { - var convertedValue = columnDefinition.ValueConverter!.Invoke(item!); + if (columnDefinition.ValueConverter != null) + { + var convertedValue = columnDefinition.ValueConverter.Invoke(item!); + if (!columnDefinition.DisplayFormat.IsNullOrEmpty()) + { + return string.Format(columnDefinition.DisplayFormatProvider, columnDefinition.DisplayFormat!, convertedValue); + } + + return convertedValue; + } + + var propertyInfo = item!.GetType().GetProperty(columnDefinition.Data); + return GetConvertedFieldValue(propertyInfo?.GetValue(item), columnDefinition); + } + + protected virtual string GetConvertedFieldValue(object? value, TableColumn columnDefinition) + { + if (value is DateTime dateTime) + { + var converted = Clock.ConvertToUserTime(dateTime); + if (!columnDefinition.DisplayFormat.IsNullOrEmpty()) + { + return string.Format(columnDefinition.DisplayFormatProvider, columnDefinition.DisplayFormat!, converted); + } + + return converted.ToString(columnDefinition.DisplayFormatProvider as CultureInfo ?? CultureInfo.CurrentCulture); + } + + if (value is DateTimeOffset dateTimeOffset) + { + var converted = Clock.ConvertToUserTime(dateTimeOffset); + if (!columnDefinition.DisplayFormat.IsNullOrEmpty()) + { + return string.Format(columnDefinition.DisplayFormatProvider, columnDefinition.DisplayFormat!, converted); + } + + return converted.ToString(columnDefinition.DisplayFormatProvider as CultureInfo ?? CultureInfo.CurrentCulture); + } + + if (value == null) + { + return string.Empty; + } + if (!columnDefinition.DisplayFormat.IsNullOrEmpty()) { - return string.Format(columnDefinition.DisplayFormatProvider, columnDefinition.DisplayFormat!, - convertedValue); + return string.Format(columnDefinition.DisplayFormatProvider, columnDefinition.DisplayFormat!, value); + } + + return value.ToString() ?? string.Empty; + } + + protected virtual bool IsDateTimeColumn(TableColumn columnDefinition) + { + var propertyInfo = typeof(TItem).GetProperty(columnDefinition.Data); + if (propertyInfo == null) + { + return false; } - return convertedValue; + var propertyType = Nullable.GetUnderlyingType(propertyInfo.PropertyType) ?? propertyInfo.PropertyType; + return propertyType == typeof(DateTime) || propertyType == typeof(DateTimeOffset); } } diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/DataGridEntityActionsColumn.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/DataGridEntityActionsColumn.razor.cs index 0180833054..b48a3744fc 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/DataGridEntityActionsColumn.razor.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/DataGridEntityActionsColumn.razor.cs @@ -1,5 +1,6 @@ using System.Linq; using System.Threading.Tasks; +using Blazorise; using Blazorise.DataGrid; using Localization.Resources.AbpUi; using Microsoft.AspNetCore.Components; @@ -21,13 +22,13 @@ public partial class DataGridEntityActionsColumn : DataGridColumn protected virtual ValueTask SetDefaultValuesAsync() { Caption = UiLocalizer["Actions"]; - Width = "150px"; + Width = Blazorise.Width.Px(150); Sortable = false; Field = ResolveFieldName(); - + return ValueTask.CompletedTask; } - + protected virtual string ResolveFieldName() { var props = typeof(TItem).GetProperties(); diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/CheckExtensionProperty.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/CheckExtensionProperty.razor index eaea3c844a..4ec9b868e0 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/CheckExtensionProperty.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/CheckExtensionProperty.razor @@ -7,7 +7,7 @@ { - + @PropertyInfo.GetLocalizedDisplayName(StringLocalizerFactory) diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/DateTimeExtensionProperty.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/DateTimeExtensionProperty.razor index 0500d29c32..5c54a95112 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/DateTimeExtensionProperty.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/DateTimeExtensionProperty.razor @@ -10,15 +10,15 @@ @PropertyInfo.GetLocalizedDisplayName(StringLocalizerFactory) - + @bind-Value="@Value"> - + } diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/DateTimeOffsetExtensionProperty.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/DateTimeOffsetExtensionProperty.razor new file mode 100644 index 0000000000..045928fffa --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/DateTimeOffsetExtensionProperty.razor @@ -0,0 +1,24 @@ +@typeparam TEntity +@typeparam TResourceType +@using Volo.Abp.BlazoriseUI +@using Volo.Abp.Localization +@using Volo.Abp.ObjectExtending +@inherits ExtensionPropertyComponentBase + +@if (PropertyInfo != null && Entity != null) +{ + + + @PropertyInfo.GetLocalizedDisplayName(StringLocalizerFactory) + + + + + + + +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/DateTimeOffsetExtensionProperty.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/DateTimeOffsetExtensionProperty.razor.cs new file mode 100644 index 0000000000..41488c0ea8 --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/DateTimeOffsetExtensionProperty.razor.cs @@ -0,0 +1,29 @@ +using System; +using Volo.Abp.Data; + +namespace Volo.Abp.BlazoriseUI.Components.ObjectExtending; + +public partial class DateTimeOffsetExtensionProperty + where TEntity : IHasExtraProperties +{ + protected DateTimeOffset? Value { + get { + var raw = Entity.GetProperty(PropertyInfo.Name); + return raw switch + { + null => null, + DateTimeOffset dto => dto, + DateTime dt => dt.Kind switch + { + DateTimeKind.Utc => new DateTimeOffset(dt, TimeSpan.Zero), + DateTimeKind.Local => new DateTimeOffset(dt), + _ => new DateTimeOffset(DateTime.SpecifyKind(dt, DateTimeKind.Utc), TimeSpan.Zero) + }, + _ => null + }; + } + set { + Entity.SetProperty(PropertyInfo.Name, value, false); + } + } +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/LookupExtensionProperty.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/LookupExtensionProperty.razor index 6217a75543..4c1094421b 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/LookupExtensionProperty.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/LookupExtensionProperty.razor @@ -6,16 +6,17 @@ @PropertyInfo.GetLocalizedDisplayName(StringLocalizerFactory) - - + + + + diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/SelectExtensionProperty.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/SelectExtensionProperty.razor index 605158aec0..79d2f06bc5 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/SelectExtensionProperty.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/SelectExtensionProperty.razor @@ -6,7 +6,7 @@ @PropertyInfo.GetLocalizedDisplayName(StringLocalizerFactory) - + @foreach (var item in SelectItems) { diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TextAreaExtensionProperty.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TextAreaExtensionProperty.razor index 6acf7ba69d..515869efea 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TextAreaExtensionProperty.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TextAreaExtensionProperty.razor @@ -1,4 +1,4 @@ -@typeparam TEntity +@typeparam TEntity @typeparam TResourceType @using Volo.Abp.BlazoriseUI @using Volo.Abp.Localization @@ -9,11 +9,11 @@ @PropertyInfo.GetLocalizedDisplayName(StringLocalizerFactory) - + - + } diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TextExtensionProperty.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TextExtensionProperty.razor index e9d3d7031e..0dfd4a19d2 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TextExtensionProperty.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TextExtensionProperty.razor @@ -9,11 +9,11 @@ @PropertyInfo.GetLocalizedDisplayName(StringLocalizerFactory) - + - + } diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TimeExtensionProperty.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TimeExtensionProperty.razor index 03be9f438a..a0b2333714 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TimeExtensionProperty.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TimeExtensionProperty.razor @@ -7,12 +7,12 @@ { - @PropertyInfo.GetLocalizedDisplayName(StringLocalizerFactory)--> - + @PropertyInfo.GetLocalizedDisplayName(StringLocalizerFactory) + - + } diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/UiMessageAlert.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/UiMessageAlert.razor index 9e0d86c112..c480711a93 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/UiMessageAlert.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/UiMessageAlert.razor @@ -1,5 +1,5 @@ - - + + @if (!Title.IsNullOrEmpty()) { diff --git a/modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/AccountManage.razor b/modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/AccountManage.razor index 47ffa4cc48..2341b9dc5b 100644 --- a/modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/AccountManage.razor +++ b/modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/AccountManage.razor @@ -23,15 +23,15 @@ @L["DisplayName:CurrentPassword"] - + @L["DisplayName:NewPassword"] - + @L["DisplayName:NewPasswordConfirm"] - + @@ -45,25 +45,25 @@ @L["DisplayName:UserName"] - + @L["DisplayName:Name"] - + @L["DisplayName:Surname"] - + @L["DisplayName:Email"] - + @L["DisplayName:PhoneNumber"] - + // TODO: Move this logic to 'ExtensionProperties' component. diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Themes/Basic/LoginDisplay.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Themes/Basic/LoginDisplay.razor index b2af7c2e1d..973912af30 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Themes/Basic/LoginDisplay.razor +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Themes/Basic/LoginDisplay.razor @@ -10,7 +10,7 @@ @inject IStringLocalizer L - + @if (CurrentTenant.Name != null) { diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor index 995dd0ba7f..6c02e4ffc0 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor @@ -10,7 +10,7 @@ @inject IOptions AbpAspNetCoreComponentsWebOptions - + @if (CurrentTenant.Name != null) { diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor index 321a4774b8..c7e6961ea3 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor @@ -2,8 +2,8 @@ @using Microsoft.Extensions.Localization @inherits AbpFeatureManagementComponentBase - - + + @L["Features"]@ProviderKeyDisplayName @@ -41,9 +41,9 @@ { @GetShownName(feature) - + @if (feature.Description != null) { @feature.Description @@ -57,7 +57,7 @@ var selectedValue = SelectionStringValues[feature.Name]; @GetShownName(feature) - + @foreach (var item in items) { @@ -75,7 +75,7 @@ if (feature.ValueType is ToggleStringValueType) { - + @GetShownName(feature) @if (feature.Description != null) diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor index 9c4c22a3a0..2dcaea5eac 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor @@ -39,8 +39,8 @@ @* ************************* CREATE MODAL ************************* *@ @if (HasCreatePermission) { - - + + @L["NewRole"] @@ -51,17 +51,17 @@ @L["DisplayName:RoleName"] * - + - + - @L["DisplayName:IsDefault"] - @L["DisplayName:IsPublic"] + @L["DisplayName:IsDefault"] + @L["DisplayName:IsPublic"] @@ -76,8 +76,8 @@ @* ************************* EDIT MODAL ************************* *@ @if (HasUpdatePermission) { - - + + @L["Edit"] @@ -89,17 +89,17 @@ @L["DisplayName:RoleName"] * - + - + - @L["DisplayName:IsDefault"] - @L["DisplayName:IsPublic"] + @L["DisplayName:IsDefault"] + @L["DisplayName:IsPublic"] diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor index f146ab644f..28cb7f0bed 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor @@ -26,7 +26,7 @@ @L["Search"] - + @@ -46,8 +46,8 @@ @* ************************* CREATE MODAL ************************* *@ @if (HasCreatePermission) { - - + + @L["NewUser"] @@ -65,31 +65,31 @@ @L["DisplayName:UserName"] * - + - + @L["DisplayName:Name"] - + - + @L["DisplayName:Surname"] - + - + @@ -97,8 +97,8 @@ @L["DisplayName:Password"] * - - + + @@ -112,29 +112,29 @@ @L["DisplayName:Email"] * - + - + @L["DisplayName:PhoneNumber"] - + - + - @L["DisplayName:IsActive"] + @L["DisplayName:IsActive"] - @L["DisplayName:LockoutEnabled"] + @L["DisplayName:LockoutEnabled"] @@ -146,7 +146,7 @@ { - @role.Name + @role.Name } } @@ -167,8 +167,8 @@ @* ************************* EDIT MODAL ************************* *@ @if (HasUpdatePermission) { - - + + @L["Edit"] @@ -191,31 +191,31 @@ @L["DisplayName:UserName"] * - + - + @L["DisplayName:Name"] - + - + @L["DisplayName:Surname"] - + - + @@ -223,8 +223,8 @@ @L["DisplayName:Password"] - - + + @@ -238,32 +238,32 @@ @L["DisplayName:Email"] * - + - + @L["DisplayName:PhoneNumber"] - + - + @if (!IsEditCurrentUser) { - @L["DisplayName:IsActive"] + @L["DisplayName:IsActive"] } - @L["DisplayName:LockoutEnabled"] + @L["DisplayName:LockoutEnabled"] @@ -277,7 +277,7 @@ { - @role.Name + @role.Name } } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor index afbfe52c65..2f81832aa4 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor @@ -1,6 +1,6 @@ @inherits Volo.Abp.AspNetCore.Components.AbpComponentBase - - + + @L["Permissions"] - @_entityDisplayName @@ -17,14 +17,14 @@ - + - + @L["SelectAllInAllTabs"] @@ -68,9 +68,9 @@ @L["SelectAllInThisTab"] @@ -84,8 +84,8 @@ @GetShownName(permission) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/ResourcePermissionManagementModal.razor b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/ResourcePermissionManagementModal.razor index bd12891063..ffc33dbfaf 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/ResourcePermissionManagementModal.razor +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/ResourcePermissionManagementModal.razor @@ -4,8 +4,8 @@ @inherits Volo.Abp.AspNetCore.Components.AbpComponentBase @inject AbpBlazorMessageLocalizerHelper LH - - + + @L["ResourcePermissions"] - @ResourceDisplayName @@ -23,7 +23,7 @@ PageSize="PageSize"> - + @L["Edit"] - + @L["Delete"] @@ -47,17 +47,17 @@ @{ - - @context.ProviderName + + @context.Item.ProviderName - @context.ProviderDisplayName + @context.Item.ProviderDisplayName } @{ - foreach (var permission in context.Permissions) + foreach (var permission in context.Item.Permissions) { @permission.DisplayName } @@ -90,8 +90,8 @@ - - + + @L["AddResourcePermission"] @@ -101,8 +101,8 @@ + Value="@CurrentLookupService" + ValueChanged="@OnLookupServiceCheckedValueChanged"> @foreach(var keyLookupService in ResourceProviderKeyLookupServices) { @keyLookupService.DisplayName @@ -122,20 +122,20 @@ class="mt-1"> - + - + @L["ResourcePermissionPermissions"] - @L["GrantAllResourcePermissions"] + @L["GrantAllResourcePermissions"] @foreach (var permission in CreateEntity.Permissions) { - @permission.DisplayName + @permission.DisplayName } @@ -149,8 +149,8 @@ - - + + @L["UpdateResourcePermission"] @@ -160,11 +160,11 @@ @L["ResourcePermissionPermissions"] - @L["GrantAllResourcePermissions"] + @L["GrantAllResourcePermissions"] @foreach (var permission in EditEntity.Permissions) { - @permission.DisplayName + @permission.DisplayName } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor index ad3e6cf559..e3b5f4b69b 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor @@ -11,79 +11,79 @@ @L["DefaultFromDisplayName"] * - + - + @L["DefaultFromAddress"] * - + - + @L["SmtpHost"] - + - + @L["SmtpPort"] - + - + - @L["SmtpEnableSsl"] + @L["SmtpEnableSsl"] - @L["SmtpUseDefaultCredentials"] + @L["SmtpUseDefaultCredentials"] @if (!EmailSettings.SmtpUseDefaultCredentials) { @L["SmtpDomain"] - + - + @L["SmtpUserName"] - + - + @L["SmtpPassword"] - + - + } @@ -105,8 +105,8 @@ @if (HasSendTestEmailPermission) { - - + + @L["SendTestEmail"] @@ -117,41 +117,41 @@ @L["SenderEmailAddress"] - + - + @L["TargetEmailAddress"] - + - + @L["Subject"] - + - + @L["Body"] - + - + diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/TimeZoneSettingGroup/TimeZoneSettingGroupViewComponent.razor b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/TimeZoneSettingGroup/TimeZoneSettingGroupViewComponent.razor index 36e902c7c3..a614328a16 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/TimeZoneSettingGroup/TimeZoneSettingGroupViewComponent.razor +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/TimeZoneSettingGroup/TimeZoneSettingGroupViewComponent.razor @@ -9,7 +9,7 @@ @L["DisplayName:Timezone"] * - + @foreach (var item in TimezoneSettings.TimeZoneItems) { @item.Name diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor index 77dc2b494c..b7313b0c9a 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor @@ -38,8 +38,8 @@ @* ************************* CREATE MODAL ************************* *@ @if ( HasCreatePermission ) { - - + + @L["NewTenant"] @@ -50,21 +50,21 @@ @L["TenantName"] * - + - + @L["DisplayName:AdminEmailAddress"] * - + - + @@ -72,8 +72,8 @@ @L["DisplayName:AdminPassword"] * - - + + @@ -99,8 +99,8 @@ @* ************************* EDIT MODAL ************************* *@ @if ( HasUpdatePermission ) { - - + + @L["Edit"] @@ -111,11 +111,11 @@ @L["TenantName"] * - + - + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj index d5bca102f5..4f7ffff647 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj index fe5c55621a..8331ad2fda 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyCompanyName.MyProjectName.Blazor.WebAssembly.Client.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyCompanyName.MyProjectName.Blazor.WebAssembly.Client.csproj index 34e9a39044..929c554ef2 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyCompanyName.MyProjectName.Blazor.WebAssembly.Client.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyCompanyName.MyProjectName.Blazor.WebAssembly.Client.csproj @@ -9,8 +9,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyCompanyName.MyProjectName.Blazor.Client.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyCompanyName.MyProjectName.Blazor.Client.csproj index 051d683e84..40e7e377f3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyCompanyName.MyProjectName.Blazor.Client.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyCompanyName.MyProjectName.Blazor.Client.csproj @@ -12,8 +12,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj index 8dca10c391..79608c23d8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj @@ -14,8 +14,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj index 40e4ec7305..7e1abc1d28 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Client.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Client.csproj index fe1817a967..46241e9158 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Client.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Client.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client.csproj index bfb297aa01..98503c47ae 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.csproj index 6e8d593847..2b43e95d13 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.csproj @@ -16,8 +16,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyCompanyName.MyProjectName.Blazor.WebApp.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyCompanyName.MyProjectName.Blazor.WebApp.csproj index 538acc4dff..0d5b2f3796 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyCompanyName.MyProjectName.Blazor.WebApp.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyCompanyName.MyProjectName.Blazor.WebApp.csproj @@ -16,8 +16,8 @@ - - + + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host.Client/MyCompanyName.MyProjectName.Blazor.Host.Client.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host.Client/MyCompanyName.MyProjectName.Blazor.Host.Client.csproj index f4911b3d7b..6418ffe6b9 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host.Client/MyCompanyName.MyProjectName.Blazor.Host.Client.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host.Client/MyCompanyName.MyProjectName.Blazor.Host.Client.csproj @@ -10,8 +10,8 @@ - - + + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.csproj index 0d4aec5273..a31f52222b 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.csproj @@ -13,8 +13,8 @@ - - + +