Initial commit.

This commit is contained in:
2020-08-21 22:22:24 +01:00
commit d40c4290e0
17 changed files with 1887 additions and 0 deletions

632
.editorconfig Normal file
View File

@@ -0,0 +1,632 @@
root = true
[*]
charset=utf-8
next_line=crlf
insert_final_newline=false
indent_style=space
indent_size=4
# Generic non-language specific ones for Resharper and friends
brace_style=next_line
int_align=true
keep_existing_arrangement=false
place_simple_blocks_on_single_line=true
place_simple_declaration_blocks_on_single_line=true
place_attribute_on_same_line=false
space_after_unary_operator=false
space_after_comma=true
space_around_ternary_operator=true
space_around_binary_operator=true
space_around_member_access_operator=false
space_before_open_square_brackets=false
space_after_keywords_in_control_flow_statements=true
space_before_comma=false
space_between_method_call_name_and_opening_parenthesis=false
space_between_method_declaration_name_and_open_parenthesis=false
space_between_square_brackets=false
space_between_parentheses_of_control_flow_statements=false
accessor_owner_declaration_braces=next_line
accessor_declaration_braces=next_line
case_block_braces=next_line
initializer_braces=next_line
other_braces=next_line
allow_comment_after_lbrace=false
empty_block_style=together_same_line
braces_for_ifelse=not_required
braces_for_for=not_required
braces_for_foreach=not_required
braces_for_while=not_required
braces_for_dowhile=not_required
braces_for_using=not_required
braces_for_lock=not_required
braces_for_fixed=not_required
method_or_operator_body=expression_body
local_function_body=expression_body
constructor_or_destructor_body=expression_body
accessor_owner_body=expression_body
force_attribute_style=join
function_braces=next_line
force_control_statements_braces=always_remove
space_in_singleline_accessorholder=true
type_declaration_braces=next_line
invocable_declaration_braces=next_line
anonymous_method_declaration_braces=next_line
space_between_accessors_in_singleline_property=true
indent_nested_usings_stmt=true
space_within_empty_braces=false
indent_nested_fixed_stmt=true
indent_nested_lock_stmt=true
indent_nested_for_stmt=true
indent_nested_foreach_stmt=true
indent_nested_while_stmt=true
use_continuous_indent_inside_parens=true
indent_method_decl_pars=inside
indent_invocation_pars=inside
indent_statement_pars=inside
indent_typeparam_angles=inside
indent_typearg_angles=inside
indent_pars=inside
indent_preprocessor_if=outdent
indent_preprocessor_region=usual_indent
indent_preprocessor_other=usual_indent
indent_switch_labels=true
indent_type_constraints=true
stick_comment=false
alignment_tab_fill_style=use_spaces
align_multiline_parameter=true
align_multiline_extends_list=true
align_linq_query=true
align_multiline_binary_expressions_chain=true
outdent_binary_ops=true
align_multiline_calls_chain=true
outdent_dots=true
align_multiline_array_and_object_initializer=false
indent_anonymous_method_block=false
align_first_arg_by_paren=true
align_multiline_argument=true
align_tuple_components=true
align_multiline_expression=true
align_multiline_for_stmt=true
align_multiple_declaration=true
align_multline_type_parameter_list=true
align_multline_type_parameter_constrains=true
int_align_fields=true
int_align_properties=true
int_align_methods=true
int_align_parameters=false
int_align_variables=true
int_align_assignments=true
int_align_nested_ternary=true
int_align_invocations=false
int_align_binary_expressions=true
int_align_comments=true
int_align_switch_sections=true
keep_user_linebreaks=false
keep_existing_arrangement=false
keep_existing_linebreaks=false
max_line_length=120
wrap_before_comma=false
special_else_if_treatment=true
place_type_attribute_on_same_line=never
place_method_attribute_on_same_line=never
place_accessorholder_attribute_on_same_line=never
place_attribute_on_same_line=never
place_accessor_attribute_on_same_line=never
place_attribute_on_same_line=never
place_field_attribute_on_same_line=never
place_attribute_on_same_line=never
wrap_parameters_style=wrap_if_long
keep_existing_declaration_parens_arrangement=false
wrap_before_declaration_lpar=false
wrap_after_declaration_lpar=false
wrap_before_declaration_rpar=false
place_constructor_initializer_on_same_line=true
keep_existing_expr_member_arrangement=false
place_expr_method_on_single_line=true
place_expr_property_on_single_line=true
place_expr_accessor_on_single_line=true
wrap_before_arrow_with_expressions=false
place_type_constraints_on_same_line=true
wrap_before_first_type_parameter_constraint=true
wrap_multiple_type_parameter_constraints_style=wrap_if_long
wrap_before_type_parameter_langle=true
wrap_before_extends_colon=false
wrap_extends_list_style=wrap_if_long
keep_existing_declaration_block_arrangement=false
place_abstract_accessorholder_on_single_line=true
place_simple_accessorholder_on_single_line=false
place_accessor_with_attrs_holder_on_single_line=false
place_simple_accessor_on_single_line=true
place_simple_method_on_single_line=false
keep_existing_enum_arrangement=false
place_simple_enum_on_single_line=false
wrap_enum_declaration=wrap_if_long
new_line_before_else=true
new_line_before_while=false
wrap_for_stmt_header_style=wrap_if_long
wrap_multiple_declaration_style=wrap_if_long
keep_existing_embedded_arrangement=false
place_simple_embedded_statement_on_same_line=false
place_simple_case_statement_on_same_line=true
keep_existing_embedded_block_arrangement=false
place_simple_embedded_block_on_same_line=false
place_simple_anonymousmethod_on_single_line=false
keep_existing_initializer_arrangement=false
place_simple_initializer_on_single_line=false
wrap_object_and_collection_initializer_style=chop_always
wrap_array_initializer_style=wrap_if_long
wrap_arguments_style=wrap_if_long
keep_existing_invocation_parens_arrangement=false
wrap_after_invocation_lpar=false
wrap_before_invocation_rpar=false
wrap_after_dot_in_method_calls=true
wrap_chained_method_calls=wrap_if_long
wrap_before_binary_opsign=false
wrap_chained_binary_expressions=wrap_if_long
force_chop_compound_if_expression=true
force_chop_compound_while_expression=true
force_chop_compound_do_expression=true
wrap_before_ternary_opsigns=true
wrap_ternary_expr_style=wrap_if_long
nested_ternary_style=expanded
wrap_linq_expressions=wrap_if_long
wrap_before_linq_expression=false
place_linq_into_on_new_line=false
wrap_verbatim_interpolated_strings=wrap_if_long
extra_spaces=remove_all
space_after_keywords_in_control_flow_statements=false
space_between_method_call_name_and_opening_parenthesis=false
space_between_method_declaration_name_and_open_parenthesis=false
space_before_typeof_parentheses=false
space_before_checked_parentheses=false
space_before_sizeof_parentheses=false
space_before_nameof_parentheses=false
space_between_keyword_and_expression=true
space_between_keyword_and_type=true
space_around_assignment_op=true
space_around_logical_op=true
space_around_binary_operator=true
space_around_equality_op=true
space_around_relational_op=true
space_around_bitwise_op=true
space_around_additive_op=true
space_around_multiplicative_op=true
space_around_shift_op=true
space_around_nullcoalescing_op=true
space_around_arrow_op=false
space_after_logical_not_op=false
space_after_unary_operator=false
space_after_cast=false
space_around_dot=false
space_around_lambda_arrow=true
space_before_pointer_asterik_declaration=false
space_before_nullable_mark=false
blank_lines_around_class_definition=1
namespace_indentation=all
space_within_template_argument=false
align_union_type_usage=true
space_in_singleline_method=true
space_in_singleline_anonymous_method=true
space_within_single_line_array_initializer_braces=true
space_around_arrow_op=false
# These are for markup languages (HTML, XML, etc)
spaces_around_eq_in_pi_attribute=false
space_after_last_pi_attribute=true
pi_attributes_indent=align_by_first_attribute
blank_line_after_pi=true
spaces_around_eq_in_attribute=false
space_after_last_attribute=false
space_before_self_closing=true
attribute_style=on_single_line
attribute_indent=align_by_first_attribute
sort_attributes=true
sort_class_selectors=true
max_blank_lines_between_tags=0
linebreak_before_all_elements=true
linebreak_before_multiline_elements=true
quote_style=doublequoted
delete_quotes_from_solid_values=false
normalize_tag_names=true
[{.babelrc,.stylelintrc,jest.config,.eslintrc,.prettierrc,*.json,*.jsb3,*.jsb2,*.bowerrc}]
indent_size=2
[*.js.map]
indent_size=2
[*.{css,scss}]
indent_size=2
declarations_style=separate_lines_for_nonsingle
media_query_style=separate_lines
selector_style=same_line
properties_style=separate_lines_for_nonsingle
brace_style=next_line
[{.analysis_options,*.yml,*.yaml}]
indent_size=2
# Xml project files
[*.{csproj,vcxproj,vcxproj.filters,proj,nativeproj,locproj}]
indent_size = 2
# Xml files
[*.{xml,stylecop,resx,ruleset}]
indent_size = 2
# Xml config files
[*.{props,targets,config,nuspec}]
indent_size = 2
# .net files
[*.{cs,vb}]
# These set the this. / Me.
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
# These make it suggest Int32 instead of int, etc.
dotnet_style_predefined_type_for_locals_parameters_members=true:suggestion
dotnet_style_predefined_type_for_member_access=true:suggestion
# This controls implicit access modifiers
dotnet_style_require_accessibility_modifiers=never:suggestion
# Prefer non modified fields to be marked readonly
dotnet_style_readonly_field=true:warning
# Parenthesis settings
dotnet_style_parentheses_in_arithmetic_binary_operators=always_for_clarity:warning
dotnet_style_parentheses_in_relational_binary_operators=always_for_clarity:warning
dotnet_style_parentheses_in_other_binary_operators=always_for_clarity:warning
dotnet_style_parentheses_in_other_operators=always_for_clarity:warning
dotnet_style_object_initializer=true:suggestion
dotnet_style_collection_initializer=true:suggestion
dotnet_style_explicit_tuple_names=true:error
dotnet_style_prefer_inferred_tuple_names=true:warning
dotnet_style_prefer_inferred_anonymous_type_member_names=true:warning
dotnet_style_prefer_is_null_check_over_reference_equality_method=true:warning
dotnet_style_prefer_conditional_expression_over_return=true:warning
dotnet_style_coalesce_expression=true:warning
dotnet_style_null_propagation=true:error
dotnet_sort_system_directives_first=true
# Constants in C style, all-caps
dotnet_naming_rule.constant_fields_caps.symbols = constant_fields
dotnet_naming_rule.constant_fields_caps.severity = warning
dotnet_naming_rule.constant_fields_caps.style = caps_style
dotnet_naming_symbols.constant_fields.applicable_kinds = field
dotnet_naming_symbols.constant_fields.required_modifiers = const
dotnet_naming_style.caps_style.capitalization = all_upper
# interfaces should be prefixed with I
dotnet_naming_rule.pascal_case_for_interface.severity = error
dotnet_naming_rule.pascal_case_for_interface.symbols = interfaces_fields
dotnet_naming_rule.pascal_case_for_interface.style = pascal_case_interface_style
dotnet_naming_symbols.interfaces_fields.applicable_kinds = interface
dotnet_naming_style.pascal_case_interface_style.required_prefix = I
dotnet_naming_style.pascal_case_interface_style.capitalization = pascal_case
## internal and private fields should be _camelCase
dotnet_naming_rule.camel_case_for_private_internal_fields.severity = warning
dotnet_naming_rule.camel_case_for_private_internal_fields.symbols = private_internal_fields
dotnet_naming_rule.camel_case_for_private_internal_fields.style = camel_case_underscore_style
dotnet_naming_symbols.private_internal_fields.applicable_kinds = field
dotnet_naming_symbols.private_internal_fields.applicable_accessibilities = private, internal
dotnet_naming_style.camel_case_underscore_style.required_prefix = _
dotnet_naming_style.camel_case_underscore_style.capitalization = camel_case
# 2018-12-07 NP: This is not yet working in VS2017
# local variables should be camelCase
#dotnet_naming_rule.camel_case_for_locals.severity = suggestion
#dotnet_naming_rule.camel_case_for_locals.symbols = local_fields
#dotnet_naming_rule.camel_case_for_locals.style = camel_case_style
#dotnet_naming_symbols.local_fields.applicable_kinds = local
#dotnet_naming_style.camel_case_style.capitalization = camel_case
[*.cs]
# var var var
csharp_style_var_for_built_in_types=false:warning
csharp_style_var_when_type_is_apparent=true:suggestion
csharp_style_var_elsewhere=false:warning
csharp_style_expression_bodied_methods=when_on_single_line:suggestion
csharp_style_expression_bodied_constructors=when_on_single_line:suggestion
csharp_style_expression_bodied_operators=when_on_single_line:suggestion
csharp_style_expression_bodied_properties=when_on_single_line:suggestion
csharp_style_expression_bodied_indexers=when_on_single_line:suggestion
csharp_style_expression_bodied_accessors=when_on_single_line:suggestion
csharp_style_pattern_matching_over_is_with_cast_check=true:warning
csharp_style_pattern_matching_over_as_with_null_check=when_on_single_line:warning
csharp_style_inlined_variable_declaration=true:warning
csharp_prefer_simple_default_expression=true:warning
csharp_style_deconstructed_variable_declaration=false:warning
csharp_style_throw_expression=true:warning
csharp_style_conditional_delegate_call=true:warning
csharp_prefer_braces=false
csharp_new_line_before_open_brace=all
csharp_new_line_before_else=true
csharp_new_line_before_catch=true
csharp_new_line_before_finally=true
csharp_new_line_before_members_in_object_initializers=true
csharp_new_line_before_members_in_anonymous_types=true
csharp_new_line_between_query_expression_clauses=true
csharp_indent_case_contents=true
csharp_indent_switch_labels=true
csharp_indent_labels=flush_left
csharp_space_after_cast=false
csharp_space_after_keywords_in_control_flow_statements=false
csharp_space_between_method_declaration_parameter_list_parentheses=false
csharp_space_between_parentheses=none
csharp_space_before_colon_in_inheritance_clause=true
csharp_space_after_colon_in_inheritance_clause=true
csharp_space_around_binary_operators=before_and_after
csharp_space_between_method_declaration_empty_parameter_list_parentheses=false
csharp_space_between_method_call_name_and_opening_parenthesis=false
csharp_space_between_method_call_empty_parameter_list_parentheses=false
csharp_preserve_single_line_statements=false
csharp_preserve_single_line_blocks=true
csharp_blank_lines_around_region=0
csharp_blank_lines_inside_region=0
csharp_blank_lines_before_single_line_comment=1
csharp_keep_blank_lines_in_declarations=1
csharp_remove_blank_lines_near_braces_in_declarations=true
csharp_blank_lines_after_start_comment=false
csharp_blank_lines_between_using_groups=0
csharp_blank_lines_after_using_list=1
csharp_blank_lines_around_namespace=1
csharp_blank_lines_inside_namespace=0
csharp_blank_lines_around_type=1
csharp_blank_lines_inside_type=0
csharp_blank_lines_around_field=0
csharp_blank_lines_around_single_line_field=0
csharp_blank_lines_around_property=1
csharp_blank_lines_around_single_line_property=0
csharp_blank_lines_around_auto_property=0
csharp_blank_lines_around_single_line_auto_property=0
csharp_blank_lines_around_invocable=1
csharp_blank_lines_around_single_line_invocable=1
csharp_keep_blank_lines_in_code=1
csharp_remove_blank_lines_near_braces_in_code=true
csharp_blank_lines_around_local_method=1
csharp_blank_lines_around_single_line_local_method=1
csharp_blank_lines_before_control_transfer_statements=1
csharp_blank_lines_after_control_transfer_statements=1
csharp_blank_lines_before_block_statements=1
csharp_blank_lines_after_block_statements=1
csharp_blank_lines_before_multiline_statements=1
csharp_blank_lines_after_multiline_statements=1
csharp_type_declaration_braces=next_line
csharp_brace_style=next_line
csharp_indent_inside_namespace=true
csharp_invocable_declaration_braces=next_line
csharp_anonymous_method_declaration_braces=next_line
csharp_accessor_owner_declaration_braces=next_line
csharp_accessor_declaration_braces=next_line
csharp_case_block_braces=next_line
csharp_initializer_braces=next_line
csharp_other_braces=next_line
csharp_allow_comment_after_lbrace=false
csharp_empty_block_style=together_same_line
csharp_for_built_in_types=use_explicit_type
csharp_for_simple_types=use_var_when_evident
csharp_for_other_types=use_explicit_type
csharp_prefer_separate_deconstructed_variables_declaration=true
csharp_prefer_explicit_discard_declaration=false
csharp_instance_members_qualify_members=none
csharp_builtin_type_reference_style=use_keyword
csharp_prefer_qualified_reference=false
csharp_add_imports_to_deepest_scope=false
csharp_allow_alias=true
csharp_default_private_modifier=implicit
csharp_default_internal_modifier=explicit
csharp_arguments_literal=positional
csharp_arguments_string_literal=positional
csharp_arguments_named=positional
csharp_arguments_anonymous_function=positional
csharp_arguments_other=positional
csharp_braces_for_ifelse=not_required
csharp_braces_for_for=not_required
csharp_braces_for_foreach=not_required
csharp_braces_for_while=not_required
csharp_braces_for_dowhile=not_required
csharp_braces_for_using=not_required
csharp_braces_for_lock=not_required
csharp_braces_for_fixed=not_required
csharp_method_or_operator_body=expression_body
csharp_local_function_body=expression_body
csharp_constructor_or_destructor_body=expression_body
csharp_accessor_owner_body=expression_body
csharp_force_attribute_style=join
csharp_indent_nested_usings_stmt=true
csharp_builtin_type_reference_for_member_access_style=use_keyword
csharp_indent_nested_fixed_stmt=true
csharp_indent_nested_lock_stmt=true
csharp_indent_nested_for_stmt=true
csharp_indent_nested_foreach_stmt=true
csharp_indent_nested_while_stmt=true
csharp_use_continuous_indent_inside_parens=true
csharp_indent_method_decl_pars=inside
csharp_indent_invocation_pars=inside
csharp_indent_statement_pars=inside
csharp_indent_typeparam_angles=inside
csharp_indent_typearg_angles=inside
csharp_indent_pars=inside
csharp_indent_preprocessor_if=outdent
csharp_indent_preprocessor_region=usual_indent
csharp_indent_preprocessor_other=usual_indent
csharp_indent_switch_labels=true
csharp_indent_type_constraints=true
csharp_stick_comment=false
csharp_alignment_tab_fill_style=use_spaces
csharp_align_multiline_parameter=true
csharp_align_multiline_extends_list=true
csharp_align_linq_query=true
csharp_align_multiline_binary_expressions_chain=true
csharp_outdent_binary_ops=true
csharp_align_multiline_calls_chain=true
csharp_outdent_dots=true
csharp_align_multiline_array_and_object_initializer=false
csharp_indent_anonymous_method_block=false
csharp_align_first_arg_by_paren=true
csharp_align_multiline_argument=true
csharp_align_tuple_components=true
csharp_align_multiline_expression=true
csharp_align_multiline_for_stmt=true
csharp_align_multiple_declaration=true
csharp_align_multline_type_parameter_list=true
csharp_align_multline_type_parameter_constrains=true
csharp_int_align_fields=true
csharp_int_align_properties=true
csharp_int_align_methods=true
csharp_int_align_parameters=false
csharp_int_align_variables=true
csharp_int_align_assignments=true
csharp_int_align_nested_ternary=true
csharp_int_align_invocations=false
csharp_int_align_binary_expressions=true
csharp_int_align_comments=true
csharp_int_align_switch_sections=true
csharp_int_align=true
csharp_keep_user_linebreaks=false
csharp_keep_existing_arrangement=false
csharp_keep_existing_linebreaks=false
csharp_max_line_length=120
csharp_wrap_before_comma=false
csharp_special_else_if_treatment=true
csharp_insert_final_newline=false
csharp_place_type_attribute_on_same_line=never
csharp_place_method_attribute_on_same_line=never
csharp_place_accessorholder_attribute_on_same_line=never
csharp_place_attribute_on_same_line=never
csharp_place_accessor_attribute_on_same_line=never
csharp_place_attribute_on_same_line=never
csharp_place_field_attribute_on_same_line=never
csharp_place_attribute_on_same_line=never
csharp_wrap_parameters_style=wrap_if_long
csharp_keep_existing_declaration_parens_arrangement=false
csharp_wrap_before_declaration_lpar=false
csharp_wrap_after_declaration_lpar=false
csharp_wrap_before_declaration_rpar=false
csharp_place_constructor_initializer_on_same_line=true
csharp_keep_existing_expr_member_arrangement=false
csharp_place_expr_method_on_single_line=true
csharp_place_expr_property_on_single_line=true
csharp_place_expr_accessor_on_single_line=true
csharp_wrap_before_arrow_with_expressions=false
csharp_place_type_constraints_on_same_line=true
csharp_wrap_before_first_type_parameter_constraint=true
csharp_wrap_multiple_type_parameter_constraints_style=wrap_if_long
csharp_wrap_before_type_parameter_langle=true
csharp_wrap_before_extends_colon=false
csharp_wrap_extends_list_style=wrap_if_long
csharp_keep_existing_declaration_block_arrangement=false
csharp_place_abstract_accessorholder_on_single_line=true
csharp_place_simple_accessorholder_on_single_line=false
csharp_place_accessor_with_attrs_holder_on_single_line=false
csharp_place_simple_accessor_on_single_line=true
csharp_place_simple_method_on_single_line=false
csharp_keep_existing_enum_arrangement=false
csharp_place_simple_enum_on_single_line=false
csharp_wrap_enum_declaration=wrap_if_long
csharp_new_line_before_else=true
csharp_new_line_before_while=false
csharp_wrap_for_stmt_header_style=wrap_if_long
csharp_wrap_multiple_declaration_style=wrap_if_long
csharp_keep_existing_embedded_arrangement=false
csharp_place_simple_embedded_statement_on_same_line=false
csharp_place_simple_case_statement_on_same_line=true
csharp_keep_existing_embedded_block_arrangement=false
csharp_place_simple_embedded_block_on_same_line=false
csharp_place_simple_anonymousmethod_on_single_line=false
csharp_keep_existing_initializer_arrangement=false
csharp_place_simple_initializer_on_single_line=false
csharp_wrap_object_and_collection_initializer_style=chop_always
csharp_wrap_array_initializer_style=wrap_if_long
csharp_wrap_arguments_style=wrap_if_long
csharp_keep_existing_invocation_parens_arrangement=false
csharp_wrap_after_invocation_lpar=false
csharp_wrap_before_invocation_rpar=false
csharp_wrap_after_dot_in_method_calls=true
csharp_wrap_chained_method_calls=wrap_if_long
csharp_wrap_before_binary_opsign=false
csharp_wrap_chained_binary_expressions=wrap_if_long
csharp_force_chop_compound_if_expression=true
csharp_force_chop_compound_while_expression=true
csharp_force_chop_compound_do_expression=true
csharp_wrap_before_ternary_opsigns=true
csharp_wrap_ternary_expr_style=wrap_if_long
csharp_nested_ternary_style=expanded
csharp_wrap_linq_expressions=wrap_if_long
csharp_wrap_before_linq_expression=false
csharp_place_linq_into_on_new_line=false
csharp_wrap_verbatim_interpolated_strings=wrap_if_long
csharp_extra_spaces=remove_all
csharp_space_after_keywords_in_control_flow_statements=false
csharp_space_between_method_call_name_and_opening_parenthesis=false
csharp_space_between_method_declaration_name_and_open_parenthesis=false
csharp_space_before_typeof_parentheses=false
csharp_space_before_checked_parentheses=false
csharp_space_before_sizeof_parentheses=false
csharp_space_before_nameof_parentheses=false
csharp_space_between_keyword_and_expression=true
csharp_space_between_keyword_and_type=true
csharp_space_around_assignment_op=true
csharp_space_around_logical_op=true
csharp_space_around_binary_operator=true
csharp_space_around_equality_op=true
csharp_space_around_relational_op=true
csharp_space_around_bitwise_op=true
csharp_space_around_additive_op=true
csharp_space_around_multiplicative_op=true
csharp_space_around_shift_op=true
csharp_space_around_nullcoalescing_op=true
csharp_space_around_arrow_op=false
csharp_space_after_logical_not_op=false
csharp_space_after_unary_operator=false
csharp_space_after_cast=false
csharp_space_around_dot=false
csharp_space_around_lambda_arrow=true
csharp_space_before_pointer_asterik_declaration=false
csharp_space_before_nullable_mark=false
[*.cshtml]
linebreaks_around_razor_statements=true
blank_lines_around_razor_functions=true
blank_lines_around_razor_helpers=true
blank_lines_around_razor_sections=true
# C++
[*.{cc,cpp,cxx,h,hpp,hxx}]
cpp_indent_access_specifiers_from_class=true
cpp_indent_wrapped_function_names=false
cpp_align_multiline_type_argument=true
# C, C++ and ObjectiveC
[*.{c,h,cc,cpp,cxx,m,hpp,hxx}]
indent_preprocessor_directives=normal
indent_type_constraints=true
# Javascript and Typescript
[*.{js,js.map,ts}]
quote_style=doublequoted
termination_style=ensure_semicolon

