Skip to content

Commit aaf23fe

Browse files
committed
upgraded to .net 9
1 parent 56729ed commit aaf23fe

20 files changed

+354
-156
lines changed

.editorconfig

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
###############################
2+
# PandaTech Editor Config #
3+
###############################
4+
5+
6+
################################
7+
# ReSharper Generated Settings #
8+
################################
9+
10+
[*]
11+
charset = utf-8-bom
12+
end_of_line = crlf
13+
trim_trailing_whitespace = false
14+
insert_final_newline = false
15+
indent_style = space
16+
indent_size = 4
17+
18+
# Microsoft .NET properties
19+
csharp_preferred_modifier_order = public, private, protected, internal, file, new, static, abstract, virtual, sealed, readonly, override, extern, unsafe, volatile, async, required:suggestion
20+
csharp_style_prefer_utf8_string_literals = true:suggestion
21+
csharp_style_var_elsewhere = true:suggestion
22+
csharp_style_var_for_built_in_types = true:suggestion
23+
csharp_style_var_when_type_is_apparent = true:suggestion
24+
dotnet_naming_rule.unity_serialized_field_rule.import_to_resharper = True
25+
dotnet_naming_rule.unity_serialized_field_rule.resharper_description = Unity serialized field
26+
dotnet_naming_rule.unity_serialized_field_rule.resharper_guid = 5f0fdb63-c892-4d2c-9324-15c80b22a7ef
27+
dotnet_naming_rule.unity_serialized_field_rule.severity = warning
28+
dotnet_naming_rule.unity_serialized_field_rule.style = lower_camel_case_style
29+
dotnet_naming_rule.unity_serialized_field_rule.symbols = unity_serialized_field_symbols
30+
dotnet_naming_style.lower_camel_case_style.capitalization = camel_case
31+
dotnet_naming_symbols.unity_serialized_field_symbols.applicable_accessibilities = *
32+
dotnet_naming_symbols.unity_serialized_field_symbols.applicable_kinds =
33+
dotnet_naming_symbols.unity_serialized_field_symbols.resharper_applicable_kinds = unity_serialised_field
34+
dotnet_naming_symbols.unity_serialized_field_symbols.resharper_required_modifiers = instance
35+
dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary:none
36+
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:none
37+
dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary:none
38+
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
39+
dotnet_style_predefined_type_for_member_access = true:suggestion
40+
dotnet_style_qualification_for_event = false:suggestion
41+
dotnet_style_qualification_for_field = false:suggestion
42+
dotnet_style_qualification_for_method = false:suggestion
43+
dotnet_style_qualification_for_property = false:suggestion
44+
dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion
45+
46+
# ReSharper properties
47+
resharper_align_linq_query = true
48+
resharper_align_multiline_calls_chain = true
49+
resharper_apply_auto_detected_rules = false
50+
resharper_braces_for_for = required
51+
resharper_braces_for_foreach = required
52+
resharper_braces_for_ifelse = required
53+
resharper_braces_for_while = required
54+
resharper_cpp_insert_final_newline = true
55+
resharper_csharp_indent_size = 3
56+
resharper_csharp_max_enum_members_on_line = 0
57+
resharper_csharp_tab_width = 3
58+
resharper_csharp_wrap_arguments_style = chop_if_long
59+
resharper_csharp_wrap_parameters_style = chop_if_long
60+
resharper_formatter_off_tag = @formatter:off
61+
resharper_formatter_on_tag = @formatter:on
62+
resharper_formatter_tags_enabled = true
63+
resharper_keep_existing_declaration_parens_arrangement = false
64+
resharper_keep_existing_expr_member_arrangement = false
65+
resharper_keep_existing_initializer_arrangement = false
66+
resharper_keep_existing_switch_expression_arrangement = false
67+
resharper_max_array_initializer_elements_on_line = 0
68+
resharper_max_initializer_elements_on_line = 0
69+
resharper_place_accessorholder_attribute_on_same_line = false
70+
resharper_place_accessor_attribute_on_same_line = false
71+
resharper_place_field_attribute_on_same_line = false
72+
resharper_place_simple_anonymousmethod_on_single_line = false
73+
resharper_place_simple_embedded_statement_on_same_line = false
74+
resharper_place_simple_initializer_on_single_line = false
75+
resharper_place_simple_property_pattern_on_single_line = false
76+
resharper_use_indent_from_vs = false
77+
resharper_wrap_after_property_in_chained_method_calls = true
78+
resharper_wrap_array_initializer_style = chop_if_long
79+
resharper_wrap_chained_method_calls = chop_always
80+
resharper_wrap_linq_expressions = chop_always
81+
resharper_wrap_list_pattern = chop_if_long
82+
resharper_wrap_object_and_collection_initializer_style = chop_always
83+
resharper_wrap_property_pattern = chop_always
84+
85+
# ReSharper inspection severities
86+
resharper_arrange_redundant_parentheses_highlighting = hint
87+
resharper_arrange_this_qualifier_highlighting = hint
88+
resharper_arrange_type_member_modifiers_highlighting = hint
89+
resharper_arrange_type_modifiers_highlighting = hint
90+
resharper_built_in_type_reference_style_for_member_access_highlighting = hint
91+
resharper_built_in_type_reference_style_highlighting = hint
92+
resharper_enforce_foreach_statement_braces_highlighting = warning
93+
resharper_enforce_for_statement_braces_highlighting = warning
94+
resharper_enforce_if_statement_braces_highlighting = warning
95+
resharper_enforce_lock_statement_braces_highlighting = warning
96+
resharper_enforce_using_statement_braces_highlighting = warning
97+
resharper_enforce_while_statement_braces_highlighting = warning
98+
resharper_mvc_action_not_resolved_highlighting = warning
99+
resharper_mvc_area_not_resolved_highlighting = warning
100+
resharper_mvc_controller_not_resolved_highlighting = warning
101+
resharper_mvc_masterpage_not_resolved_highlighting = warning
102+
resharper_mvc_partial_view_not_resolved_highlighting = warning
103+
resharper_mvc_template_not_resolved_highlighting = warning
104+
resharper_mvc_view_component_not_resolved_highlighting = warning
105+
resharper_mvc_view_component_view_not_resolved_highlighting = warning
106+
resharper_mvc_view_not_resolved_highlighting = warning
107+
resharper_razor_assembly_not_resolved_highlighting = warning
108+
resharper_redundant_base_qualifier_highlighting = warning
109+
resharper_web_config_module_not_resolved_highlighting = warning
110+
resharper_web_config_type_not_resolved_highlighting = warning
111+
resharper_web_config_wrong_module_highlighting = warning
112+
113+
[{*.har,*.jsb2,*.jsb3,*.json,*.jsonc,*.postman_collection,*.postman_collection.json,*.postman_environment,*.postman_environment.json,.babelrc,.eslintrc,.prettierrc,.stylelintrc,.ws-context,bowerrc,jest.config}]
114+
indent_style = space
115+
indent_size = 2
116+
117+
[{*.yaml,*.yml}]
118+
indent_style = space
119+
indent_size = 2
120+
121+
[*.cs]
122+
indent_style = space
123+
indent_size = 3
124+
tab_width = 3
125+
126+
[*.{appxmanifest,asax,ascx,aspx,axaml,build,c,c++,c++m,cc,ccm,cginc,compute,cp,cpp,cppm,cshtml,cu,cuh,cxx,cxxm,dtd,fs,fsi,fsscript,fsx,fx,fxh,h,hh,hlsl,hlsli,hlslinc,hpp,hxx,inc,inl,ino,ipp,ixx,master,ml,mli,mpp,mq4,mq5,mqh,mxx,nuspec,paml,razor,resw,resx,shader,skin,tpp,usf,ush,uxml,vb,xaml,xamlx,xoml,xsd}]
127+
indent_style = space
128+
indent_size = 4
129+
tab_width = 4
130+
131+
#########################
132+
# Custom added settings #
133+
#########################
134+
[*.cs]
135+
dotnet_diagnostic.cs8600.severity = error #Converting null literal or possible null value to non-nullable type.
136+
dotnet_diagnostic.cs8601.severity = error #Possible null reference assignment.
137+
dotnet_diagnostic.cs8602.severity = error #possible dereference of a null reference
138+
dotnet_diagnostic.cs8603.severity = error #possible null reference return
139+
dotnet_diagnostic.cs8604.severity = error #possible null reference argument for parameter
140+
dotnet_diagnostic.cs8605.severity = error #Unboxing a possibly null value
141+
dotnet_diagnostic.cs8618.severity = error # Non-nullable field is uninitialized. Consider declaring as nullable.
142+
dotnet_diagnostic.cs8625.severity = error # Cannot convert null literal to non-nullable reference type.
143+
dotnet_diagnostic.cs8762.severity = error # Nullability of reference types in type doesn't match overridden member.
144+
dotnet_diagnostic.cs1717.severity = error #variable is assigned to itself
145+
dotnet_diagnostic.cs1718.severity = error #comparison made to same variable
146+
dotnet_diagnostic.cs0659.severity = error #overriding object.Equals but not overriding object.GetHashCode
147+
dotnet_diagnostic.cs0251.severity = error #Indexing an array with a negative index (array indices always start at zero)
148+
dotnet_diagnostic.s3363.severity = none #Never set DateTime as PrimaryKey. Ignored as we never do it but have warnings for cache entities.
149+
dotnet_diagnostic.ca2016.severity = error #Forwarding cancellation tokens
150+
csharp_style_namespace_declarations = file_scoped:error
151+
resharper_entity_framework_model_validation_unlimited_string_length_highlighting = none
152+
153+
154+
#########################
155+
# VS added settings #
156+
#########################
157+
158+
[*.cs]
159+
csharp_style_namespace_declarations = file_scoped:error
160+
csharp_indent_labels = one_less_than_current
161+
csharp_using_directive_placement = outside_namespace:silent
162+
csharp_prefer_simple_using_statement = true:suggestion
163+
csharp_prefer_braces = true:silent
164+
csharp_style_prefer_method_group_conversion = true:silent
165+
csharp_style_prefer_top_level_statements = true:silent
166+
csharp_style_prefer_primary_constructors = true:suggestion
167+
csharp_style_expression_bodied_methods = false:silent
168+
csharp_style_expression_bodied_constructors = false:silent
169+
csharp_style_expression_bodied_operators = false:silent
170+
csharp_style_expression_bodied_properties = true:silent
171+
csharp_style_expression_bodied_indexers = true:silent
172+
csharp_style_expression_bodied_accessors = true:silent
173+
csharp_style_expression_bodied_lambdas = true:silent
174+
csharp_style_expression_bodied_local_functions = false:silent
175+
176+
[{*.yaml,*.yml}]
177+
dotnet_style_namespace_match_folder = true:suggestion
178+
dotnet_style_operator_placement_when_wrapping = beginning_of_line
179+
tab_width = 3
180+
dotnet_style_coalesce_expression = true:suggestion
181+
dotnet_style_null_propagation = true:suggestion
182+
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
183+
dotnet_style_prefer_auto_properties = true:silent
184+
dotnet_style_object_initializer = true:suggestion
185+
dotnet_style_collection_initializer = true:suggestion
186+
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
187+
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
188+
189+
[*.csv]
190+
indent_style = tab
191+
tab_width = 4

