From 922252b5126cab8fbbaa41e95af5e758e2f07049 Mon Sep 17 00:00:00 2001 From: nemanjarogic Date: Wed, 7 Sep 2022 21:48:11 +0200 Subject: [PATCH] Update codebase --- .editorconfig | 610 ------------------ .../Components/EventAggregator.cs | 2 +- .../Infrastructure/OrderManagementContext.cs | 4 +- .../OrderProcessing/IServiceLocator.cs | 8 +- .../OrderProcessing/ServiceLocator.cs | 8 +- .../ProductSpecification/Domain/Entity.cs | 2 +- .../Infrastructure/OrderManagementContext1.cs | 4 +- .../Repositories/Repository1.cs | 7 +- .../Infrastructure/OrderManagementContext2.cs | 4 +- .../Components/Common/Aircraft.cs | 5 +- .../Subscribers/GoogleSubscriber.cs | 2 +- .../Subscribers/MicrosoftSubscriber.cs | 2 +- .../States/Common/Doneness.cs | 7 +- .../SteakCookingExample/States/Uncooked.cs | 3 +- .../Extensions/SystemExtension.cs | 9 +- .../DotNetStringExecutor.cs | 4 +- 16 files changed, 40 insertions(+), 641 deletions(-) delete mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 8cc2f9f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,610 +0,0 @@ -# To learn more about .editorconfig see https://aka.ms/editorconfigdocs -############################### -# Core EditorConfig Options # -############################### -# All files -root = true -[*] -indent_style = space -# Code files -[*.{cs,csx,vb,vbx}] -indent_size = 4 -tab_width = 4 -end_of_line = crlf -insert_final_newline = true -charset = utf-8-bom -max_line_lenght=120 -############################### -# .NET Coding Conventions # -############################### -[*.{cs,vb}] -# Organize usings -dotnet_separate_import_directive_groups = false -file_header_template = unset -dotnet_sort_system_directives_first = true:suggestion -# this. preferences -dotnet_style_qualification_for_field = false:warning -dotnet_style_qualification_for_property = false:warning -dotnet_style_qualification_for_method = false:warning -dotnet_style_qualification_for_event = false:warning -# Language keywords vs BCL types preferences -dotnet_style_predefined_type_for_locals_parameters_members = true:warning -dotnet_style_predefined_type_for_member_access = true:warning -# Parentheses preferences -dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:warning -dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:suggestion -dotnet_style_parentheses_in_other_operators = never_if_unnecessary:suggestion -dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:suggestion -# Modifier preferences -dotnet_style_require_accessibility_modifiers = always:error -dotnet_style_readonly_field = true:warning -# Expression-level preferences -dotnet_style_coalesce_expression = true:error -dotnet_style_collection_initializer = true:warning -dotnet_style_explicit_tuple_names = true:error -dotnet_style_null_propagation = true:error -dotnet_style_object_initializer = true:warning -dotnet_style_operator_placement_when_wrapping = beginning_of_line -dotnet_style_prefer_auto_properties = true:error -dotnet_style_prefer_compound_assignment = true:error -dotnet_style_prefer_conditional_expression_over_assignment = true:warning -dotnet_style_prefer_conditional_expression_over_return = true:warning -dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion -dotnet_style_prefer_inferred_tuple_names = true:suggestion -dotnet_style_prefer_is_null_check_over_reference_equality_method = true:error -dotnet_style_prefer_simplified_boolean_expressions = true:warning -dotnet_style_prefer_simplified_interpolation = true:warning -# Parameter preferences -dotnet_diagnostic_unused_parameters = all:warning -dotnet_remove_unnecessary_suppression_exclusions = category: ReSharper -############################### -# C# Coding Conventions # -############################### -[*.cs] -# var preferences -csharp_style_var_elsewhere = true:suggestion -csharp_style_var_for_built_in_types = true:warning -csharp_style_var_when_type_is_apparent = true:warning -# Expression-bodied members -csharp_style_expression_bodied_accessors = true:warning -csharp_style_expression_bodied_constructors = false:silent -csharp_style_expression_bodied_indexers = true:silent -csharp_style_expression_bodied_lambdas = true:silent -csharp_style_expression_bodied_local_functions = false:silent -csharp_style_expression_bodied_methods = when_on_single_line:suggestion -csharp_style_expression_bodied_operators = false:silent -csharp_style_expression_bodied_properties = true:warning -# Pattern matching preferences -csharp_style_pattern_matching_over_as_with_null_check = true:warning -csharp_style_pattern_matching_over_is_with_cast_check = true:warning -csharp_style_prefer_switch_expression = true:suggestion -csharp_style_prefer_not_pattern = true:warning -# Null-checking preferences -csharp_style_throw_expression = true:warning -csharp_style_conditional_delegate_call = true:suggestion -# Modifier preferences -csharp_prefer_static_local_function = true:suggestion -csharp_preferred_modifier_order = public,internal,protected,private,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:warning -# Code-block preferences -csharp_prefer_braces = true:suggestion -csharp_prefer_simple_using_statement = true:error -csharp_style_implicit_object_creation_when_type_is_apparent = true:warning -# Expression-level preferences -csharp_prefer_simple_default_expression = true:error -csharp_style_deconstructed_variable_declaration = true:silent -csharp_style_inlined_variable_declaration = true:warning -csharp_style_pattern_local_over_anonymous_function = true:suggestion -csharp_style_prefer_index_operator = true:warning -csharp_style_prefer_range_operator = true:suggestion -csharp_style_throw_expression = true:warning -csharp_style_unused_value_assignment_preference = discard_variable:error -csharp_style_unused_value_expression_statement_preference = discard_variable:error - -# 'using' directive preferences -csharp_using_directive_placement = outside_namespace:error -# Namespace preferences -csharp_style_namespace_declarations = file_scoped:warning -############################### -# C# Formatting Rules # -############################### -# New line preferences -csharp_new_line_before_catch = true -csharp_new_line_before_else = true -csharp_new_line_before_finally = true -csharp_new_line_before_members_in_anonymous_types = true -csharp_new_line_before_members_in_object_initializers = true -csharp_new_line_before_open_brace = all -csharp_new_line_between_query_expression_clauses = true -# Indentation preferences -csharp_indent_block_contents = true -csharp_indent_braces = false -csharp_indent_case_contents = true -csharp_indent_case_contents_when_block = true -csharp_indent_labels = flush_left -csharp_indent_switch_labels = true -# Space preferences -csharp_space_after_cast = false -csharp_space_after_colon_in_inheritance_clause = true -csharp_space_after_comma = true -csharp_space_after_dot = false -csharp_space_after_keywords_in_control_flow_statements = true -csharp_space_after_semicolon_in_for_statement = true -csharp_space_around_binary_operators = before_and_after -csharp_space_around_declaration_statements = false -csharp_space_before_colon_in_inheritance_clause = true -csharp_space_before_comma = false -csharp_space_before_dot = false -csharp_space_before_open_square_brackets = false -csharp_space_before_semicolon_in_for_statement = false -csharp_space_between_empty_square_brackets = false -csharp_space_between_method_call_empty_parameter_list_parentheses = false -csharp_space_between_method_call_name_and_opening_parenthesis = false -csharp_space_between_method_call_parameter_list_parentheses = false -csharp_space_between_method_declaration_empty_parameter_list_parentheses = false -csharp_space_between_method_declaration_name_and_open_parenthesis = false -csharp_space_between_method_declaration_parameter_list_parentheses = false -csharp_space_between_parentheses = false -csharp_space_between_square_brackets = false -# Wrapping preferences -csharp_preserve_single_line_statements = false -csharp_preserve_single_line_blocks = true -############################### -# Naming Conventions # -############################### -# Style Definitions -dotnet_naming_style.pascal_case_style.capitalization = pascal_case -dotnet_naming_style.camel_case_style.capitalization = camel_case -dotnet_naming_style.underscore_prefix_style.capitalization = camel_case -dotnet_naming_style.underscore_prefix_style.required_prefix = _ -dotnet_naming_style.interface_prefix_style.capitalization = pascal_case -dotnet_naming_style.interface_prefix_style.required_prefix = I -# Use PascalCase for types -dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion -dotnet_naming_rule.types_should_be_pascal_case.symbols = types -dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case_style -dotnet_naming_symbols.types.applicable_kinds = class,struct,enum -dotnet_naming_symbols.types.applicable_accessibilities = * -# Use camelCase for parameters and local variables -dotnet_naming_rule.locals_should_be_camel_case.severity = suggestion -dotnet_naming_rule.locals_should_be_camel_case.symbols = locals -dotnet_naming_rule.locals_should_be_camel_case.style = camel_case_style -dotnet_naming_symbols.locals.applicable_kinds = parameter -# Use PascalCase for constant fields -dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion -dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields -dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style -dotnet_naming_symbols.constant_fields.applicable_kinds = field -dotnet_naming_symbols.constant_fields.applicable_accessibilities = * -dotnet_naming_symbols.constant_fields.required_modifiers = const -# Use PascalCase for readonly static fields -dotnet_naming_rule.static_readonly_fields_should_be_pascal_case.severity = suggestion -dotnet_naming_rule.static_readonly_fields_should_be_pascal_case.symbols = static_readonly_fields -dotnet_naming_rule.static_readonly_fields_should_be_pascal_case.style = pascal_case_style -dotnet_naming_symbols.static_readonly_fields.applicable_kinds = field -dotnet_naming_symbols.static_readonly_fields.applicable_accessibilities = * -dotnet_naming_symbols.static_readonly_fields.required_modifiers = static,readonly -# Use underscore prefix and camel case for (non-constant) fields -dotnet_naming_rule.fields_should_be_prefixed_underscore.severity = suggestion -dotnet_naming_rule.fields_should_be_prefixed_underscore.symbols = fields -dotnet_naming_rule.fields_should_be_prefixed_underscore.style = underscore_prefix_style -dotnet_naming_symbols.fields.applicable_kinds = field -dotnet_naming_symbols.fields.applicable_accessibilities = * -# Use PascalCase for all members except fields -dotnet_naming_rule.members_should_be_pascal_case.severity = suggestion -dotnet_naming_rule.members_should_be_pascal_case.symbols = members -dotnet_naming_rule.members_should_be_pascal_case.style = pascal_case_style -dotnet_naming_symbols.members.applicable_kinds = property,method,event,delegate -dotnet_naming_symbols.members.applicable_accessibilities = * -# Use PascalCase and I prefix for interfaces -dotnet_naming_rule.interfaces_should_be_prefixed_with_i.severity = suggestion -dotnet_naming_rule.interfaces_should_be_prefixed_with_I.symbols = interfaces -dotnet_naming_rule.interfaces_should_be_prefixed_with_i.style = interface_prefix_style -dotnet_naming_symbols.interfaces.applicable_kinds = interface -dotnet_naming_symbols.interfaces.applicable_accessibilities = * -################################## -# Code Quality Conventions # -################################## -dotnet_diagnostic.CA1000.severity = warning # CA1000: Do not declare static members on generic types -dotnet_diagnostic.CA1001.severity = error # CA1001: Types that own disposable fields should be disposable -dotnet_diagnostic.CA1002.severity = warning # CA1002: Do not expose generic lists -dotnet_diagnostic.CA1003.severity = error # CA1003: Use generic event handler instances -dotnet_diagnostic.CA1005.severity = warning # CA1005: Avoid excessive parameters on generic types -dotnet_diagnostic.CA1008.severity = warning # CA1008: Enums should have zero value -dotnet_diagnostic.CA1010.severity = suggestion # CA1010: Collections should implement generic interface -dotnet_diagnostic.CA1012.severity = error # CA1012: Abstract types should not have constructors -dotnet_diagnostic.CA1014.severity = silent # CA1014: Mark assemblies with CLSCompliantAttribute -dotnet_diagnostic.CA1016.severity = warning # CA1016: Mark assemblies with AssemblyVersionAttribute -dotnet_diagnostic.CA1017.severity = silent # CA1017: Mark assemblies with ComVisibleAttribute -dotnet_diagnostic.CA1018.severity = error # CA1018: Mark attributes with AttributeUsageAttribute -dotnet_diagnostic.CA1019.severity = silent # CA1019: Define accessors for attribute arguments -dotnet_diagnostic.CA1021.severity = error # CA1021: Avoid out parameters -dotnet_diagnostic.CA1024.severity = warning # CA1024: Use properties where appropriate -dotnet_diagnostic.CA1027.severity = warning # CA1027: Mark enums with FlagsAttribute -dotnet_diagnostic.CA1028.severity = error # CA1028: Enum storage should be Int32 -dotnet_diagnostic.CA1030.severity = suggestion # CA1030: Use events where appropriate -dotnet_diagnostic.CA1031.severity = silent # CA1031: Do not catch general exception types -dotnet_diagnostic.CA1032.severity = silent # CA1032: Implement standard exception constructors -dotnet_diagnostic.CA1033.severity = warning # CA1033: Interface methods should be callable by child types -dotnet_diagnostic.CA1034.severity = none # CA1034: Nested types should not be visible -dotnet_diagnostic.CA1036.severity = silent # CA1036: Override methods on comparable types -dotnet_diagnostic.CA1040.severity = warning # CA1040: Avoid empty interfaces -dotnet_diagnostic.CA1041.severity = error # CA1041: Provide ObsoleteAttribute message -dotnet_diagnostic.CA1043.severity = warning # CA1043: Use integral or string argument for indexers -dotnet_diagnostic.CA1044.severity = error # CA1044: Properties should not be write only -dotnet_diagnostic.CA1045.severity = error # CA1045: Do not pass types by reference -dotnet_diagnostic.CA1046.severity = silent # CA1046: Do not overload operator equals on reference types -dotnet_diagnostic.CA1047.severity = error # CA1047: Do not declare protected members in sealed types -dotnet_diagnostic.CA1050.severity = error # CA1050: Declare types in namespaces -dotnet_diagnostic.CA1051.severity = warning # CA1051: Do not declare visible instance fields -dotnet_diagnostic.CA1052.severity = warning # CA1052: Static holder types should be Static or NotInheritable -dotnet_diagnostic.CA1053.severity = error # CA1053: Static holder types should not have default constructors -dotnet_diagnostic.CA1054.severity = suggestion # CA1054: URI parameters should not be strings -dotnet_diagnostic.CA1055.severity = suggestion # CA1055: URI return values should not be strings -dotnet_diagnostic.CA1056.severity = suggestion # CA1056: URI properties should not be strings -dotnet_diagnostic.CA1058.severity = error # CA1058: Types should not extend certain base types -dotnet_diagnostic.CA1060.severity = error # CA1060: Move P/Invokes to NativeMethods class -dotnet_diagnostic.CA1061.severity = error # CA1061: Do not hide base class methods -dotnet_code_quality.CA1062.exclude_extension_method_this_parameter = true # CA1062: Validate arguments of public methods -dotnet_diagnostic.CA1062.severity = warning # CA1062: Validate arguments of public methods -dotnet_diagnostic.CA1063.severity = error # CA1063: Implement IDisposable correctly -dotnet_diagnostic.CA1064.severity = error # CA1064: Exceptions should be public -dotnet_diagnostic.CA1065.severity = error # CA1065: Do not raise exceptions in unexpected locations -dotnet_diagnostic.CA1066.severity = silent # CA1066: Implement IEquatable when overriding Equals -dotnet_diagnostic.CA1067.severity = warning # CA1067: Override Equals when implementing IEquatable -dotnet_diagnostic.CA1068.severity = warning # CA1068: CancellationToken parameters must come last -dotnet_diagnostic.CA1069.severity = error # CA1069: Enums should not have duplicate values -dotnet_diagnostic.CA1070.severity = error # CA1070: Do not declare event fields as virtual -dotnet_diagnostic.CA1200.severity = warning # CA1200: Avoid using cref tags with a prefix -dotnet_diagnostic.CA1303.severity = none # CA1303: Do not pass literals as localized parameters -dotnet_diagnostic.CA1304.severity = warning # CA1304: Specify CultureInfo -dotnet_diagnostic.CA1305.severity = suggestion # CA1305: Specify IFormatProvider -dotnet_diagnostic.CA1307.severity = warning # CA1307: Specify StringComparison for clarity -dotnet_diagnostic.CA1308.severity = suggestion # CA1308: Normalize strings to uppercase -dotnet_diagnostic.CA1309.severity = warning # CA1309: Use ordinal StringComparison -dotnet_diagnostic.CA1310.severity = warning # CA1310: Specify StringComparison for correctness -dotnet_diagnostic.CA1401.severity = error # CA1401: P/Invokes should not be visible -dotnet_diagnostic.CA1416.severity = error # CA1416: Validate platform compatibility -dotnet_diagnostic.CA1417.severity = error # CA1417: Do not use OutAttribute on string parameters for P/Invokes -dotnet_diagnostic.CA1418.severity = error # CA1418: Validate platform compatibility -dotnet_diagnostic.CA1419.severity = error # CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle' -dotnet_diagnostic.CA1501.severity = warning # CA1501: Avoid excessive inheritance -dotnet_diagnostic.CA1502.severity = warning # CA1502: Avoid excessive complexity -dotnet_diagnostic.CA1505.severity = warning # CA1505: Avoid unmaintainable code -dotnet_diagnostic.CA1506.severity = warning # CA1506: Avoid excessive class coupling -dotnet_diagnostic.CA1507.severity = error # CA1507: Use nameof in place of string -dotnet_diagnostic.CA1508.severity = error # CA1508: Avoid dead conditional code -dotnet_diagnostic.CA1509.severity = error # CA1509: Invalid entry in code metrics configuration file -dotnet_diagnostic.CA1700.severity = error # CA1700: Do not name enum values 'Reserved' -dotnet_diagnostic.CA1707.severity = error # CA1707: Identifiers should not contain underscores -dotnet_diagnostic.CA1708.severity = error # CA1708: Identifiers should differ by more than case -dotnet_diagnostic.CA1710.severity = warning # CA1710: Identifiers should have correct suffix -dotnet_diagnostic.CA1711.severity = warning # CA1711: Identifiers should not have incorrect suffix -dotnet_diagnostic.CA1712.severity = error # CA1712: Do not prefix enum values with type name -dotnet_diagnostic.CA1713.severity = warning # CA1713: Events should not have before or after prefix -dotnet_diagnostic.CA1714.severity = suggestion # CA1714: Flags enums should have plural names -dotnet_diagnostic.CA1715.severity = warning # CA1715: Identifiers should have correct prefix -dotnet_diagnostic.CA1716.severity = suggestion # CA1716: Identifiers should not match keywords -dotnet_diagnostic.CA1717.severity = suggestion # CA1717: Only FlagsAttribute enums should have plural names -dotnet_diagnostic.CA1720.severity = warning # CA1720: Identifiers should not contain type names -dotnet_diagnostic.CA1721.severity = warning # CA1721: Property names should not match get methods -dotnet_diagnostic.CA1724.severity = none # CA1724: Type names should not match namespaces -dotnet_diagnostic.CA1725.severity = warning # CA1725: Parameter names should match base declaration -dotnet_diagnostic.CA1727.severity = error # CA1727: Use PascalCase for named placeholders -dotnet_diagnostic.CA1801.severity = error # CA1801: Review unused parameters -dotnet_diagnostic.CA1802.severity = error # CA1802: Use Literals Where Appropriate -dotnet_diagnostic.CA1805.severity = warning # CA1805: Do not initialize unnecessarily. -dotnet_diagnostic.CA1806.severity = warning # CA1806: Do not ignore method results -dotnet_diagnostic.CA1810.severity = warning # CA1810: Initialize reference type static fields inline -dotnet_diagnostic.CA1812.severity = none # CA1812: Avoid uninstantiated internal classes -dotnet_diagnostic.CA1813.severity = error # CA1813: Avoid unsealed attributes -dotnet_diagnostic.CA1814.severity = warning # CA1814: Prefer jagged arrays over multidimensional -dotnet_diagnostic.CA1815.severity = error # CA1815: Override equals and operator equals on value types -dotnet_diagnostic.CA1816.severity = error # CA1816: Call GC.SuppressFinalize correctly -dotnet_diagnostic.CA1819.severity = warning # CA1819: Properties should not return arrays -dotnet_diagnostic.CA1820.severity = error # CA1820: Test for empty strings using string length -dotnet_diagnostic.CA1821.severity = error # CA1821: Remove empty finalizers -dotnet_diagnostic.CA1822.severity = warning # CA1822: Mark members as static -dotnet_diagnostic.CA1823.severity = error # CA1823: Avoid unused private fields -dotnet_diagnostic.CA1824.severity = warning # CA1824: Mark assemblies with NeutralResourcesLanguageAttribute -dotnet_diagnostic.CA1825.severity = error # CA1825: Avoid zero-length array allocations -dotnet_diagnostic.CA1826.severity = suggestion # CA1826: Use property instead of Linq Enumerable method -dotnet_diagnostic.CA1827.severity = error # CA1827: Do not use Count/LongCount when Any can be used -dotnet_diagnostic.CA1828.severity = error # CA1828: Do not use CountAsync/LongCountAsync when AnyAsync can be used -dotnet_diagnostic.CA1829.severity = error # CA1829: Use Length/Count property instead of Enumerable.Count method -dotnet_diagnostic.CA1830.severity = warning # CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder. -dotnet_diagnostic.CA1831.severity = suggestion # CA1831: Use AsSpan instead of Range-based indexers for string when appropriate -dotnet_diagnostic.CA1832.severity = suggestion # CA1832: Use AsSpan or AsMemory instead of Range-based indexers for getting ReadOnlySpan or ReadOnlyMemory portion of an array -dotnet_diagnostic.CA1833.severity = suggestion # CA1833: Use AsSpan or AsMemory instead of Range-based indexers for getting Span or Memory portion of an array -dotnet_diagnostic.CA1834.severity = warning # CA1834: Use StringBuilder.Append(char) for single character strings -dotnet_diagnostic.CA1835.severity = warning # CA1835: Prefer the memory-based overloads of ReadAsync/WriteAsync methods in stream-based classes -dotnet_diagnostic.CA1836.severity = error # CA1836: Prefer IsEmpty over Count when available -dotnet_diagnostic.CA1837.severity = error # CA1837: Use Environment.ProcessId instead of Process.GetCurrentProcess().Id -dotnet_diagnostic.CA1838.severity = error # CA1838: Avoid StringBuilder parameters for P/Invokes -dotnet_diagnostic.CA1839.severity = error # CA1839: Use Environment.ProcessPath instead of Process.GetCurrentProcess().MainModule.FileName -dotnet_diagnostic.CA1840.severity = error # CA1840: Use Environment.CurrentManagedThreadId instead of Thread.CurrentThread.ManagedThreadId -dotnet_diagnostic.CA1841.severity = warning # CA1841: Prefer Dictionary Contains methods -dotnet_diagnostic.CA1842.severity = error # CA1842: Do not use 'WhenAll' with a single task -dotnet_diagnostic.CA1843.severity = error # CA1843: Do not use 'WaitAll' with a single task -dotnet_diagnostic.CA1844.severity = warning # CA1844: Provide memory-based overrides of async methods when subclassing 'Stream' -dotnet_diagnostic.CA1845.severity = error # CA1845: Use span-based 'string.Concat' -dotnet_diagnostic.CA1846.severity = error # CA1846: Prefer AsSpan over Substring -dotnet_diagnostic.CA1847.severity = error # CA1847: Use string.Contains(char) instead of string.Contains(string) with single characters -dotnet_diagnostic.CA1848.severity = none # CA1848: Use the LoggerMessage delegates -dotnet_diagnostic.CA1849.severity = error # CA1849: Call async methods when in an async method -dotnet_diagnostic.CA1850.severity = warning # CA1850: Prefer static HashData method over ComputeHash -dotnet_diagnostic.CA2000.severity = error # CA2000: Dispose objects before losing scope -dotnet_diagnostic.CA2002.severity = error # CA2002: Do not lock on objects with weak identity -dotnet_diagnostic.CA2007.severity = none # CA2007: Do not directly await a Task -dotnet_diagnostic.CA2008.severity = none # CA2008: Do not create tasks without passing a TaskScheduler -dotnet_diagnostic.CA2009.severity = warning # CA2009: Do not call ToImmutableCollection on an ImmutableCollection value -dotnet_diagnostic.CA2011.severity = warning # CA2011: Do not assign property within its setter -dotnet_diagnostic.CA2012.severity = warning # CA2012: Use ValueTasks correctly -dotnet_diagnostic.CA2013.severity = error # CA2013: Do not use ReferenceEquals with value types -dotnet_diagnostic.CA2014.severity = error # CA2014: Do not use stackalloc in loops -dotnet_diagnostic.CA2015.severity = error # CA2015: Do not define finalizers for types derived from MemoryManager -dotnet_diagnostic.CA2016.severity = error # CA2016: Forward the CancellationToken parameter to methods that take one -dotnet_diagnostic.CA2017.severity = error # CA2017: Parameter count mismatch -dotnet_diagnostic.CA2018.severity = error # CA2018: The count argument to Buffer.BlockCopy should specify the number of bytes to copy -dotnet_diagnostic.CA2100.severity = error # CA2100: Review SQL queries for security vulnerabilities -dotnet_diagnostic.CA2101.severity = error # CA2101: Specify marshaling for P/Invoke string arguments -dotnet_diagnostic.CA2109.severity = error # CA2109: Review visible event handlers -dotnet_diagnostic.CA2119.severity = error # CA2119: Seal methods that satisfy private interfaces -dotnet_diagnostic.CA2153.severity = error # CA2153: Avoid handling Corrupted State Exceptions -dotnet_diagnostic.CA2200.severity = error # CA2200: Rethrow to preserve stack details -dotnet_diagnostic.CA2201.severity = error # CA2201: Do not raise reserved exception types -dotnet_diagnostic.CA2207.severity = error # CA2207: Initialize value type static fields inline -dotnet_diagnostic.CA2208.severity = error # CA2208: Instantiate argument exceptions correctly -dotnet_diagnostic.CA2211.severity = error # CA2211: Non-constant fields should not be visible -dotnet_diagnostic.CA2213.severity = error # CA2213: Disposable fields should be disposed -dotnet_diagnostic.CA2214.severity = error # CA2214: Do not call overridable methods in constructors -dotnet_diagnostic.CA2215.severity = error # CA2215: Dispose methods should call base class dispose -dotnet_diagnostic.CA2216.severity = error # CA2216: Disposable types should declare finalizer -dotnet_diagnostic.CA2217.severity = error # CA2217: Do not mark enums with FlagsAttribute -dotnet_diagnostic.CA2218.severity = error # CA2218: Override GetHashCode on overriding Equals -dotnet_diagnostic.CA2219.severity = error # CA2219: Do not raise exceptions in exception clauses -dotnet_diagnostic.CA2224.severity = warning # CA2224: Override Equals on overloading operator equals -dotnet_diagnostic.CA2225.severity = error # CA2225: Operator overloads have named alternates -dotnet_diagnostic.CA2226.severity = warning # CA2226: Operators should have symmetrical overloads -dotnet_diagnostic.CA2227.severity = none # CA2227: Collection properties should be read only -dotnet_diagnostic.CA2229.severity = error # CA2229: Implement serialization constructors -dotnet_diagnostic.CA2231.severity = silent # CA2231: Overload operator equals on overriding ValueType.Equals -dotnet_diagnostic.CA2234.severity = suggestion # CA2234: Pass System.Uri objects instead of strings -dotnet_diagnostic.CA2235.severity = warning # CA2235: Mark all non-serializable fields -dotnet_diagnostic.CA2237.severity = warning # CA2237: Mark ISerializable types with SerializableAttribute -dotnet_diagnostic.CA2241.severity = error # CA2241: Provide correct arguments to formatting methods -dotnet_diagnostic.CA2242.severity = error # CA2242: Test for NaN correctly -dotnet_diagnostic.CA2243.severity = error # CA2243: Attribute string literals should parse correctly -dotnet_diagnostic.CA2244.severity = error # CA2244: Do not duplicate indexed element initializations -dotnet_diagnostic.CA2245.severity = error # CA2245: Do not assign a property to itself -dotnet_diagnostic.CA2246.severity = error # CA2246: Do not assign a symbol and its member in the same statement -dotnet_diagnostic.CA2247.severity = error # CA2247: Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum -dotnet_diagnostic.CA2248.severity = error # CA2248: Provide correct enum argument to Enum.HasFlag -dotnet_diagnostic.CA2249.severity = warning # CA2249: Consider using String.Contains instead of String.IndexOf -dotnet_diagnostic.CA2250.severity = error # CA2250: Use ThrowIfCancellationRequested -dotnet_diagnostic.CA2251.severity = warning # CA2251: Use String.Equals over String.Compare -dotnet_diagnostic.CA2252.severity = error # CA2252: Opt in to preview features before using them -dotnet_diagnostic.CA2253.severity = error # CA2253: Named placeholders should not be numeric values -dotnet_diagnostic.CA2254.severity = none # CA2254: Template should be a static expression -dotnet_diagnostic.CA2255.severity = error # CA2255: The ModuleInitializer attribute should not be used in libraries -dotnet_diagnostic.CA2256.severity = error # CA2256: All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface -dotnet_diagnostic.CA2257.severity = error # CA2257: Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static' -dotnet_diagnostic.CA2258.severity = error # CA2258: Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported -dotnet_diagnostic.CA2300.severity = error # CA2300: Do not use insecure deserializer BinaryFormatter -dotnet_diagnostic.CA2301.severity = error # CA2301: Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder -dotnet_diagnostic.CA2302.severity = error # CA2302: Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize -dotnet_diagnostic.CA2305.severity = error # CA2305: Do not use insecure deserializer LosFormatter -dotnet_diagnostic.CA2310.severity = error # CA2310: Do not use insecure deserializer NetDataContractSerializer -dotnet_diagnostic.CA2311.severity = error # CA2311: Do not deserialize without first setting NetDataContractSerializer.Binder -dotnet_diagnostic.CA2312.severity = error # CA2312: Ensure NetDataContractSerializer.Binder is set before deserializing -dotnet_diagnostic.CA2315.severity = error # CA2315: Do not use insecure deserializer ObjectStateFormatter -dotnet_diagnostic.CA2321.severity = warning # CA2321: Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver -dotnet_diagnostic.CA2322.severity = warning # CA2322: Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing -dotnet_diagnostic.CA2326.severity = error # CA2326: Do not use TypeNameHandling values other than None -dotnet_diagnostic.CA2327.severity = warning # CA2327: Do not use insecure JsonSerializerSettings -dotnet_diagnostic.CA2328.severity = warning # CA2328: Ensure that JsonSerializerSettings are secure -dotnet_diagnostic.CA2329.severity = warning # CA2329: Do not deserialize with JsonSerializer using an insecure configuration -dotnet_diagnostic.CA2330.severity = warning # CA2330: Ensure that JsonSerializer has a secure configuration when deserializing -dotnet_diagnostic.CA2350.severity = error # CA2350: Ensure DataTable.ReadXml()'s input is trusted -dotnet_diagnostic.CA2351.severity = error # CA2351: Ensure DataSet.ReadXml()'s input is trusted -dotnet_diagnostic.CA2352.severity = error # CA2352: Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks -dotnet_diagnostic.CA2353.severity = error # CA2353: Unsafe DataSet or DataTable in serializable type -dotnet_diagnostic.CA2354.severity = error # CA2354: Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attack -dotnet_diagnostic.CA2355.severity = error # CA2355: Unsafe DataSet or DataTable in deserialized object graph -dotnet_diagnostic.CA2356.severity = error # CA2356: Unsafe DataSet or DataTable in web deserialized object graph -dotnet_diagnostic.CA2361.severity = error # CA2361: Ensure autogenerated class containing DataSet.ReadXml() is not used with untrusted data -dotnet_diagnostic.CA2362.severity = error # CA2362: Unsafe DataSet or DataTable in autogenerated serializable type can be vulnerable to remote code execution attacks -dotnet_diagnostic.CA3001.severity = error # CA3001: Review code for SQL injection vulnerabilities -dotnet_diagnostic.CA3002.severity = error # CA3002: Review code for XSS vulnerabilities -dotnet_diagnostic.CA3003.severity = error # CA3003: Review code for file path injection vulnerabilities -dotnet_diagnostic.CA3004.severity = error # CA3004: Review code for information disclosure vulnerabilities -dotnet_diagnostic.CA3005.severity = error # CA3005: Review code for LDAP injection vulnerabilities -dotnet_diagnostic.CA3006.severity = error # CA3006: Review code for process command injection vulnerabilities -dotnet_diagnostic.CA3007.severity = error # CA3007: Review code for open redirect vulnerabilities -dotnet_diagnostic.CA3008.severity = error # CA3008: Review code for XPath injection vulnerabilities -dotnet_diagnostic.CA3009.severity = error # CA3009: Review code for XML injection vulnerabilities -dotnet_diagnostic.CA3010.severity = error # CA3010: Review code for XAML injection vulnerabilities -dotnet_diagnostic.CA3011.severity = error # CA3011: Review code for DLL injection vulnerabilities -dotnet_diagnostic.CA3012.severity = error # CA3012: Review code for regex injection vulnerabilities -dotnet_diagnostic.CA3061.severity = error # CA3061: Do not add schema by URL -dotnet_diagnostic.CA3075.severity = error # CA3075: Insecure DTD Processing -dotnet_diagnostic.CA3076.severity = error # CA3076: Insecure XSLT Script Execution -dotnet_diagnostic.CA3077.severity = error # CA3077: Insecure Processing in API Design, XML Document and XML Text Reader -dotnet_diagnostic.CA3147.severity = error # CA3147: Mark verb handlers with ValidateAntiForgeryToken -dotnet_diagnostic.CA5350.severity = error # CA5350: Do Not Use Weak Cryptographic Algorithms -dotnet_diagnostic.CA5351.severity = error # CA5350: Do Not Use Broken Cryptographic Algorithms -dotnet_diagnostic.CA5358.severity = error # CA5358: Do Not Use Unsafe Cipher Modes -dotnet_diagnostic.CA5359.severity = error # CA5359: Do not disable certificate validation -dotnet_diagnostic.CA5360.severity = error # CA5360: Do not call dangerous methods in deserialization -dotnet_diagnostic.CA5361.severity = error # CA5361: Do not disable SChannel use of strong crypto -dotnet_diagnostic.CA5362.severity = error # CA5362: Potential reference cycle in deserialized object graph -dotnet_diagnostic.CA5363.severity = error # CA5363: Do not disable request validation -dotnet_diagnostic.CA5364.severity = error # CA5364: Do not use deprecated security protocols -dotnet_diagnostic.CA5365.severity = error # CA5365: Do Not Disable HTTP Header Checking -dotnet_diagnostic.CA5366.severity = error # CA5366: Use XmlReader For DataSet Read XML -dotnet_diagnostic.CA5367.severity = error # CA5367: Do not serialize types with pointer fields -dotnet_diagnostic.CA5368.severity = silent # CA5368: Set ViewStateUserKey For Classes Derived From Page -dotnet_diagnostic.CA5369.severity = error # CA5369: Use XmlReader for Deserialize -dotnet_diagnostic.CA5370.severity = warning # CA5370: Use XmlReader for validating reader -dotnet_diagnostic.CA5371.severity = error # CA5371: Use XmlReader for schema read -dotnet_diagnostic.CA5372.severity = error # CA5372: Use XmlReader for XPathDocument -dotnet_diagnostic.CA5373.severity = error # CA5373: Do not use obsolete key derivation function -dotnet_diagnostic.CA5374.severity = error # CA5374: Do not use XslTransform -dotnet_diagnostic.CA5375.severity = warning # CA5375: Do not use account shared access signature -dotnet_diagnostic.CA5376.severity = warning # CA5376: Use SharedAccessProtocol HttpsOnly -dotnet_diagnostic.CA5377.severity = error # CA5377: Use container level access policy -dotnet_diagnostic.CA5378.severity = error # CA5378: Do not disable ServicePointManagerSecurityProtocols -dotnet_diagnostic.CA5379.severity = error # CA5379: Do not use weak key derivation function algorithm -dotnet_diagnostic.CA5380.severity = error # CA5380: Do not add certificates to root store -dotnet_diagnostic.CA5381.severity = error # CA5381: Ensure certificates are not added to root store -dotnet_diagnostic.CA5382.severity = error # CA5382: Use secure cookies in ASP.NET Core -dotnet_diagnostic.CA5383.severity = error # CA5383: Ensure use secure cookies in ASP.NET Core -dotnet_diagnostic.CA5384.severity = error # CA5384: Do not use digital signature algorithm (DSA) -dotnet_diagnostic.CA5385.severity = error # CA5385: Use Rivest–Shamir–Adleman (RSA) algorithm with sufficient key size -dotnet_diagnostic.CA5386.severity = error # CA5386: Avoid hardcoding SecurityProtocolType value -dotnet_diagnostic.CA5387.severity = error # CA5387: Do not use weak key derivation function with insufficient iteration count -dotnet_diagnostic.CA5388.severity = error # CA5388: Ensure sufficient iteration count when using weak key derivation function -dotnet_diagnostic.CA5389.severity = error # CA5389: Do not add archive item's path to the target file system path -dotnet_diagnostic.CA5390.severity = error # CA5390: Do not hard-code encryption key -dotnet_diagnostic.CA5391.severity = warning # CA5391: Use antiforgery tokens in ASP.NET Core MVC controllers -dotnet_diagnostic.CA5392.severity = warning # CA5392: Use DefaultDllImportSearchPaths attribute for P/Invokes -dotnet_diagnostic.CA5393.severity = warning # CA5393: Do not use unsafe DllImportSearchPath value -dotnet_diagnostic.CA5394.severity = warning # CA5394: Do not use insecure randomness -dotnet_diagnostic.CA5395.severity = error # CA5395: Miss HttpVerb attribute for action methods -dotnet_diagnostic.CA5396.severity = error # CA5396: Set HttpOnly to true for HttpCookie -dotnet_diagnostic.CA5397.severity = error # CA5397: Do not use deprecated SslProtocols values -dotnet_diagnostic.CA5398.severity = error # CA5398: Avoid hardcoded SslProtocols values -dotnet_diagnostic.CA5399.severity = error # CA5399: Definitely disable HttpClient certificate revocation list check -dotnet_diagnostic.CA5400.severity = error # CA5400: Ensure HttpClient certificate revocation list check is not disabled -dotnet_diagnostic.CA5401.severity = error # CA5401: Do not use CreateEncryptor with non-default IV -dotnet_diagnostic.CA5402.severity = error # CA5402: Use CreateEncryptor with the default IV -dotnet_diagnostic.CA5403.severity = error # CA5403: Do not hard-code certificate -dotnet_diagnostic.CA5404.severity = error # CA5404: Do not disable token validation checks -dotnet_diagnostic.CA5405.severity = error # CA5405: Do not always skip token validation in delegates -dotnet_diagnostic.EF1001.severity = error # EF1001: internal ef core api usage -dotnet_diagnostic.IL3000.severity = warning # IL3000: Avoid using accessing Assembly file path when publishing as a single-file -dotnet_diagnostic.IL3001.severity = warning # IL3001: Avoid using accessing Assembly file path when publishing as a single-file -############################### -# Legacy severity definitions # -############################### -dotnet_diagnostic.IDE0001.severity = warning # IDE0001: Simplify name -dotnet_diagnostic.IDE0002.severity = warning # IDE0002: Simplify member access -dotnet_diagnostic.IDE0004.severity = error # IDE0004: Remove Unnecessary Cast -dotnet_diagnostic.IDE0004WithoutSuggestion.severity = error # IDE0004: Remove Unnecessary Cast -dotnet_diagnostic.IDE0005.severity = warning # IDE0005: Using directive is unnecessary -dotnet_diagnostic.IDE0005_gen.severity = warning # IDE0005: Using directive is unnecessary -dotnet_diagnostic.IDE0007.severity = warning # IDE0007: Use implicit type -dotnet_diagnostic.IDE0007WithoutSuggestion.severity = warning # IDE0007: Use implicit type -dotnet_diagnostic.IDE0008.severity = none # IDE0008: Use explicit type -dotnet_diagnostic.IDE0008WithoutSuggestion.severity = none # IDE0008: Use explicit type -dotnet_diagnostic.IDE0009.severity = error # IDE0009: Member access should be qualified -dotnet_diagnostic.IDE0009WithoutSuggestion.severity = warning # IDE0009: Member access should be qualified -dotnet_diagnostic.IDE0010.severity = error # IDE0010: Add missing cases -dotnet_diagnostic.IDE0010WithoutSuggestion.severity = error # IDE0010: Add missing cases -dotnet_diagnostic.IDE0011.severity = suggestion # IDE0011: Add braces -dotnet_diagnostic.IDE0011WithoutSuggestion.severity = suggestion # IDE0011: Add braces -dotnet_diagnostic.IDE0016.severity = warning # IDE0016: Use 'throw' expression -dotnet_diagnostic.IDE0016WithoutSuggestion.warning = suggestion # IDE0016: Use 'throw' expression -dotnet_diagnostic.IDE0017.severity = warning # IDE0017: Simplify object initialization -dotnet_diagnostic.IDE0017WithoutSuggestion.severity = warning # IDE0017: Simplify object initialization -dotnet_diagnostic.IDE0018.severity = warning # IDE0018: Inline variable declaration -dotnet_diagnostic.IDE0018WithoutSuggestion.severity = warning # IDE0018: Inline variable declaration -dotnet_diagnostic.IDE0019.severity = warning # IDE0019: Use pattern matching -dotnet_diagnostic.IDE0019WithoutSuggestion.severity = warning # IDE0019: Use pattern matching -dotnet_diagnostic.IDE0020.severity = warning # IDE0020: Use pattern matching -dotnet_diagnostic.IDE0020WithoutSuggestion.severity = warning # IDE0020: Use pattern matching -dotnet_diagnostic.IDE0021.severity = silent # IDE0021: Use expression body for constructors -dotnet_diagnostic.IDE0022.severity = suggestion # IDE0022: Use expression body for methods -dotnet_diagnostic.IDE0023.severity = silent # IDE0023: Use expression body for operators -dotnet_diagnostic.IDE0024.severity = silent # IDE0024: Use expression body for operators -dotnet_diagnostic.IDE0025.severity = warning # IDE0025: Use expression body for properties -dotnet_diagnostic.IDE0026.severity = silent # IDE0026: Use expression body for indexers -dotnet_diagnostic.IDE0027.severity = warning # IDE0027: Use expression body for accessors -dotnet_diagnostic.IDE0028.severity = warning # IDE0028: Simple collection initialization -dotnet_diagnostic.IDE0028WithoutSuggestion.severity = warning # IDE0028: Simple collection initialization -dotnet_diagnostic.IDE0029.severity = error # IDE0029: Use coalesce expression -dotnet_diagnostic.IDE0029WithoutSuggestion.severity = error # IDE0029: Use coalesce expression -dotnet_diagnostic.IDE0030.severity = error # IDE0030: Use coalesce expression -dotnet_diagnostic.IDE0030WithoutSuggestion.severity = error # IDE0030: Use coalesce expression -dotnet_diagnostic.IDE0031.severity = error # IDE0031: Use null propagation -dotnet_diagnostic.IDE0031WithoutSuggestion.severity = error # IDE0031: Use null propagation -dotnet_diagnostic.IDE0032.severity = error # IDE0032: Use auto property -dotnet_diagnostic.IDE0032WithoutSuggestion.severity = error # IDE0032: Use auto property -dotnet_diagnostic.IDE0033.severity = error # IDE0033: Use explicitly provided tuple name -dotnet_diagnostic.IDE0033WithoutSuggestion.severity = error # IDE0033: Use explicitly provided tuple name -dotnet_diagnostic.IDE0034.severity = error # IDE0034: Simplify 'default' expression -dotnet_diagnostic.IDE0034WithoutSuggestion.severity = error # IDE0034: Simplify 'default' expression -dotnet_diagnostic.IDE0035.severity = error # IDE0035: Unreachable code detected -dotnet_diagnostic.IDE0035WithoutSuggestion.severity = error # IDE0035: Unreachable code detected -dotnet_diagnostic.IDE0036.severity = warning # IDE0036: Order modifiers -dotnet_diagnostic.IDE0036WithoutSuggestion.severity = warning # IDE0036: Order modifiers -dotnet_diagnostic.IDE0037.severity = suggestion # IDE0037: Use inferred member name -dotnet_diagnostic.IDE0037WithoutSuggestion.severity = suggestion # IDE0037: Use inferred member name -dotnet_diagnostic.IDE0039.severity = suggestion # IDE0039: Use local function -dotnet_diagnostic.IDE0039WithoutSuggestion.severity = suggestion # IDE0039: Use local function -dotnet_diagnostic.IDE0040.severity = error # IDE0040: Add accessibility modifiers -dotnet_diagnostic.IDE0040WithoutSuggestion.severity = error # IDE0040: Add accessibility modifiers -dotnet_diagnostic.IDE0041.severity = error # IDE0041: Use 'is null' check -dotnet_diagnostic.IDE0041WithoutSuggestion.severity = error # IDE0041: Use 'is null' check -dotnet_diagnostic.IDE0042.severity = silent # IDE0042: Deconstruct variable declaration -dotnet_diagnostic.IDE0042WithoutSuggestion.severity = silent # IDE0042: Deconstruct variable declaration -dotnet_diagnostic.IDE0043.severity = error # IDE0043: Invalid format string -dotnet_diagnostic.IDE0044.severity = warning # IDE0044: Add readonly modifier -dotnet_diagnostic.IDE0044WithoutSuggestion.severity = warning # IDE0044: Add readonly modifier -dotnet_diagnostic.IDE0045.severity = suggestion # IDE0045: Convert to conditional expression -dotnet_diagnostic.IDE0045WithoutSuggestion.severity = suggestion # IDE0045: Convert to conditional expression -dotnet_diagnostic.IDE0046.severity = suggestion # IDE0046: Convert to conditional expression -dotnet_diagnostic.IDE0046WithoutSuggestion.severity = suggestion # IDE0046: Convert to conditional expression -dotnet_diagnostic.IDE0047.severity = warning # IDE0047: Remove unnecessary parentheses -dotnet_diagnostic.IDE0048.severity = suggestion # IDE0048: Add parentheses for clarity -dotnet_diagnostic.IDE0048WithoutSuggestion.severity = suggestion # IDE0048: Add parentheses for clarity -dotnet_diagnostic.IDE0050.severity = warning # IDE0050: Convert to tuple -dotnet_diagnostic.IDE0050WithoutSuggestion.severity = warning # IDE0050: Convert to tuple -dotnet_diagnostic.IDE0051.severity = error # IDE0051: Remove unused private members -dotnet_diagnostic.IDE0052.severity = error # IDE0052: Remove unread private members -dotnet_diagnostic.IDE0054.severity = error # IDE0054: Use compound assignment -dotnet_diagnostic.IDE0054WithoutSuggestion.severity = error # IDE0054: Use compound assignment -dotnet_diagnostic.IDE0055.severity = warning # IDE0055: Fix formatting -dotnet_diagnostic.IDE0056.severity = warning # IDE0056: Use index operator -dotnet_diagnostic.IDE0056WithoutSuggestion.severity = warning # IDE0056: Use index operator -dotnet_diagnostic.IDE0057.severity = suggestion # IDE0057: Use range operator -dotnet_diagnostic.IDE0057WithoutSuggestion.severity = suggestion # IDE0057: Use range operator -dotnet_diagnostic.IDE0058.severity = warning # IDE0058: Expression value is never used -dotnet_diagnostic.IDE0059.severity = error # IDE0059: Expression value is never used -dotnet_diagnostic.IDE0060.severity = warning # IDE0060: Remove unused parameter -dotnet_diagnostic.IDE0061.severity = silent # IDE0061: Use expression body for local functions -dotnet_diagnostic.IDE0062.severity = suggestion # IDE0062: Make local function 'static' -dotnet_diagnostic.IDE0062WithoutSuggestion.severity = suggestion # IDE0062: Make local function 'static' -dotnet_diagnostic.IDE0063.severity = warning # IDE0063: Use simple 'using' statement -dotnet_diagnostic.IDE0063WithoutSuggestion.severity = warning # IDE0063: Use simple 'using' statement -dotnet_diagnostic.IDE0064.severity = warning # IDE0064: Make readonly fields writable -dotnet_diagnostic.IDE0065.severity = error # IDE0065: Misplaced using directive -dotnet_diagnostic.IDE0066.severity = suggestion # IDE0066: Convert switch statement to expression -dotnet_diagnostic.IDE0066WithoutSuggestion.severity = suggestion # IDE0066: Convert switch statement to expression -dotnet_diagnostic.IDE0070.severity = warning # IDE0070: Use 'System.HashCode' -dotnet_diagnostic.IDE0070WithoutSuggestion.severity = warning # IDE0070: Use 'System.HashCode' -dotnet_diagnostic.IDE0071.severity = warning # IDE0071: Simplify interpolation -dotnet_diagnostic.IDE0071WithoutSuggestion.severity = warning # IDE0071: Simplify interpolation -dotnet_diagnostic.IDE0072.severity = error # IDE0072: Add missing cases -dotnet_diagnostic.IDE0072WithoutSuggestion.severity = error # IDE0072: Add missing cases -dotnet_diagnostic.IDE0073.severity = silent # IDE0073: The file header is missing or not located at the top of the file -dotnet_diagnostic.IDE0073WithoutSuggestion.severity = silent # IDE0073: The file header is missing or not located at the top of the file -dotnet_diagnostic.IDE0074.severity = error # IDE0074: Use compound assignment -dotnet_diagnostic.IDE0074WithoutSuggestion.severity = error # IDE0074: Use compound assignment -dotnet_diagnostic.IDE0075.severity = warning # IDE0075: Simplify conditional expression -dotnet_diagnostic.IDE0075WithoutSuggestion.severity = warning # IDE0075: Simplify conditional expression -dotnet_diagnostic.IDE0076.severity = error # IDE0076: Invalid global 'SuppressMessageAttribute' -dotnet_diagnostic.IDE0077.severity = error # IDE0077: Avoid legacy format target in 'SuppressMessageAttribute' -dotnet_diagnostic.IDE0078.severity = warning # IDE0078: Use pattern matching -dotnet_diagnostic.IDE0078WithoutSuggestion.severity = warning # IDE0078: Use pattern matching -dotnet_diagnostic.IDE0079.severity = warning # IDE0079: Remove unnecessary suppression -dotnet_diagnostic.IDE0080.severity = error # IDE0080: Remove unnecessary suppression operator -dotnet_diagnostic.IDE0080WithoutSuggestion.severity = error # IDE0080: Remove unnecessary suppression operator -dotnet_diagnostic.IDE0082.severity = error # IDE0082: Convert typeof to nameof -dotnet_diagnostic.IDE0083.severity = warning # IDE0083: Use pattern matching (not operator) -dotnet_diagnostic.IDE0090.severity = warning # IDE0090: Simplify new expression -dotnet_diagnostic.IDE0100.severity = error # IDE0100: Remove unnecessary equality operator -dotnet_diagnostic.IDE0110.severity = error # IDE0110: Remove unnecessary discard -dotnet_diagnostic.IDE1005.severity = error # IDE1005: Delegate invocation can be simplified -dotnet_diagnostic.IDE1005WithoutSuggestion.severity = error # IDE1005: Delegate invocation can be simplified -dotnet_diagnostic.IDE1006.severity = error # IDE1006: Naming styles -dotnet_diagnostic.IDE1006WithoutSuggestion.severity = error # IDE1006: Naming styles diff --git a/src/AdditionalPatterns/EventAggregator/StoreManagement/Components/EventAggregator.cs b/src/AdditionalPatterns/EventAggregator/StoreManagement/Components/EventAggregator.cs index f7d91ab..33019de 100644 --- a/src/AdditionalPatterns/EventAggregator/StoreManagement/Components/EventAggregator.cs +++ b/src/AdditionalPatterns/EventAggregator/StoreManagement/Components/EventAggregator.cs @@ -66,7 +66,7 @@ public IDisposable Subscribe(ICustomObserver observer) => public IDisposable Subscribe(ICustomObserver newObserver) where T : IEvent { - if (!_typedObservers.TryGetValue(typeof(T), out List> observers)) + if (!_typedObservers.TryGetValue(typeof(T), out var observers)) { observers = new List>(); _typedObservers[typeof(T)] = observers; diff --git a/src/AdditionalPatterns/Repository/OrderManagement/Infrastructure/OrderManagementContext.cs b/src/AdditionalPatterns/Repository/OrderManagement/Infrastructure/OrderManagementContext.cs index da6277e..f10f8e0 100644 --- a/src/AdditionalPatterns/Repository/OrderManagement/Infrastructure/OrderManagementContext.cs +++ b/src/AdditionalPatterns/Repository/OrderManagement/Infrastructure/OrderManagementContext.cs @@ -5,8 +5,8 @@ namespace OrderManagement.Infrastructure; public class OrderManagementContext : DbContext { - public DbSet Customers { get; set; } - public DbSet Orders { get; set; } + public DbSet Customers => Set(); + public DbSet Orders => Set(); protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlite("Data Source=storage.db"); diff --git a/src/AdditionalPatterns/ServiceLocator/OrderProcessing/IServiceLocator.cs b/src/AdditionalPatterns/ServiceLocator/OrderProcessing/IServiceLocator.cs index 865f0cf..84b6412 100644 --- a/src/AdditionalPatterns/ServiceLocator/OrderProcessing/IServiceLocator.cs +++ b/src/AdditionalPatterns/ServiceLocator/OrderProcessing/IServiceLocator.cs @@ -2,8 +2,8 @@ public interface IServiceLocator { - void AddService(T service); - void AddService(string serviceName, T service); - T GetService(); - object GetService(string serviceName); + void AddService(T service) where T : notnull; + void AddService(string serviceName, T service) where T : notnull; + T GetService() where T : notnull; + object GetService(string serviceName) where T : notnull; } diff --git a/src/AdditionalPatterns/ServiceLocator/OrderProcessing/ServiceLocator.cs b/src/AdditionalPatterns/ServiceLocator/OrderProcessing/ServiceLocator.cs index a9a4130..5ca2550 100644 --- a/src/AdditionalPatterns/ServiceLocator/OrderProcessing/ServiceLocator.cs +++ b/src/AdditionalPatterns/ServiceLocator/OrderProcessing/ServiceLocator.cs @@ -25,16 +25,16 @@ public ServiceLocator() }; } - public void AddService(T service) => + public void AddService(T service) where T : notnull => _services.Add(typeof(T).Name, service); - public void AddService(string serviceName, T service) => + public void AddService(string serviceName, T service) where T : notnull => _services.Add(serviceName, service); - public T GetService() => + public T GetService() where T : notnull => (T)_services[typeof(T).Name]; - public object GetService(string serviceName) => + public object GetService(string serviceName) where T : notnull => (T)_services[serviceName]; /*public void AddService(string serviceName) diff --git a/src/AdditionalPatterns/Specification/ProductSpecification/Domain/Entity.cs b/src/AdditionalPatterns/Specification/ProductSpecification/Domain/Entity.cs index f6ef3ba..7c16cef 100644 --- a/src/AdditionalPatterns/Specification/ProductSpecification/Domain/Entity.cs +++ b/src/AdditionalPatterns/Specification/ProductSpecification/Domain/Entity.cs @@ -26,7 +26,7 @@ protected Entity() public static bool operator !=(Entity a, Entity b) => !(a == b); - public override bool Equals(object obj) + public override bool Equals(object? obj) { if (obj is not Entity other) { diff --git a/src/AdditionalPatterns/UnitOfWork/UnitOfWorkLibrary/Example1/Infrastructure/OrderManagementContext1.cs b/src/AdditionalPatterns/UnitOfWork/UnitOfWorkLibrary/Example1/Infrastructure/OrderManagementContext1.cs index 51d8657..8b3f1bd 100644 --- a/src/AdditionalPatterns/UnitOfWork/UnitOfWorkLibrary/Example1/Infrastructure/OrderManagementContext1.cs +++ b/src/AdditionalPatterns/UnitOfWork/UnitOfWorkLibrary/Example1/Infrastructure/OrderManagementContext1.cs @@ -5,8 +5,8 @@ namespace UnitOfWorkLibrary.Example1.Infrastructure; public class OrderManagementContext1 : DbContext { - public DbSet Customers { get; set; } - public DbSet Orders { get; set; } + public DbSet Customers => Set(); + public DbSet Orders => Set(); protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlite("Data Source=storage1.db"); diff --git a/src/AdditionalPatterns/UnitOfWork/UnitOfWorkLibrary/Example1/Infrastructure/Repositories/Repository1.cs b/src/AdditionalPatterns/UnitOfWork/UnitOfWorkLibrary/Example1/Infrastructure/Repositories/Repository1.cs index 6a88216..105986a 100644 --- a/src/AdditionalPatterns/UnitOfWork/UnitOfWorkLibrary/Example1/Infrastructure/Repositories/Repository1.cs +++ b/src/AdditionalPatterns/UnitOfWork/UnitOfWorkLibrary/Example1/Infrastructure/Repositories/Repository1.cs @@ -37,8 +37,11 @@ public virtual IEnumerable Get(Expression> predicate) => .Where(predicate) .ToList(); - public virtual T GetById(int id) => - _context.Find(id); + public virtual T GetById(int id) + { + var entity = _context.Find(id); + return entity ?? throw new ArgumentException($"Entity with {id} doesn't exists"); + } public virtual void Delete(T entity) => _context.Remove(entity); diff --git a/src/AdditionalPatterns/UnitOfWork/UnitOfWorkLibrary/Example2/Infrastructure/OrderManagementContext2.cs b/src/AdditionalPatterns/UnitOfWork/UnitOfWorkLibrary/Example2/Infrastructure/OrderManagementContext2.cs index 214b94b..18ab582 100644 --- a/src/AdditionalPatterns/UnitOfWork/UnitOfWorkLibrary/Example2/Infrastructure/OrderManagementContext2.cs +++ b/src/AdditionalPatterns/UnitOfWork/UnitOfWorkLibrary/Example2/Infrastructure/OrderManagementContext2.cs @@ -5,8 +5,8 @@ namespace UnitOfWorkLibrary.Example2.Infrastructure; public class OrderManagementContext2 : DbContext, IUnitOfWork2 { - public DbSet Customers { get; set; } - public DbSet Orders { get; set; } + public DbSet Customers => Set(); + public DbSet Orders => Set(); public async Task SaveChangesAndDispatchDomainEventsAsync(CancellationToken cancellationToken = default) { diff --git a/src/BehavioralPatterns/Mediator/MediatorLibrary/AirTrafficControlExample/Components/Common/Aircraft.cs b/src/BehavioralPatterns/Mediator/MediatorLibrary/AirTrafficControlExample/Components/Common/Aircraft.cs index d6628bb..79c2fd5 100644 --- a/src/BehavioralPatterns/Mediator/MediatorLibrary/AirTrafficControlExample/Components/Common/Aircraft.cs +++ b/src/BehavioralPatterns/Mediator/MediatorLibrary/AirTrafficControlExample/Components/Common/Aircraft.cs @@ -38,14 +38,13 @@ public int Altitude public void Climb(int heightToClimb) => Altitude += heightToClimb; - public override bool Equals(object obj) + public override bool Equals(object? obj) { - if (obj.GetType() != GetType()) + if (obj is not Aircraft incoming) { return false; } - var incoming = (Aircraft)obj; return CallSign.Equals(incoming.CallSign, StringComparison.Ordinal); } diff --git a/src/BehavioralPatterns/Observer/ObserverLibrary/StockExample/Examples/EventAndDelegate/Subscribers/GoogleSubscriber.cs b/src/BehavioralPatterns/Observer/ObserverLibrary/StockExample/Examples/EventAndDelegate/Subscribers/GoogleSubscriber.cs index 3821e61..a1c6190 100644 --- a/src/BehavioralPatterns/Observer/ObserverLibrary/StockExample/Examples/EventAndDelegate/Subscribers/GoogleSubscriber.cs +++ b/src/BehavioralPatterns/Observer/ObserverLibrary/StockExample/Examples/EventAndDelegate/Subscribers/GoogleSubscriber.cs @@ -6,7 +6,7 @@ public class GoogleSubscriber { public GoogleSubscriber(StockTicker stockTicker) { - stockTicker.StockChange += CheckFilterWhenStockChanged; + stockTicker.StockChange += CheckFilterWhenStockChanged!; } private void CheckFilterWhenStockChanged(object sender, StockChangeEventArgs e) diff --git a/src/BehavioralPatterns/Observer/ObserverLibrary/StockExample/Examples/EventAndDelegate/Subscribers/MicrosoftSubscriber.cs b/src/BehavioralPatterns/Observer/ObserverLibrary/StockExample/Examples/EventAndDelegate/Subscribers/MicrosoftSubscriber.cs index 229251f..72e873d 100644 --- a/src/BehavioralPatterns/Observer/ObserverLibrary/StockExample/Examples/EventAndDelegate/Subscribers/MicrosoftSubscriber.cs +++ b/src/BehavioralPatterns/Observer/ObserverLibrary/StockExample/Examples/EventAndDelegate/Subscribers/MicrosoftSubscriber.cs @@ -8,7 +8,7 @@ public class MicrosoftSubscriber public MicrosoftSubscriber(StockTicker stockTicker) { - stockTicker.StockChange += CheckFilterWhenStockChanged; + stockTicker.StockChange += CheckFilterWhenStockChanged!; } private void CheckFilterWhenStockChanged(object sender, StockChangeEventArgs e) diff --git a/src/BehavioralPatterns/State/StateLibrary/SteakCookingExample/States/Common/Doneness.cs b/src/BehavioralPatterns/State/StateLibrary/SteakCookingExample/States/Common/Doneness.cs index c33ff4b..c989423 100644 --- a/src/BehavioralPatterns/State/StateLibrary/SteakCookingExample/States/Common/Doneness.cs +++ b/src/BehavioralPatterns/State/StateLibrary/SteakCookingExample/States/Common/Doneness.cs @@ -3,7 +3,7 @@ /// /// Doneness is a gauge of how thoroughly cooked a cut of meat is based on /// its color, juiciness, and internal temperature when cooked. -/// In this example we use celsisus degree as a unit of temperature measurment. +/// In this example we use celsisus degree as a unit of temperature measurement. /// public abstract class Doneness { @@ -15,14 +15,15 @@ public abstract class Doneness protected int _temperatureChangeStep; protected Doneness(Doneness state) - : this() { _steak = state.Steak; _currentTemperature = state.CurrentTemperature; + _temperatureChangeStep = 1; } - protected Doneness() + protected Doneness(Steak steak) { + _steak = steak; _temperatureChangeStep = 1; } diff --git a/src/BehavioralPatterns/State/StateLibrary/SteakCookingExample/States/Uncooked.cs b/src/BehavioralPatterns/State/StateLibrary/SteakCookingExample/States/Uncooked.cs index e9a3e0f..24f2aaf 100644 --- a/src/BehavioralPatterns/State/StateLibrary/SteakCookingExample/States/Uncooked.cs +++ b/src/BehavioralPatterns/State/StateLibrary/SteakCookingExample/States/Uncooked.cs @@ -5,10 +5,9 @@ namespace StateLibrary.SteakCookingExample.States; public class Uncooked : Doneness { public Uncooked(Steak steak, double currentTemperature) + : base(steak) { - _steak = steak; _currentTemperature = currentTemperature; - _lowerTemperature = 0; _upperTemperature = 49; _isSafeToEat = false; diff --git a/src/CreationalPatterns/Prototype/PrototypeLibrary/DeepCloneExample/Extensions/SystemExtension.cs b/src/CreationalPatterns/Prototype/PrototypeLibrary/DeepCloneExample/Extensions/SystemExtension.cs index a2b6de9..99a2b9e 100644 --- a/src/CreationalPatterns/Prototype/PrototypeLibrary/DeepCloneExample/Extensions/SystemExtension.cs +++ b/src/CreationalPatterns/Prototype/PrototypeLibrary/DeepCloneExample/Extensions/SystemExtension.cs @@ -7,6 +7,13 @@ public static class SystemExtension public static T DeepClone(this T source) { var serialized = JsonConvert.SerializeObject(source); - return JsonConvert.DeserializeObject(serialized); + var clonedObject = JsonConvert.DeserializeObject(serialized); + + if (clonedObject == null) + { + throw new JsonException("The source can't be serialized and deserialized successfully."); + } + + return clonedObject; } } diff --git a/src/StructuralPatterns/Flyweight/FlyweightLibrary/DotNetStringExample/DotNetStringExecutor.cs b/src/StructuralPatterns/Flyweight/FlyweightLibrary/DotNetStringExample/DotNetStringExecutor.cs index 3cc2618..a80be37 100644 --- a/src/StructuralPatterns/Flyweight/FlyweightLibrary/DotNetStringExample/DotNetStringExecutor.cs +++ b/src/StructuralPatterns/Flyweight/FlyweightLibrary/DotNetStringExample/DotNetStringExecutor.cs @@ -14,10 +14,10 @@ public static void Execute() string s3 = s1; Console.WriteLine("Enter s4: "); - string s4 = Console.ReadLine(); + string s4 = Console.ReadLine()!; Console.WriteLine("Enter s5: "); - string s5 = string.Intern(Console.ReadLine()); + string s5 = string.Intern(Console.ReadLine()!); // In this case, s1 and s2 are two separate strings, and hence the output should be false. // Surprisingly, the output is true! This is because .NET runtime in order to save space,