597
.gitignore vendored Normal file
View File

@@ -0,0 +1,597 @@
### VisualStudio template
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush
.cr/
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
### Linux template
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
### Xcode template
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
## User settings
xcuserdata/
## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
*.xcscmblueprint
*.xccheckout
## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
build/
DerivedData/
*.moved-aside
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
### VisualStudioCode template
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
### C++ template
# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
*.o
# Precompiled Headers
*.gch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
### MonoDevelop template
#User Specific
*.usertasks
#Mono Project Files
*.resources
test-results/
### GPG template
secring.*
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
### CMake template
CMakeCache.txt
CMakeFiles
CMakeScripts
Testing
Makefile
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
### C template
# Object files
*.ko
*.elf
# Linker output
*.map
*.exp
*.so.*
# Executables
*.i*86
*.x86_64
*.hex
# Debug files
*.dSYM/
*.su
*.idb
# Kernel Module Compile Results
*.mod*
*.cmd
.tmp_versions/
modules.order
Module.symvers
Mkfile.old
dkms.conf
### Windows template
# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
# NuGet Packages Directory
packages/
## TODO: If the tool you use requires repositories.config uncomment the next line
#!packages/repositories.config
# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
# This line needs to be after the ignore of the build folder (and the packages folder if the line above has been uncommented)
!packages/build/
# Others
sql/
*.Cache
# Visual Studio 2017
.vs
workspace.xml
cmake-build-debug
### macOS template
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
pkg/**/pkg
pkg/**/src
pkg/**/*.asc
pkg/**/*.sig
pkg/**/*.tar.xz
pkg/**/*.zip
pkg/**/aaru
.sonarqube
build/*

162
LICENSE Normal file
View File

@@ -0,0 +1,162 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

16
RomRepoMgr.sln Normal file
View File

@@ -0,0 +1,16 @@

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RomRepoMgr", "RomRepoMgr\RomRepoMgr.csproj", "{6CDCA6AF-B060-45AC-BCE2-CDBB0AF6B9AE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6CDCA6AF-B060-45AC-BCE2-CDBB0AF6B9AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6CDCA6AF-B060-45AC-BCE2-CDBB0AF6B9AE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6CDCA6AF-B060-45AC-BCE2-CDBB0AF6B9AE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6CDCA6AF-B060-45AC-BCE2-CDBB0AF6B9AE}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

337
RomRepoMgr/.gitignore vendored Normal file
View File

@@ -0,0 +1,337 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
## Visual Studio Code specific files and folder
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.jsons
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
**/Properties/launchSettings.json
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush
.cr/
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/