.github/workflows/main.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ jobs:
1616

1717
steps:
1818
- name: Checkout
19-
uses: actions/checkout@v3
19+
uses: actions/checkout@v4
2020

2121
- name: Setup .NET Core
22-
uses: actions/setup-dotnet@v3
22+
uses: actions/setup-dotnet@v4
2323
with:
2424
global-json-file: global.json
2525

global.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"sdk": {
3-
"version": "8.0.300",
4-
"rollForward": "latestMajor"
3+
"version": "9.0.100",
4+
"rollForward": "latestMinor"
55
}
66
}

src/GridifyExtensions/Abstractions/IOrderThenBy.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
public interface IOrderThenBy
44
{
5-
IOrderThenBy ThenBy(string column);
6-
IOrderThenBy ThenByDescending(string column);
7-
}
5+
IOrderThenBy ThenBy(string column);
6+
IOrderThenBy ThenByDescending(string column);
7+
}

src/GridifyExtensions/DbContextFunction/PostgresFunctions.cs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@
22

33
namespace GridifyExtensions.DbContextFunction;
44

5-
public class PostgresFunctions : DbContext //By inheriting PostgresFunctions you can use the Substr function in your queries
5+
public class
6+
PostgresFunctions : DbContext //By inheriting PostgresFunctions you can use the Substr function in your queries
67
{
7-
protected PostgresFunctions(DbContextOptions options) : base(options)
8-
{
9-
}
8+
protected PostgresFunctions(DbContextOptions options) : base(options)
9+
{
10+
}
1011

11-
[DbFunction("substr", null, IsBuiltIn = true)]
12-
public static byte[] Substr(byte[] target, int start, int count)
13-
{
14-
throw new NotImplementedException();
15-
}
12+
[DbFunction("substr", IsBuiltIn = true)]
13+
public static byte[] Substr(byte[] target, int start, int count)
14+
{
15+
throw new NotImplementedException();
16+
}
1617
}
Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
namespace GridifyExtensions.Enums;
2+
23
public enum AggregateType
34
{
4-
UniqueCount,
5-
Sum,
6-
Average,
7-
Min,
8-
Max
9-
}
5+
UniqueCount,
6+
Sum,
7+
Average,
8+
Min,
9+
Max
10+
}

