diff --git a/Radzen.Blazor/CartesianSeries.cs b/Radzen.Blazor/CartesianSeries.cs index 1578b33b65d..fc0164ed65d 100644 --- a/Radzen.Blazor/CartesianSeries.cs +++ b/Radzen.Blazor/CartesianSeries.cs @@ -5,8 +5,6 @@ using System.Linq.Dynamic.Core; using Radzen.Blazor.Rendering; using System.Threading.Tasks; -using System.Collections; -using Microsoft.AspNetCore.Components.Rendering; namespace Radzen.Blazor { @@ -410,7 +408,7 @@ public override async Task SetParametersAsync(ParameterView parameters) if (IsDate(CategoryProperty) || IsNumeric(CategoryProperty)) { - Items = Items.AsQueryable().OrderBy(CategoryProperty).ToList(); + Items = Items.AsQueryable().OrderBy(DynamicLinqCustomTypeProvider.ParsingConfig, CategoryProperty).ToList(); } } diff --git a/Radzen.Blazor/Common.cs b/Radzen.Blazor/Common.cs index 7ea6e1bbcf1..e0ac44bd279 100644 --- a/Radzen.Blazor/Common.cs +++ b/Radzen.Blazor/Common.cs @@ -645,12 +645,12 @@ public class SchedulerAppointmentMoveEventArgs { /// /// Gets or sets the appointment data. - /// + /// public AppointmentData Appointment { get; set; } - + /// /// Gets or sets the time span. - /// + /// public TimeSpan TimeSpan { get; set; } } @@ -938,7 +938,7 @@ public FileInfo(IBrowserFile source) /// /// Gets the name of the selected file. /// - public string Name + public string Name { get { @@ -2719,7 +2719,7 @@ public class TreeItemSettings public class TreeItemRenderEventArgs { /// - /// Gets or sets the item HTML attributes. + /// Gets or sets the item HTML attributes. /// public IDictionary Attributes { get; private set; } = new Dictionary(); @@ -2734,7 +2734,7 @@ internal bool CheckedSet() /// Gets or sets a value indicating whether this item is checked. /// /// true if expanded; otherwise, false. - public bool? Checked + public bool? Checked { get { diff --git a/Radzen.Blazor/DataBoundFormComponent.cs b/Radzen.Blazor/DataBoundFormComponent.cs index 1d4483de4ed..d1ac763325c 100644 --- a/Radzen.Blazor/DataBoundFormComponent.cs +++ b/Radzen.Blazor/DataBoundFormComponent.cs @@ -278,7 +278,7 @@ protected virtual IEnumerable View query.Add($"{Enum.GetName(typeof(StringFilterOperator), FilterOperator)}(@0)"); - _view = Query.Where(String.Join(".", query), ignoreCase ? searchText.ToLower() : searchText); + _view = Query.Where(DynamicLinqCustomTypeProvider.ParsingConfig, string.Join(".", query), ignoreCase ? searchText.ToLower() : searchText); } else { diff --git a/Radzen.Blazor/DropDownBase.cs b/Radzen.Blazor/DropDownBase.cs index b023bbbbe6f..05cdb248c4d 100644 --- a/Radzen.Blazor/DropDownBase.cs +++ b/Radzen.Blazor/DropDownBase.cs @@ -741,11 +741,11 @@ protected virtual async System.Threading.Tasks.Task HandleKeyPress(Microsoft.Asp Debounce(DebounceFilter, FilterDelay); } - else + else { - var filteredItems = GetView(items.AsQueryable(), - args.Key, - StringFilterOperator.StartsWith, + var filteredItems = GetView(items.AsQueryable(), + args.Key, + StringFilterOperator.StartsWith, FilterCaseSensitivity.CaseInsensitive) .Cast() .ToList(); @@ -775,7 +775,7 @@ protected virtual async System.Threading.Tasks.Task HandleKeyPress(Microsoft.Asp selectedIndex = result.Index; } await JSRuntime.InvokeVoidAsync("Radzen.selectListItem", list, list, result.Index); - } + } } preventKeydown = false; @@ -1108,7 +1108,7 @@ IQueryable GetView(IQueryable source, string value, StringFilterOperator? op = n } else { - result = source.Where(String.Join(".", query), search); + result = source.Where(DynamicLinqCustomTypeProvider.ParsingConfig, string.Join(".", query), search); } } else @@ -1297,7 +1297,7 @@ internal void UpdateSelectedItems(object item) } else { - selectedItems = selectedItems.AsQueryable().Where($@"!object.Equals(it.{ValueProperty},@0)", value).ToList(); + selectedItems = selectedItems.AsQueryable().Where(DynamicLinqCustomTypeProvider.ParsingConfig, $@"!object.Equals(it.{ValueProperty},@0)", value).ToList(); } } else @@ -1332,7 +1332,7 @@ protected virtual void SelectItemFromValue(object value) } else { - SelectedItem = view.AsQueryable().Where($@"{ValueProperty} == @0", value).FirstOrDefault(); + SelectedItem = view.AsQueryable().Where(DynamicLinqCustomTypeProvider.ParsingConfig, $@"{ValueProperty} == @0", value).FirstOrDefault(); } } else @@ -1359,10 +1359,10 @@ protected virtual void SelectItemFromValue(object value) } else { - item = view.AsQueryable().Where($@"{ValueProperty} == @0", v).FirstOrDefault(); + item = view.AsQueryable().Where(DynamicLinqCustomTypeProvider.ParsingConfig, $@"{ValueProperty} == @0", v).FirstOrDefault(); } - if (!object.Equals(item, null) && !selectedItems.AsQueryable().Where($@"object.Equals(it.{ValueProperty},@0)", v).Any()) + if (!object.Equals(item, null) && !selectedItems.AsQueryable().Where(DynamicLinqCustomTypeProvider.ParsingConfig, $@"object.Equals(it.{ValueProperty},@0)", v).Any()) { selectedItems.Add(item); } diff --git a/Radzen.Blazor/DynamicLinqCustomTypeProvider.cs b/Radzen.Blazor/DynamicLinqCustomTypeProvider.cs new file mode 100644 index 00000000000..2f0599db4ac --- /dev/null +++ b/Radzen.Blazor/DynamicLinqCustomTypeProvider.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq.Dynamic.Core; +using System.Linq.Dynamic.Core.CustomTypeProviders; +using System.Reflection; + +namespace Radzen.Blazor +{ + class DynamicLinqCustomTypeProvider : IDynamicLinkCustomTypeProvider + { + static readonly HashSet empty = []; + public HashSet GetCustomTypes() => empty; + public Dictionary> GetExtensionMethods() => throw new NotSupportedException(); + public Type ResolveType(string typeName) => throw new NotSupportedException(); + public Type ResolveTypeBySimpleName(string simpleTypeName) => throw new NotSupportedException(); + public static ParsingConfig ParsingConfig = new() { CustomTypeProvider = new DynamicLinqCustomTypeProvider() }; + } +} \ No newline at end of file diff --git a/Radzen.Blazor/QueryableExtension.cs b/Radzen.Blazor/QueryableExtension.cs index 09e2ef59616..454ae9761da 100644 --- a/Radzen.Blazor/QueryableExtension.cs +++ b/Radzen.Blazor/QueryableExtension.cs @@ -421,7 +421,7 @@ private static string GetColumnFilter(RadzenDataGridColumn column, string { string filterCaseSensitivityOperator = column.Grid.FilterCaseSensitivity == FilterCaseSensitivity.CaseInsensitive ? ".ToLower()" : ""; value = value?.Replace("\"", "\\\""); - + if (!string.IsNullOrEmpty(value) && columnFilterOperator == FilterOperator.Contains) { return $@"({property} == null ? """" : {property}){filterCaseSensitivityOperator}.Contains(""{value}""{filterCaseSensitivityOperator})"; @@ -950,7 +950,7 @@ public static IQueryable Where(this IQueryable source, IEnumerable i.ToArray()).ToArray()); + return source.Where(DynamicLinqCustomTypeProvider.ParsingConfig, string.Join($" {gridBooleanOperator} ", whereList.Keys), whereList.Values.SelectMany(i => i.ToArray()).ToArray()); } return source; @@ -1053,13 +1053,13 @@ public static IQueryable Where(this IQueryable source, IEnumerable i in @{index})", new object[] { column.GetFilterValue() }); index++; } - else if (IsEnumerable(column.FilterPropertyType) && column.FilterPropertyType != typeof(string) && + else if (IsEnumerable(column.FilterPropertyType) && column.FilterPropertyType != typeof(string) && column.Property != column.FilterProperty && !string.IsNullOrEmpty(column.FilterProperty)) { whereList.Add($@"{(comparison == "NotIn" ? "!" : "")}{column.Property}.Any(i => i.{column.FilterProperty} in @{index})", new object[] { column.GetFilterValue() }); @@ -1109,7 +1109,7 @@ public static IQueryable Where(this IQueryable source, IEnumerable i.ToArray()).ToArray()) + source.Where(DynamicLinqCustomTypeProvider.ParsingConfig, string.Join($" {gridBooleanOperator} ", whereList.Keys), whereList.Values.SelectMany(i => i.ToArray()).ToArray()) : source; } @@ -1143,7 +1143,7 @@ public static IQueryable Where(this IQueryable source, RadzenDataFilter } return filterExpressions.Any() ? - source.Where(string.Join($" {dataFilter.LogicalFilterOperator.ToString().ToLower()} ", filterExpressions), filterValues.SelectMany(i => i.ToArray()).ToArray()) + source.Where(DynamicLinqCustomTypeProvider.ParsingConfig, string.Join($" {dataFilter.LogicalFilterOperator.ToString().ToLower()} ", filterExpressions), filterValues.SelectMany(i => i.ToArray()).ToArray()) : source; } diff --git a/Radzen.Blazor/RadzenAutoComplete.razor b/Radzen.Blazor/RadzenAutoComplete.razor index 69e8bafa0a7..91c1c28e1d9 100644 --- a/Radzen.Blazor/RadzenAutoComplete.razor +++ b/Radzen.Blazor/RadzenAutoComplete.razor @@ -1,7 +1,6 @@ @using Radzen @using Radzen.Blazor.Rendering @using System.Collections -@using System.Linq.Dynamic.Core @using Microsoft.AspNetCore.Components.Forms @using Microsoft.JSInterop diff --git a/Radzen.Blazor/RadzenAutoComplete.razor.cs b/Radzen.Blazor/RadzenAutoComplete.razor.cs index b574535b884..e51f29e9d1d 100644 --- a/Radzen.Blazor/RadzenAutoComplete.razor.cs +++ b/Radzen.Blazor/RadzenAutoComplete.razor.cs @@ -204,7 +204,7 @@ protected override IEnumerable View string textProperty = string.IsNullOrEmpty(TextProperty) ? string.Empty : $".{TextProperty}"; - return Query.Where($"o=>o{textProperty}{filterCaseSensitivityOperator}.{Enum.GetName(typeof(StringFilterOperator), FilterOperator)}(@0)", + return Query.Where(DynamicLinqCustomTypeProvider.ParsingConfig, $"o=>o{textProperty}{filterCaseSensitivityOperator}.{Enum.GetName(typeof(StringFilterOperator), FilterOperator)}(@0)", FilterCaseSensitivity == FilterCaseSensitivity.CaseInsensitive ? searchText.ToLower() : searchText); } diff --git a/Radzen.Blazor/RadzenDataFilterProperty.cs b/Radzen.Blazor/RadzenDataFilterProperty.cs index bdec758ef44..9d98c8fe0a4 100644 --- a/Radzen.Blazor/RadzenDataFilterProperty.cs +++ b/Radzen.Blazor/RadzenDataFilterProperty.cs @@ -299,10 +299,10 @@ public virtual IEnumerable GetFilterOperators() if (PropertyAccess.IsNullableEnum(FilterPropertyType)) return new FilterOperator[] { FilterOperator.Equals, FilterOperator.NotEquals, FilterOperator.IsNull, FilterOperator.IsNotNull }; - if ((typeof(IEnumerable).IsAssignableFrom(FilterPropertyType) || typeof(IEnumerable<>).IsAssignableFrom(FilterPropertyType)) + if ((typeof(IEnumerable).IsAssignableFrom(FilterPropertyType) || typeof(IEnumerable<>).IsAssignableFrom(FilterPropertyType)) && FilterPropertyType != typeof(string)) { - var operators = new FilterOperator[] + var operators = new FilterOperator[] { FilterOperator.Contains, FilterOperator.DoesNotContain, diff --git a/Radzen.Blazor/RadzenDataGrid.razor b/Radzen.Blazor/RadzenDataGrid.razor index a4970e4898f..6786c26d60a 100644 --- a/Radzen.Blazor/RadzenDataGrid.razor +++ b/Radzen.Blazor/RadzenDataGrid.razor @@ -1,4 +1,3 @@ -@using System.Linq.Dynamic.Core @using Microsoft.JSInterop @using Microsoft.AspNetCore.Components.Forms @using Radzen diff --git a/Radzen.Blazor/RadzenDataGrid.razor.cs b/Radzen.Blazor/RadzenDataGrid.razor.cs index c94b0cfda4a..49aaf8980e5 100644 --- a/Radzen.Blazor/RadzenDataGrid.razor.cs +++ b/Radzen.Blazor/RadzenDataGrid.razor.cs @@ -34,14 +34,7 @@ namespace Radzen.Blazor #endif public partial class RadzenDataGrid : PagedDataBoundComponent { - class DynamicLinqCustomTypeProvider : System.Linq.Dynamic.Core.CustomTypeProviders.IDynamicLinkCustomTypeProvider - { - static readonly HashSet empty = []; - public HashSet GetCustomTypes() => empty; - public Dictionary> GetExtensionMethods() => throw new NotSupportedException(); - public Type ResolveType(string typeName) => throw new NotSupportedException(); - public Type ResolveTypeBySimpleName(string simpleTypeName) => throw new NotSupportedException(); - } + #if NET5_0_OR_GREATER /// @@ -344,7 +337,7 @@ public IEnumerable GroupedPagedView if (_groupedPagedView == null) { var orderBy = GetOrderBy(); - var query = Groups.Count(g => g.SortOrder == null) == Groups.Count || !string.IsNullOrEmpty(orderBy) ? View : View.OrderBy(new ParsingConfig() { CustomTypeProvider = new DynamicLinqCustomTypeProvider() }, string.Join(',', Groups.Select(g => $"{(typeof(TItem) == typeof(object) ? g.Property : "np(" + g.Property + ")")} {(g.SortOrder == null ? "" : g.SortOrder == SortOrder.Ascending ? " asc" : " desc")}"))); + var query = Groups.Count(g => g.SortOrder == null) == Groups.Count || !string.IsNullOrEmpty(orderBy) ? View : View.OrderBy(DynamicLinqCustomTypeProvider.ParsingConfig, string.Join(',', Groups.Select(g => $"{(typeof(TItem) == typeof(object) ? g.Property : "np(" + g.Property + ")")} {(g.SortOrder == null ? "" : g.SortOrder == SortOrder.Ascending ? " asc" : " desc")}"))); var v = (AllowPaging && !LoadData.HasDelegate ? query.Skip(skip).Take(PageSize) : query).ToList().AsQueryable(); _groupedPagedView = v.GroupByMany(Groups.Select(g => $"{(typeof(TItem) == typeof(object) ? g.Property : "np(" + g.Property + ")")}").ToArray()).ToList(); } diff --git a/Radzen.Blazor/RadzenDataGridColumn.razor.cs b/Radzen.Blazor/RadzenDataGridColumn.razor.cs index db72090b1ce..5906e6b9ff3 100644 --- a/Radzen.Blazor/RadzenDataGridColumn.razor.cs +++ b/Radzen.Blazor/RadzenDataGridColumn.razor.cs @@ -338,7 +338,7 @@ public string GetFilterPlaceholder() { return FilterPlaceholder ?? string.Empty; } - + /// /// Gets or sets the second filter value. /// @@ -922,7 +922,7 @@ public override async Task SetParametersAsync(ParameterView parameters) return; } } - + if (parameters.DidParameterChange(nameof(FilterOperator), FilterOperator)) { filterOperator = parameters.GetValueOrDefault(nameof(FilterOperator)); @@ -980,7 +980,7 @@ internal IEnumerable GetFilterValues() property = $@"({property} == null ? """" : {property})"; } - filterValues = Grid.Data.AsQueryable().Select(property).Distinct().Cast(propertyType ?? typeof(object)); + filterValues = Grid.Data.AsQueryable().Select(DynamicLinqCustomTypeProvider.ParsingConfig, property).Distinct().Cast(propertyType ?? typeof(object)); } return filterValues; @@ -1240,7 +1240,7 @@ public virtual IEnumerable GetFilterOperators() var isStringOperator = o == FilterOperator.Contains || o == FilterOperator.DoesNotContain || o == FilterOperator.StartsWith || o == FilterOperator.EndsWith || o == FilterOperator.IsEmpty || o == FilterOperator.IsNotEmpty; - if ((FilterPropertyType == typeof(string) || !QueryableExtension.IsEnumerable(FilterPropertyType)) && + if ((FilterPropertyType == typeof(string) || !QueryableExtension.IsEnumerable(FilterPropertyType)) && (o == FilterOperator.In || o == FilterOperator.NotIn)) return false; return FilterPropertyType == typeof(string) || QueryableExtension.IsEnumerable(FilterPropertyType) ? isStringOperator diff --git a/Radzen.Blazor/RadzenDataGridGroupFooterRow.razor b/Radzen.Blazor/RadzenDataGridGroupFooterRow.razor index f408770d873..78c53f4852c 100644 --- a/Radzen.Blazor/RadzenDataGridGroupFooterRow.razor +++ b/Radzen.Blazor/RadzenDataGridGroupFooterRow.razor @@ -34,8 +34,8 @@ GroupResult _groupResult; [Parameter] - public GroupResult GroupResult - { + public GroupResult GroupResult + { get { return _groupResult; diff --git a/Radzen.Blazor/RadzenDropDown.razor b/Radzen.Blazor/RadzenDropDown.razor index 51212563f24..a9bc75b5c4b 100644 --- a/Radzen.Blazor/RadzenDropDown.razor +++ b/Radzen.Blazor/RadzenDropDown.razor @@ -1,6 +1,5 @@ @using Radzen @using System.Linq -@using System.Linq.Dynamic.Core @using Microsoft.AspNetCore.Components.Forms @using Microsoft.JSInterop @using Microsoft.AspNetCore.Components.Rendering diff --git a/Radzen.Blazor/RadzenDropDownDataGrid.razor b/Radzen.Blazor/RadzenDropDownDataGrid.razor index 61eb7e9927c..b40644d81f3 100644 --- a/Radzen.Blazor/RadzenDropDownDataGrid.razor +++ b/Radzen.Blazor/RadzenDropDownDataGrid.razor @@ -1,7 +1,6 @@ @using Radzen @using System.Collections @using System.Collections.Generic -@using System.Linq.Dynamic.Core @using Microsoft.AspNetCore.Components.Forms @using Microsoft.JSInterop @typeparam TValue diff --git a/Radzen.Blazor/RadzenDropDownDataGrid.razor.cs b/Radzen.Blazor/RadzenDropDownDataGrid.razor.cs index 07a4af17578..5fc191afa0f 100644 --- a/Radzen.Blazor/RadzenDropDownDataGrid.razor.cs +++ b/Radzen.Blazor/RadzenDropDownDataGrid.razor.cs @@ -44,7 +44,7 @@ public partial class RadzenDropDownDataGrid : DropDownBase /// /// Gets or sets a value indicating whether the selected items will be displayed as chips. Set to false by default. - /// Requires to be set to true. + /// Requires to be set to true. /// /// true to display the selected items as chips; otherwise, false. [Parameter] @@ -263,19 +263,19 @@ protected override async System.Threading.Tasks.Task OpenPopup(string key = "Arr /// [Parameter] public string NextPageAriaLabel { get; set; } = "Go to next page."; - + /// /// Gets or sets the pager's numeric page number buttons' title attributes. /// [Parameter] public string PageTitleFormat { get; set; } = "Page {0}"; - + /// /// Gets or sets the pager's numeric page number buttons' aria-label attributes. /// [Parameter] public string PageAriaLabelFormat { get; set; } = "Go to page {0}."; - + /// /// Gets or sets the empty text. /// @@ -364,7 +364,7 @@ protected override async System.Threading.Tasks.Task OpenPopup(string key = "Arr protected override Task OnAfterRenderAsync(bool firstRender) { if (firstRender) - { + { if(Visible && LoadData.HasDelegate && Data == null) { LoadData.InvokeAsync(new Radzen.LoadDataArgs() { Skip = 0, Top = PageSize, Filter = searchText }); @@ -466,16 +466,16 @@ async Task OnLoadData(LoadDataArgs args) foreach (string word in words) { - query = query.Where(string.Join(" || ", grid.ColumnsCollection.Where(c => c.Filterable && IsColumnFilterPropertyTypeString(c)) + query = query.Where(DynamicLinqCustomTypeProvider.ParsingConfig, string.Join(" || ", grid.ColumnsCollection.Where(c => c.Filterable && IsColumnFilterPropertyTypeString(c)) .Select(c => GetPropertyFilterExpression(c.GetFilterProperty(), filterCaseSensitivityOperator))), FilterCaseSensitivity == FilterCaseSensitivity.CaseInsensitive ? word.ToLower() : word); } } else { - query = query.Where(string.Join(" || ", grid.ColumnsCollection.Where(c => c.Filterable && IsColumnFilterPropertyTypeString(c)) + query = query.Where(DynamicLinqCustomTypeProvider.ParsingConfig, string.Join(" || ", grid.ColumnsCollection.Where(c => c.Filterable && IsColumnFilterPropertyTypeString(c)) .Select(c => GetPropertyFilterExpression(c.GetFilterProperty(), filterCaseSensitivityOperator))), - FilterCaseSensitivity == FilterCaseSensitivity.CaseInsensitive ? searchText.ToLower() : searchText); + FilterCaseSensitivity == FilterCaseSensitivity.CaseInsensitive ? searchText.ToLower() : searchText); } } else @@ -486,13 +486,13 @@ async Task OnLoadData(LoadDataArgs args) foreach (string word in words) { - query = query.Where($"{GetPropertyFilterExpression(TextProperty, filterCaseSensitivityOperator)}", + query = query.Where(DynamicLinqCustomTypeProvider.ParsingConfig, $"{GetPropertyFilterExpression(TextProperty, filterCaseSensitivityOperator)}", FilterCaseSensitivity == FilterCaseSensitivity.CaseInsensitive ? word.ToLower() : word); } } else { - query = query.Where($"{GetPropertyFilterExpression(TextProperty, filterCaseSensitivityOperator)}", + query = query.Where(DynamicLinqCustomTypeProvider.ParsingConfig, $"{GetPropertyFilterExpression(TextProperty, filterCaseSensitivityOperator)}", FilterCaseSensitivity == FilterCaseSensitivity.CaseInsensitive ? searchText.ToLower() : searchText); } } @@ -500,7 +500,7 @@ async Task OnLoadData(LoadDataArgs args) if (!string.IsNullOrEmpty(args.OrderBy)) { - query = query.OrderBy(args.OrderBy); + query = query.OrderBy(DynamicLinqCustomTypeProvider.ParsingConfig, args.OrderBy); } count = await Task.FromResult(query.Count()); @@ -553,7 +553,7 @@ protected override void SelectItemFromValue(object value) { if (!string.IsNullOrEmpty(ValueProperty)) { - var item = Query.Where($@"{ValueProperty} == @0", value).FirstOrDefault(); + var item = Query.Where(DynamicLinqCustomTypeProvider.ParsingConfig, $@"{ValueProperty} == @0", value).FirstOrDefault(); if (item != null) { SelectedItem = item; @@ -577,8 +577,8 @@ protected override void SelectItemFromValue(object value) { foreach (object v in valueList) { - var item = Query.Where($@"{ValueProperty} == @0", v).FirstOrDefault(); - if (item != null && !selectedItems.AsQueryable().Where($@"object.Equals(it.{ValueProperty},@0)", v).Any()) + var item = Query.Where(DynamicLinqCustomTypeProvider.ParsingConfig, $@"{ValueProperty} == @0", v).FirstOrDefault(); + if (item != null && !selectedItems.AsQueryable().Where(DynamicLinqCustomTypeProvider.ParsingConfig, $@"object.Equals(it.{ValueProperty},@0)", v).Any()) { selectedItems.Add(item); } @@ -679,7 +679,7 @@ protected override async Task HandleKeyPress(KeyboardEventArgs args, bool isFilt { await grid.PrevPage(); } - else + else { await grid.NextPage(); } @@ -772,10 +772,10 @@ async Task DebounceFilter() async Task CloseOnEscape(KeyboardEventArgs args) { - var key = args.Code != null ? args.Code : args.Key; - if (key == "Escape") + var key = args.Code != null ? args.Code : args.Key; + if (key == "Escape") { - await JSRuntime.InvokeVoidAsync("Radzen.closePopup", PopupID); + await JSRuntime.InvokeVoidAsync("Radzen.closePopup", PopupID); } } @@ -889,7 +889,7 @@ async Task OnRowSelect(object item) { await SelectItem(item); } - + } private async Task OnChipRemove(object item) diff --git a/Radzen.Blazor/RadzenDropDownItem.razor b/Radzen.Blazor/RadzenDropDownItem.razor index d5d54ddb0a8..1d73d9a6ff8 100644 --- a/Radzen.Blazor/RadzenDropDownItem.razor +++ b/Radzen.Blazor/RadzenDropDownItem.razor @@ -1,5 +1,4 @@ @using Radzen -@using System.Linq.Dynamic.Core @using Microsoft.AspNetCore.Components.Forms @using Microsoft.JSInterop @typeparam TValue diff --git a/Radzen.Blazor/RadzenListBox.razor b/Radzen.Blazor/RadzenListBox.razor index e494a1ba2d2..a36255cfd50 100644 --- a/Radzen.Blazor/RadzenListBox.razor +++ b/Radzen.Blazor/RadzenListBox.razor @@ -1,5 +1,4 @@ @using Radzen -@using System.Linq.Dynamic.Core @using Microsoft.AspNetCore.Components.Forms @using Microsoft.JSInterop @using Microsoft.AspNetCore.Components.Rendering diff --git a/Radzen.Blazor/RadzenListBoxItem.razor b/Radzen.Blazor/RadzenListBoxItem.razor index 17eed0306f1..f45b7de56f2 100644 --- a/Radzen.Blazor/RadzenListBoxItem.razor +++ b/Radzen.Blazor/RadzenListBoxItem.razor @@ -1,5 +1,4 @@ @using Radzen -@using System.Linq.Dynamic.Core @using Microsoft.AspNetCore.Components.Forms @using Microsoft.JSInterop @typeparam TValue diff --git a/Radzen.Blazor/RadzenMask.razor b/Radzen.Blazor/RadzenMask.razor index 46383a80442..cb942b34a28 100644 --- a/Radzen.Blazor/RadzenMask.razor +++ b/Radzen.Blazor/RadzenMask.razor @@ -1,7 +1,6 @@ @using Radzen @using Microsoft.AspNetCore.Components.Forms @using Microsoft.JSInterop -@using System.Linq.Dynamic.Core; @inherits FormComponentWithAutoComplete @if (Visible) { diff --git a/Radzen.Blazor/RadzenScheduler.razor b/Radzen.Blazor/RadzenScheduler.razor index 6aa195e5396..7b16c6e9faf 100644 --- a/Radzen.Blazor/RadzenScheduler.razor +++ b/Radzen.Blazor/RadzenScheduler.razor @@ -1,6 +1,5 @@ @using Radzen @using System.Globalization; -@using System.Linq.Dynamic.Core; @using Microsoft.JSInterop @inherits RadzenComponent diff --git a/Radzen.Blazor/RadzenScheduler.razor.cs b/Radzen.Blazor/RadzenScheduler.razor.cs index 341bee60053..a87163b65c1 100644 --- a/Radzen.Blazor/RadzenScheduler.razor.cs +++ b/Radzen.Blazor/RadzenScheduler.razor.cs @@ -558,7 +558,7 @@ public IEnumerable GetAppointmentsInRange(DateTime start, DateT var predicate = $"{EndProperty} >= @0 && {StartProperty} < @1"; appointments = Data.AsQueryable() - .Where(predicate, start, end) + .Where(DynamicLinqCustomTypeProvider.ParsingConfig, predicate, start, end) .ToList() .Select(item => new AppointmentData { Start = startGetter(item), End = endGetter(item), Text = textGetter(item), Data = item }); diff --git a/Radzen.Blazor/RadzenSelectBar.razor b/Radzen.Blazor/RadzenSelectBar.razor index 6a5613d1728..a0806173ffb 100644 --- a/Radzen.Blazor/RadzenSelectBar.razor +++ b/Radzen.Blazor/RadzenSelectBar.razor @@ -1,7 +1,6 @@ @using Radzen.Blazor.Rendering @using System.Linq @using System.Collections -@using System.Linq.Dynamic.Core @typeparam TValue @using Microsoft.AspNetCore.Components.Forms @inherits FormComponent diff --git a/Radzen.Blazor/RadzenSlider.razor b/Radzen.Blazor/RadzenSlider.razor index 42f655bb3e3..aaa80fd2ca4 100644 --- a/Radzen.Blazor/RadzenSlider.razor +++ b/Radzen.Blazor/RadzenSlider.razor @@ -2,9 +2,8 @@ @using System.Collections @using Microsoft.AspNetCore.Components.Forms @using Microsoft.JSInterop -@using System.Linq.Dynamic.Core; @using Radzen.Blazor.Rendering; - + @typeparam TValue @inherits FormComponent @if (Visible)