10
RomRepoMgr/App.xaml Normal file
View File

@@ -0,0 +1,10 @@
<Application xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:RomRepoMgr" x:Class="RomRepoMgr.App">
<Application.DataTemplates>
<local:ViewLocator />
</Application.DataTemplates>
<Application.Styles>
<StyleInclude Source="avares://Avalonia.Themes.Default/DefaultTheme.xaml" />
<StyleInclude Source="avares://Avalonia.Themes.Default/Accents/BaseLight.xaml" />
</Application.Styles>
</Application>

24
RomRepoMgr/App.xaml.cs Normal file
View File

@@ -0,0 +1,24 @@
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using RomRepoMgr.ViewModels;
using RomRepoMgr.Views;
namespace RomRepoMgr
{
public class App : Application
{
public override void Initialize() => AvaloniaXamlLoader.Load(this);
public override void OnFrameworkInitializationCompleted()
{
if(ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
desktop.MainWindow = new MainWindow
{
DataContext = new MainWindowViewModel()
};
base.OnFrameworkInitializationCompleted();
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

18
RomRepoMgr/Program.cs Normal file
View File

@@ -0,0 +1,18 @@
using Avalonia;
using Avalonia.Logging.Serilog;
using Avalonia.ReactiveUI;
namespace RomRepoMgr
{
internal class Program
{
// Initialization code. Don't use any Avalonia, third-party APIs or any
// SynchronizationContext-reliant code before AppMain is called: things aren't initialized
// yet and stuff might break.
public static void Main(string[] args) => BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);
// Avalonia configuration, don't remove; also used by visual designer.
public static AppBuilder BuildAvaloniaApp() =>
AppBuilder.Configure<App>().UsePlatformDetect().LogToDebug().UseReactiveUI();
}
}

View File

@@ -0,0 +1,21 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="Models\"/>
<Compile Update="**\*.xaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>
<AvaloniaResource Include="**\*.xaml">
<SubType>Designer</SubType>
</AvaloniaResource>
<AvaloniaResource Include="Assets\**"/>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia" Version="0.9.12"/>
<PackageReference Include="Avalonia.Desktop" Version="0.9.12"/>
<PackageReference Include="Avalonia.ReactiveUI" Version="0.9.12"/>
</ItemGroup>
</Project>

28
RomRepoMgr/ViewLocator.cs Normal file
View File

@@ -0,0 +1,28 @@
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using System;
using Avalonia.Controls;
using Avalonia.Controls.Templates;
using RomRepoMgr.ViewModels;
namespace RomRepoMgr
{
public class ViewLocator : IDataTemplate
{
public bool SupportsRecycling => false;
public IControl Build(object data)
{
string name = data.GetType().FullName?.Replace("ViewModel", "View");
Type type = name is null ? null : Type.GetType(name);
return type is null ? new TextBlock
{
Text = "Not Found: " + name
} : (Control)Activator.CreateInstance(type);
}
public bool Match(object data) => data is ViewModelBase;
}
}

View File

@@ -0,0 +1,7 @@
namespace RomRepoMgr.ViewModels
{
public class MainWindowViewModel : ViewModelBase
{
public string Greeting => "Hello World!";
}
}

View File

@@ -0,0 +1,6 @@
using ReactiveUI;
namespace RomRepoMgr.ViewModels
{
public class ViewModelBase : ReactiveObject {}
}

View File

@@ -0,0 +1,10 @@
<Window xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:RomRepoMgr.ViewModels;assembly=RomRepoMgr"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="800"
d:DesignHeight="450" x:Class="RomRepoMgr.Views.MainWindow" Icon="/Assets/avalonia-logo.ico" Title="RomRepoMgr">
<Design.DataContext>
<vm:MainWindowViewModel />
</Design.DataContext>
<TextBlock Text="{Binding Greeting}" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Window>

View File

@@ -0,0 +1,12 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace RomRepoMgr.Views
{
public class MainWindow : Window
{
public MainWindow() => InitializeComponent();
void InitializeComponent() => AvaloniaXamlLoader.Load(this);
}
}

6
RomRepoMgr/nuget.config Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="AvaloniaCI" value="https://www.myget.org/F/avalonia-ci/api/v2" />
</packageSources>
</configuration>

1
codealike.json Normal file
View File

@@ -0,0 +1 @@
{"projectId":"ad616503-97fa-41cc-8470-2fd4ac56d06f","projectName":"RomRepoMgr"}