src/GridifyExtensions/Extensions/QueryableExtensions.cs

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
using Gridify;
1+
using System.Linq.Expressions;
2+
using Gridify;
23
using GridifyExtensions.Enums;
34
using GridifyExtensions.Models;
45
using Microsoft.EntityFrameworkCore;
5-
using System.Linq.Expressions;
66

77
namespace GridifyExtensions.Extensions;
88

@@ -38,9 +38,11 @@ public static async Task<PagedResponse<TDto>> FilterOrderAndGetPagedAsync<TEntit
3838
public static Task<PagedResponse<TEntity>> FilterOrderAndGetPagedAsync<TEntity>(this IQueryable<TEntity> query,
3939
GridifyQueryModel model,
4040
CancellationToken cancellationToken = default)
41-
where TEntity : class =>
42-
query.AsNoTracking()
43-
.FilterOrderAndGetPagedAsync(model, x => x, cancellationToken);
41+
where TEntity : class
42+
{
43+
return query.AsNoTracking()
44+
.FilterOrderAndGetPagedAsync(model, x => x, cancellationToken);
45+
}
4446

4547
public static IQueryable<TEntity> ApplyFilter<TEntity>(this IQueryable<TEntity> query, GridifyQueryModel model)
4648
where TEntity : class
@@ -142,7 +144,7 @@ public static async Task<CursoredResponse<object>> ColumnDistinctValuesAsync<TEn
142144
.Distinct()
143145
.OrderBy(x => x)
144146
.Take(model.PageSize)
145-
.ToListAsync(cancellationToken: cancellationToken);
147+
.ToListAsync(cancellationToken);
146148

