Added support files
This commit is contained in:
		
							
								
								
									
										392
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										392
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,392 @@
 | 
				
			|||||||
 | 
					root = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# All files
 | 
				
			||||||
 | 
					[*]
 | 
				
			||||||
 | 
					indent_style = space
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Xml files
 | 
				
			||||||
 | 
					[*.xml]
 | 
				
			||||||
 | 
					indent_size = 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# C# files
 | 
				
			||||||
 | 
					[*.cs]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Core EditorConfig Options ####
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Indentation and spacing
 | 
				
			||||||
 | 
					indent_size = 4
 | 
				
			||||||
 | 
					tab_width = 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# New line preferences
 | 
				
			||||||
 | 
					end_of_line = crlf
 | 
				
			||||||
 | 
					insert_final_newline = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### .NET Coding Conventions ####
 | 
				
			||||||
 | 
					[*.{cs,vb}]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Organize usings
 | 
				
			||||||
 | 
					dotnet_separate_import_directive_groups = true
 | 
				
			||||||
 | 
					dotnet_sort_system_directives_first = true
 | 
				
			||||||
 | 
					file_header_template = unset
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# this. and Me. preferences
 | 
				
			||||||
 | 
					dotnet_style_qualification_for_event = false:warning
 | 
				
			||||||
 | 
					dotnet_style_qualification_for_field = false:warning
 | 
				
			||||||
 | 
					dotnet_style_qualification_for_method = false:silent
 | 
				
			||||||
 | 
					dotnet_style_qualification_for_property = false:warning
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Language keywords vs BCL types preferences
 | 
				
			||||||
 | 
					dotnet_style_predefined_type_for_locals_parameters_members = true:silent
 | 
				
			||||||
 | 
					dotnet_style_predefined_type_for_member_access = true:silent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Parentheses preferences
 | 
				
			||||||
 | 
					dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
 | 
				
			||||||
 | 
					dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
 | 
				
			||||||
 | 
					dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
 | 
				
			||||||
 | 
					dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Modifier preferences
 | 
				
			||||||
 | 
					dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Expression-level preferences
 | 
				
			||||||
 | 
					dotnet_style_coalesce_expression = true:suggestion
 | 
				
			||||||
 | 
					dotnet_style_collection_initializer = true:suggestion
 | 
				
			||||||
 | 
					dotnet_style_explicit_tuple_names = true:suggestion
 | 
				
			||||||
 | 
					dotnet_style_null_propagation = true:suggestion
 | 
				
			||||||
 | 
					dotnet_style_object_initializer = true:suggestion
 | 
				
			||||||
 | 
					dotnet_style_operator_placement_when_wrapping = beginning_of_line
 | 
				
			||||||
 | 
					dotnet_style_prefer_auto_properties = true:silent
 | 
				
			||||||
 | 
					dotnet_style_prefer_compound_assignment = true:suggestion
 | 
				
			||||||
 | 
					dotnet_style_prefer_conditional_expression_over_assignment = true:silent
 | 
				
			||||||
 | 
					dotnet_style_prefer_conditional_expression_over_return = true:silent
 | 
				
			||||||
 | 
					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:suggestion
 | 
				
			||||||
 | 
					dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
 | 
				
			||||||
 | 
					dotnet_style_prefer_simplified_interpolation = true:suggestion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Field preferences
 | 
				
			||||||
 | 
					dotnet_style_readonly_field = true:warning
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Parameter preferences
 | 
				
			||||||
 | 
					dotnet_code_quality_unused_parameters = all:suggestion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Suppression preferences
 | 
				
			||||||
 | 
					dotnet_remove_unnecessary_suppression_exclusions = none
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### C# Coding Conventions ####
 | 
				
			||||||
 | 
					[*.cs]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# var preferences
 | 
				
			||||||
 | 
					csharp_style_var_elsewhere = false:silent
 | 
				
			||||||
 | 
					csharp_style_var_for_built_in_types = false:silent
 | 
				
			||||||
 | 
					csharp_style_var_when_type_is_apparent = false:silent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Expression-bodied members
 | 
				
			||||||
 | 
					csharp_style_expression_bodied_accessors = true:silent
 | 
				
			||||||
 | 
					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 = false:silent
 | 
				
			||||||
 | 
					csharp_style_expression_bodied_operators = false:silent
 | 
				
			||||||
 | 
					csharp_style_expression_bodied_properties = true:silent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Pattern matching preferences
 | 
				
			||||||
 | 
					csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
 | 
				
			||||||
 | 
					csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
 | 
				
			||||||
 | 
					csharp_style_prefer_not_pattern = true:suggestion
 | 
				
			||||||
 | 
					csharp_style_prefer_pattern_matching = true:silent
 | 
				
			||||||
 | 
					csharp_style_prefer_switch_expression = true:suggestion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Null-checking preferences
 | 
				
			||||||
 | 
					csharp_style_conditional_delegate_call = true:suggestion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Modifier preferences
 | 
				
			||||||
 | 
					csharp_prefer_static_local_function = true:warning
 | 
				
			||||||
 | 
					csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:silent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Code-block preferences
 | 
				
			||||||
 | 
					csharp_prefer_braces = true:silent
 | 
				
			||||||
 | 
					csharp_prefer_simple_using_statement = true:suggestion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Expression-level preferences
 | 
				
			||||||
 | 
					csharp_prefer_simple_default_expression = true:suggestion
 | 
				
			||||||
 | 
					csharp_style_deconstructed_variable_declaration = true:suggestion
 | 
				
			||||||
 | 
					csharp_style_inlined_variable_declaration = true:suggestion
 | 
				
			||||||
 | 
					csharp_style_pattern_local_over_anonymous_function = true:suggestion
 | 
				
			||||||
 | 
					csharp_style_prefer_index_operator = true:suggestion
 | 
				
			||||||
 | 
					csharp_style_prefer_range_operator = true:suggestion
 | 
				
			||||||
 | 
					csharp_style_throw_expression = true:suggestion
 | 
				
			||||||
 | 
					csharp_style_unused_value_assignment_preference = discard_variable:suggestion
 | 
				
			||||||
 | 
					csharp_style_unused_value_expression_statement_preference = discard_variable:silent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 'using' directive preferences
 | 
				
			||||||
 | 
					csharp_using_directive_placement = outside_namespace:silent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### 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 = one_less_than_current
 | 
				
			||||||
 | 
					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_blocks = true
 | 
				
			||||||
 | 
					csharp_preserve_single_line_statements = true
 | 
				
			||||||
 | 
					csharp_style_namespace_declarations = file_scoped:warning
 | 
				
			||||||
 | 
					csharp_style_prefer_method_group_conversion = true:silent
 | 
				
			||||||
 | 
					csharp_style_prefer_top_level_statements = true:silent
 | 
				
			||||||
 | 
					csharp_style_prefer_null_check_over_type_check = true:suggestion
 | 
				
			||||||
 | 
					csharp_style_prefer_local_over_anonymous_function = true:suggestion
 | 
				
			||||||
 | 
					csharp_style_prefer_utf8_string_literals = true:suggestion
 | 
				
			||||||
 | 
					csharp_style_prefer_tuple_swap = true:suggestion
 | 
				
			||||||
 | 
					csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion
 | 
				
			||||||
 | 
					csharp_style_allow_embedded_statements_on_same_line_experimental = true:silent
 | 
				
			||||||
 | 
					csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true:silent
 | 
				
			||||||
 | 
					csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true:silent
 | 
				
			||||||
 | 
					csharp_style_prefer_extended_property_pattern = true:suggestion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Naming styles ####
 | 
				
			||||||
 | 
					[*.{cs,vb}]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Naming rules
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.types_and_namespaces_should_be_pascalcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.types_and_namespaces_should_be_pascalcase.symbols = types_and_namespaces
 | 
				
			||||||
 | 
					dotnet_naming_rule.types_and_namespaces_should_be_pascalcase.style = pascalcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.interfaces_should_be_ipascalcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.interfaces_should_be_ipascalcase.symbols = interfaces
 | 
				
			||||||
 | 
					dotnet_naming_rule.interfaces_should_be_ipascalcase.style = ipascalcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.type_parameters_should_be_tpascalcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.type_parameters_should_be_tpascalcase.symbols = type_parameters
 | 
				
			||||||
 | 
					dotnet_naming_rule.type_parameters_should_be_tpascalcase.style = tpascalcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.methods_should_be_pascalcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.methods_should_be_pascalcase.symbols = methods
 | 
				
			||||||
 | 
					dotnet_naming_rule.methods_should_be_pascalcase.style = pascalcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.properties_should_be_pascalcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.properties_should_be_pascalcase.symbols = properties
 | 
				
			||||||
 | 
					dotnet_naming_rule.properties_should_be_pascalcase.style = pascalcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.events_should_be_pascalcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.events_should_be_pascalcase.symbols = events
 | 
				
			||||||
 | 
					dotnet_naming_rule.events_should_be_pascalcase.style = pascalcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.local_variables_should_be_camelcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.local_variables_should_be_camelcase.symbols = local_variables
 | 
				
			||||||
 | 
					dotnet_naming_rule.local_variables_should_be_camelcase.style = camelcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.local_constants_should_be_camelcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.local_constants_should_be_camelcase.symbols = local_constants
 | 
				
			||||||
 | 
					dotnet_naming_rule.local_constants_should_be_camelcase.style = all_caps
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.parameters_should_be_camelcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.parameters_should_be_camelcase.symbols = parameters
 | 
				
			||||||
 | 
					dotnet_naming_rule.parameters_should_be_camelcase.style = camelcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.public_fields_should_be_pascalcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.public_fields_should_be_pascalcase.symbols = public_fields
 | 
				
			||||||
 | 
					dotnet_naming_rule.public_fields_should_be_pascalcase.style = pascalcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.private_fields_should_be__camelcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.private_fields_should_be__camelcase.symbols = private_fields
 | 
				
			||||||
 | 
					dotnet_naming_rule.private_fields_should_be__camelcase.style = _camelcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.private_static_fields_should_be_s_camelcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.private_static_fields_should_be_s_camelcase.symbols = private_static_fields
 | 
				
			||||||
 | 
					dotnet_naming_rule.private_static_fields_should_be_s_camelcase.style = _camelcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.public_constant_fields_should_be_pascalcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.public_constant_fields_should_be_pascalcase.symbols = public_constant_fields
 | 
				
			||||||
 | 
					dotnet_naming_rule.public_constant_fields_should_be_pascalcase.style = pascalcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.private_constant_fields_should_be_pascalcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.private_constant_fields_should_be_pascalcase.symbols = private_constant_fields
 | 
				
			||||||
 | 
					dotnet_naming_rule.private_constant_fields_should_be_pascalcase.style = pascalcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.public_static_readonly_fields_should_be_pascalcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.public_static_readonly_fields_should_be_pascalcase.symbols = public_static_readonly_fields
 | 
				
			||||||
 | 
					dotnet_naming_rule.public_static_readonly_fields_should_be_pascalcase.style = pascalcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.private_static_readonly_fields_should_be_pascalcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.private_static_readonly_fields_should_be_pascalcase.symbols = private_static_readonly_fields
 | 
				
			||||||
 | 
					dotnet_naming_rule.private_static_readonly_fields_should_be_pascalcase.style = pascalcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.enums_should_be_pascalcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.enums_should_be_pascalcase.symbols = enums
 | 
				
			||||||
 | 
					dotnet_naming_rule.enums_should_be_pascalcase.style = pascalcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.local_functions_should_be_pascalcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.local_functions_should_be_pascalcase.symbols = local_functions
 | 
				
			||||||
 | 
					dotnet_naming_rule.local_functions_should_be_pascalcase.style = pascalcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_rule.non_field_members_should_be_pascalcase.severity = warning
 | 
				
			||||||
 | 
					dotnet_naming_rule.non_field_members_should_be_pascalcase.symbols = non_field_members
 | 
				
			||||||
 | 
					dotnet_naming_rule.non_field_members_should_be_pascalcase.style = pascalcase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Symbol specifications
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.interfaces.applicable_kinds = interface
 | 
				
			||||||
 | 
					dotnet_naming_symbols.interfaces.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
 | 
				
			||||||
 | 
					dotnet_naming_symbols.interfaces.required_modifiers = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.enums.applicable_kinds = enum
 | 
				
			||||||
 | 
					dotnet_naming_symbols.enums.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
 | 
				
			||||||
 | 
					dotnet_naming_symbols.enums.required_modifiers = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.events.applicable_kinds = event
 | 
				
			||||||
 | 
					dotnet_naming_symbols.events.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
 | 
				
			||||||
 | 
					dotnet_naming_symbols.events.required_modifiers = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.methods.applicable_kinds = method
 | 
				
			||||||
 | 
					dotnet_naming_symbols.methods.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
 | 
				
			||||||
 | 
					dotnet_naming_symbols.methods.required_modifiers = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.properties.applicable_kinds = property
 | 
				
			||||||
 | 
					dotnet_naming_symbols.properties.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
 | 
				
			||||||
 | 
					dotnet_naming_symbols.properties.required_modifiers = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.public_fields.applicable_kinds = field
 | 
				
			||||||
 | 
					dotnet_naming_symbols.public_fields.applicable_accessibilities = public, internal
 | 
				
			||||||
 | 
					dotnet_naming_symbols.public_fields.required_modifiers = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.private_fields.applicable_kinds = field
 | 
				
			||||||
 | 
					dotnet_naming_symbols.private_fields.applicable_accessibilities = private, protected, protected_internal, private_protected
 | 
				
			||||||
 | 
					dotnet_naming_symbols.private_fields.required_modifiers = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.private_static_fields.applicable_kinds = field
 | 
				
			||||||
 | 
					dotnet_naming_symbols.private_static_fields.applicable_accessibilities = private, protected, protected_internal, private_protected
 | 
				
			||||||
 | 
					dotnet_naming_symbols.private_static_fields.required_modifiers = static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.types_and_namespaces.applicable_kinds = namespace, class, struct, interface, enum
 | 
				
			||||||
 | 
					dotnet_naming_symbols.types_and_namespaces.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
 | 
				
			||||||
 | 
					dotnet_naming_symbols.types_and_namespaces.required_modifiers = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
 | 
				
			||||||
 | 
					dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
 | 
				
			||||||
 | 
					dotnet_naming_symbols.non_field_members.required_modifiers = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.type_parameters.applicable_kinds = namespace
 | 
				
			||||||
 | 
					dotnet_naming_symbols.type_parameters.applicable_accessibilities = *
 | 
				
			||||||
 | 
					dotnet_naming_symbols.type_parameters.required_modifiers = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.private_constant_fields.applicable_kinds = field
 | 
				
			||||||
 | 
					dotnet_naming_symbols.private_constant_fields.applicable_accessibilities = private, protected, protected_internal, private_protected
 | 
				
			||||||
 | 
					dotnet_naming_symbols.private_constant_fields.required_modifiers = const
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.local_variables.applicable_kinds = local
 | 
				
			||||||
 | 
					dotnet_naming_symbols.local_variables.applicable_accessibilities = local
 | 
				
			||||||
 | 
					dotnet_naming_symbols.local_variables.required_modifiers = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.local_constants.applicable_kinds = local
 | 
				
			||||||
 | 
					dotnet_naming_symbols.local_constants.applicable_accessibilities = local
 | 
				
			||||||
 | 
					dotnet_naming_symbols.local_constants.required_modifiers = const
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.parameters.applicable_kinds = parameter
 | 
				
			||||||
 | 
					dotnet_naming_symbols.parameters.applicable_accessibilities = *
 | 
				
			||||||
 | 
					dotnet_naming_symbols.parameters.required_modifiers = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.public_constant_fields.applicable_kinds = field
 | 
				
			||||||
 | 
					dotnet_naming_symbols.public_constant_fields.applicable_accessibilities = public, internal
 | 
				
			||||||
 | 
					dotnet_naming_symbols.public_constant_fields.required_modifiers = const
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.public_static_readonly_fields.applicable_kinds = field
 | 
				
			||||||
 | 
					dotnet_naming_symbols.public_static_readonly_fields.applicable_accessibilities = public, internal
 | 
				
			||||||
 | 
					dotnet_naming_symbols.public_static_readonly_fields.required_modifiers = readonly, static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.private_static_readonly_fields.applicable_kinds = field
 | 
				
			||||||
 | 
					dotnet_naming_symbols.private_static_readonly_fields.applicable_accessibilities = private, protected, protected_internal, private_protected
 | 
				
			||||||
 | 
					dotnet_naming_symbols.private_static_readonly_fields.required_modifiers = readonly, static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_symbols.local_functions.applicable_kinds = local_function
 | 
				
			||||||
 | 
					dotnet_naming_symbols.local_functions.applicable_accessibilities = *
 | 
				
			||||||
 | 
					dotnet_naming_symbols.local_functions.required_modifiers = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Naming styles
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_style.pascalcase.required_prefix = 
 | 
				
			||||||
 | 
					dotnet_naming_style.pascalcase.required_suffix = 
 | 
				
			||||||
 | 
					dotnet_naming_style.pascalcase.word_separator = 
 | 
				
			||||||
 | 
					dotnet_naming_style.pascalcase.capitalization = pascal_case
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_style.ipascalcase.required_prefix = I
 | 
				
			||||||
 | 
					dotnet_naming_style.ipascalcase.required_suffix = 
 | 
				
			||||||
 | 
					dotnet_naming_style.ipascalcase.word_separator = 
 | 
				
			||||||
 | 
					dotnet_naming_style.ipascalcase.capitalization = pascal_case
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_style.tpascalcase.required_prefix = T
 | 
				
			||||||
 | 
					dotnet_naming_style.tpascalcase.required_suffix = 
 | 
				
			||||||
 | 
					dotnet_naming_style.tpascalcase.word_separator = 
 | 
				
			||||||
 | 
					dotnet_naming_style.tpascalcase.capitalization = pascal_case
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_style._camelcase.required_prefix = _
 | 
				
			||||||
 | 
					dotnet_naming_style._camelcase.required_suffix = 
 | 
				
			||||||
 | 
					dotnet_naming_style._camelcase.word_separator = 
 | 
				
			||||||
 | 
					dotnet_naming_style._camelcase.capitalization = camel_case
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_style.camelcase.required_prefix = 
 | 
				
			||||||
 | 
					dotnet_naming_style.camelcase.required_suffix = 
 | 
				
			||||||
 | 
					dotnet_naming_style.camelcase.word_separator = 
 | 
				
			||||||
 | 
					dotnet_naming_style.camelcase.capitalization = camel_case
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_style.s_camelcase.required_prefix = s_
 | 
				
			||||||
 | 
					dotnet_naming_style.s_camelcase.required_suffix = 
 | 
				
			||||||
 | 
					dotnet_naming_style.s_camelcase.word_separator = 
 | 
				
			||||||
 | 
					dotnet_naming_style.s_camelcase.capitalization = camel_case
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dotnet_naming_style.all_caps.required_prefix = 
 | 
				
			||||||
 | 
					dotnet_naming_style.all_caps.required_suffix = 
 | 
				
			||||||
 | 
					dotnet_naming_style.all_caps.word_separator = _
 | 
				
			||||||
 | 
					dotnet_naming_style.all_caps.capitalization = all_caps
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tab_width = 4
 | 
				
			||||||
 | 
					indent_size = 4
 | 
				
			||||||
 | 
					end_of_line = crlf
 | 
				
			||||||
 | 
					dotnet_style_namespace_match_folder = true:suggestion
 | 
				
			||||||
 | 
					dotnet_style_allow_statement_immediately_after_block_experimental = true:silent
 | 
				
			||||||
 | 
					dotnet_style_allow_multiple_blank_lines_experimental = true:silent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Unnecessary usings
 | 
				
			||||||
 | 
					dotnet_diagnostic.IDE0005.severity = warning
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					resharper_csharp_place_attribute_on_same_line = false
 | 
				
			||||||
							
								
								
									
										3
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					*.sys filter=lfs diff=lfs merge=lfs -text
 | 
				
			||||||
 | 
					*.exe filter=lfs diff=lfs merge=lfs -text
 | 
				
			||||||
 | 
					*.dll filter=lfs diff=lfs merge=lfs -text
 | 
				
			||||||
							
								
								
									
										11
									
								
								Program.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Program.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					using RAIDAlert;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					IHost host = Host.CreateDefaultBuilder(args)
 | 
				
			||||||
 | 
					    .UseWindowsService()
 | 
				
			||||||
 | 
					    .ConfigureServices(services =>
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        services.AddHostedService<Watchdog>();
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    .Build();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					host.Run();
 | 
				
			||||||
							
								
								
									
										12
									
								
								Properties/launchSettings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Properties/launchSettings.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "$schema": "http://json.schemastore.org/launchsettings.json",
 | 
				
			||||||
 | 
					  "profiles": {
 | 
				
			||||||
 | 
					    "RAIDAlert": {
 | 
				
			||||||
 | 
					      "commandName": "Project",
 | 
				
			||||||
 | 
					      "dotnetRunMessages": true,
 | 
				
			||||||
 | 
					      "environmentVariables": {
 | 
				
			||||||
 | 
					        "DOTNET_ENVIRONMENT": "Development"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										31
									
								
								RAIDAlert.csproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								RAIDAlert.csproj
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					<Project Sdk="Microsoft.NET.Sdk.Worker">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <PropertyGroup>
 | 
				
			||||||
 | 
					    <TargetFramework>net7.0-windows</TargetFramework>
 | 
				
			||||||
 | 
					    <Nullable>enable</Nullable>
 | 
				
			||||||
 | 
					    <ImplicitUsings>enable</ImplicitUsings>
 | 
				
			||||||
 | 
					    <InvariantGlobalization>true</InvariantGlobalization>
 | 
				
			||||||
 | 
					    <UserSecretsId>dotnet-RAIDAlert-4776286e-45d0-4bce-a7e8-adfd07caf88c</UserSecretsId>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <PackageReference Include="CliWrap" Version="3.6.4" />
 | 
				
			||||||
 | 
					    <PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.1" />
 | 
				
			||||||
 | 
					    <PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="7.0.1" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <None Update="hpssacli.exe">
 | 
				
			||||||
 | 
					      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
 | 
				
			||||||
 | 
					    </None>
 | 
				
			||||||
 | 
					    <None Update="pc-beeper.exe">
 | 
				
			||||||
 | 
					      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
 | 
				
			||||||
 | 
					    </None>
 | 
				
			||||||
 | 
					    <None Update="WinRing0x64.dll">
 | 
				
			||||||
 | 
					      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
 | 
				
			||||||
 | 
					    </None>
 | 
				
			||||||
 | 
					    <None Update="WinRing0x64.sys">
 | 
				
			||||||
 | 
					      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
 | 
				
			||||||
 | 
					    </None>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										25
									
								
								RAIDAlert.sln
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								RAIDAlert.sln
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					Microsoft Visual Studio Solution File, Format Version 12.00
 | 
				
			||||||
 | 
					# Visual Studio Version 17
 | 
				
			||||||
 | 
					VisualStudioVersion = 17.6.33723.286
 | 
				
			||||||
 | 
					MinimumVisualStudioVersion = 10.0.40219.1
 | 
				
			||||||
 | 
					Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RAIDAlert", "RAIDAlert.csproj", "{E459EE0C-FFCA-41DC-AFD7-FF51A28B68F6}"
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
 | 
					Global
 | 
				
			||||||
 | 
						GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
				
			||||||
 | 
							Debug|Any CPU = Debug|Any CPU
 | 
				
			||||||
 | 
							Release|Any CPU = Release|Any CPU
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
						GlobalSection(ProjectConfigurationPlatforms) = postSolution
 | 
				
			||||||
 | 
							{E459EE0C-FFCA-41DC-AFD7-FF51A28B68F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 | 
				
			||||||
 | 
							{E459EE0C-FFCA-41DC-AFD7-FF51A28B68F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
 | 
				
			||||||
 | 
							{E459EE0C-FFCA-41DC-AFD7-FF51A28B68F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
 | 
				
			||||||
 | 
							{E459EE0C-FFCA-41DC-AFD7-FF51A28B68F6}.Release|Any CPU.Build.0 = Release|Any CPU
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
						GlobalSection(SolutionProperties) = preSolution
 | 
				
			||||||
 | 
							HideSolutionNode = FALSE
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
						GlobalSection(ExtensibilityGlobals) = postSolution
 | 
				
			||||||
 | 
							SolutionGuid = {076E1AE4-23CB-4095-9B8A-1E3D734FD3B4}
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
					EndGlobal
 | 
				
			||||||
							
								
								
									
										31
									
								
								Watchdog.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								Watchdog.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					using CliWrap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RAIDAlert;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class Watchdog : BackgroundService
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    private const string HpCliUtil = "hpssacli.exe";
 | 
				
			||||||
 | 
					    private const string PcBeeperUtil = "pc-beeper.exe";
 | 
				
			||||||
 | 
					    private readonly ILogger<Watchdog> _logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Watchdog(ILogger<Watchdog> logger)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        _logger = logger;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        string hpSsaCli = Path.Combine(Environment.ProcessPath!, HpCliUtil);
 | 
				
			||||||
 | 
					        string pcBeeper = Path.Combine(Environment.ProcessPath!, PcBeeperUtil);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        while (!stoppingToken.IsCancellationRequested)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            var result = await Cli.Wrap("path/to/exe")
 | 
				
			||||||
 | 
					                .WithArguments(new[] {"--foo", "bar"})
 | 
				
			||||||
 | 
					                .WithWorkingDirectory("work/dir/path")
 | 
				
			||||||
 | 
					                .ExecuteAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            await Task.Delay(1000, stoppingToken);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								WinRing0x64.dll
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								WinRing0x64.dll
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								WinRing0x64.sys
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								WinRing0x64.sys
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										8
									
								
								appsettings.Development.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								appsettings.Development.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "Logging": {
 | 
				
			||||||
 | 
					    "LogLevel": {
 | 
				
			||||||
 | 
					      "Default": "Information",
 | 
				
			||||||
 | 
					      "Microsoft.Hosting.Lifetime": "Information"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										8
									
								
								appsettings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								appsettings.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "Logging": {
 | 
				
			||||||
 | 
					    "LogLevel": {
 | 
				
			||||||
 | 
					      "Default": "Information",
 | 
				
			||||||
 | 
					      "Microsoft.Hosting.Lifetime": "Information"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										7
									
								
								global.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								global.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "sdk": {
 | 
				
			||||||
 | 
					    "version": "7.0.202",
 | 
				
			||||||
 | 
					    "rollForward": "latestMajor",
 | 
				
			||||||
 | 
					    "allowPrerelease": true
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								hpssacli.exe
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								hpssacli.exe
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								pc-beeper.exe
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								pc-beeper.exe
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user