147149
return new CursoredResponse<object>(result, model.PageSize);
148150
}
@@ -168,14 +170,13 @@ public static async Task<CursoredResponse<TDto>> FilterOrderAndGetCursoredAsync<
168170
CancellationToken cancellationToken = default)
169171
where TEntity : class
170172
{
171-
172173
var mapper = EntityGridifyMapperByType[typeof(TEntity)] as FilterMapper<TEntity>;
173174

174175
var queryModel = model.ToGridifyQueryModel();
175176
queryModel.OrderBy ??= mapper!.GetDefaultOrderExpression();
176177

177178
query = query.ApplyFilteringAndOrdering(queryModel, mapper);
178-
179+
179180
var dtoQuery = query.Select(selectExpression);
180181

181182
var data = await dtoQuery
@@ -188,10 +189,12 @@ public static async Task<CursoredResponse<TDto>> FilterOrderAndGetCursoredAsync<
188189
public static Task<CursoredResponse<TEntity>> FilterOrderAndGetCursoredAsync<TEntity>(this IQueryable<TEntity> query,
189190
GridifyCursoredQueryModel model,
190191
CancellationToken cancellationToken = default)
191-
where TEntity : class =>
192-
query
193-
.AsNoTracking()
194-
.FilterOrderAndGetCursoredAsync(model, x => x, cancellationToken);
192+
where TEntity : class
193+
{
194+
return query
195+
.AsNoTracking()
196+
.FilterOrderAndGetCursoredAsync(model, x => x, cancellationToken);
197+
}
195198

196199
public static async Task<object> AggregateAsync<TEntity>(this IQueryable<TEntity> query,
197200
AggregateQueryModel model,
@@ -213,7 +216,7 @@ public static async Task<object> AggregateAsync<TEntity>(this IQueryable<TEntity
213216
AggregateType.Average => await filteredQuery.AverageAsync(x => (decimal)x, cancellationToken),
214217
AggregateType.Min => await filteredQuery.MinAsync(cancellationToken),
215218
AggregateType.Max => await filteredQuery.MaxAsync(cancellationToken),
216-
_ => throw new NotImplementedException(),
219+
_ => throw new NotImplementedException()
217220
};
218221
}
219222

@@ -231,7 +234,7 @@ public static IEnumerable<MappingModel> GetMappings<TEntity>()
231234
? ((x.To.Body as MethodCallExpression)!.Arguments.LastOrDefault() as LambdaExpression)
232235
?.ReturnType
233236
.Name ?? x.To.Body.Type.Name
234-
: x.To.Body.Type.Name,
237+
: x.To.Body.Type.Name
235238
});
236239
}
237240

src/GridifyExtensions/Extensions/WebApplicationBuilderExtensions.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
using Gridify;
1+
using System.Reflection;
2+
using Gridify;
23
using GridifyExtensions.Models;
34
using GridifyExtensions.Operators;
45
using Microsoft.AspNetCore.Builder;
5-
using System.Reflection;
66

77
namespace GridifyExtensions.Extensions;
88

@@ -25,7 +25,7 @@ private static void AddGridify(Assembly[] assemblies)
2525
GridifyGlobalConfiguration.EnableEntityFrameworkCompatibilityLayer();
2626
GridifyGlobalConfiguration.CustomOperators.Register<FlagOperator>();
2727

28-
QueryableExtensions.EntityGridifyMapperByType =
28+
QueryableExtensions.EntityGridifyMapperByType =
2929
assemblies.SelectMany(assembly => assembly
3030
.GetTypes()
3131
.Where(t => t.IsClass

0 commit comments

Comments
 (0)