diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 2bafc15..ace32b2 100755
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -21,7 +21,9 @@
"syncfusioninc.blazor-vscode-extensions",
"ms-dotnettools.vscode-dotnet-runtime",
"ms-dotnettools.blazorwasm-companion",
- "PKief.material-icon-theme"
+ "PKief.material-icon-theme",
+ "Codeium.codeium",
+ "sourcegraph.cody-ai"
]
}
},
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..f2b90a4
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,229 @@
+# Remove the line below if you want to inherit .editorconfig settings from higher directories
+root = true
+
+# C# files
+[*.cs]
+
+#### Core EditorConfig Options ####
+
+# Indentation and spacing
+indent_size = 4
+indent_style = tab
+tab_width = 4
+
+# New line preferences
+end_of_line = crlf
+insert_final_newline = true
+
+#### .NET Coding Conventions ####
+
+# 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
+dotnet_style_qualification_for_field = false
+dotnet_style_qualification_for_method = false
+dotnet_style_qualification_for_property = false
+
+# Language keywords vs BCL types preferences
+dotnet_style_predefined_type_for_locals_parameters_members = true
+dotnet_style_predefined_type_for_member_access = true
+
+# Parentheses preferences
+dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity
+dotnet_style_parentheses_in_other_binary_operators = always_for_clarity
+dotnet_style_parentheses_in_other_operators = never_if_unnecessary
+dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity
+
+# Modifier preferences
+dotnet_style_require_accessibility_modifiers = for_non_interface_members
+
+# Expression-level preferences
+dotnet_style_coalesce_expression = true
+dotnet_style_collection_initializer = true
+dotnet_style_explicit_tuple_names = true
+dotnet_style_namespace_match_folder = true
+dotnet_style_null_propagation = true
+dotnet_style_object_initializer = true
+dotnet_style_operator_placement_when_wrapping = beginning_of_line
+dotnet_style_prefer_auto_properties = true
+dotnet_style_prefer_compound_assignment = true
+dotnet_style_prefer_conditional_expression_over_assignment = true
+dotnet_style_prefer_conditional_expression_over_return = true
+dotnet_style_prefer_foreach_explicit_cast_in_source = when_strongly_typed
+dotnet_style_prefer_inferred_anonymous_type_member_names = true
+dotnet_style_prefer_inferred_tuple_names = true
+dotnet_style_prefer_is_null_check_over_reference_equality_method = true
+dotnet_style_prefer_simplified_boolean_expressions = true
+dotnet_style_prefer_simplified_interpolation = true
+
+# Field preferences
+dotnet_style_readonly_field = true
+
+# Parameter preferences
+dotnet_code_quality_unused_parameters = all
+
+# Suppression preferences
+dotnet_remove_unnecessary_suppression_exclusions = none
+
+# New line preferences
+dotnet_style_allow_multiple_blank_lines_experimental = true
+dotnet_style_allow_statement_immediately_after_block_experimental = true
+
+#### C# Coding Conventions ####
+
+# var preferences
+csharp_style_var_elsewhere = true
+csharp_style_var_for_built_in_types = true
+csharp_style_var_when_type_is_apparent = true
+
+# Expression-bodied members
+csharp_style_expression_bodied_accessors = true
+csharp_style_expression_bodied_constructors = true
+csharp_style_expression_bodied_indexers = true
+csharp_style_expression_bodied_lambdas = true
+csharp_style_expression_bodied_local_functions = true
+csharp_style_expression_bodied_methods = true
+csharp_style_expression_bodied_operators = true
+csharp_style_expression_bodied_properties = true
+
+# Pattern matching preferences
+csharp_style_pattern_matching_over_as_with_null_check = true
+csharp_style_pattern_matching_over_is_with_cast_check = true
+csharp_style_prefer_extended_property_pattern = true
+csharp_style_prefer_not_pattern = true
+csharp_style_prefer_pattern_matching = true
+csharp_style_prefer_switch_expression = true
+
+# Null-checking preferences
+csharp_style_conditional_delegate_call = true
+
+# Modifier preferences
+csharp_prefer_static_local_function = true
+csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async
+csharp_style_prefer_readonly_struct = true
+csharp_style_prefer_readonly_struct_member = true
+
+# Code-block preferences
+csharp_prefer_braces = true
+csharp_prefer_simple_using_statement = false
+csharp_style_namespace_declarations = file_scoped
+csharp_style_prefer_method_group_conversion = true
+csharp_style_prefer_top_level_statements = true
+
+# Expression-level preferences
+csharp_prefer_simple_default_expression = true
+csharp_style_deconstructed_variable_declaration = false
+csharp_style_implicit_object_creation_when_type_is_apparent = true
+csharp_style_inlined_variable_declaration = true
+csharp_style_prefer_index_operator = true
+csharp_style_prefer_local_over_anonymous_function = true
+csharp_style_prefer_null_check_over_type_check = true
+csharp_style_prefer_range_operator = true
+csharp_style_prefer_tuple_swap = true
+csharp_style_prefer_utf8_string_literals = true
+csharp_style_throw_expression = true
+csharp_style_unused_value_assignment_preference = discard_variable
+csharp_style_unused_value_expression_statement_preference = unused_local_variable
+
+# 'using' directive preferences
+csharp_using_directive_placement = outside_namespace
+
+# New line preferences
+csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true
+csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true
+csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true
+csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true
+csharp_style_allow_embedded_statements_on_same_line_experimental = true
+
+#### 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
+
+#### Naming styles ####
+
+# Naming rules
+
+dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
+dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
+dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
+
+dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.types_should_be_pascal_case.symbols = types
+dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
+
+dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
+dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
+
+# Symbol specifications
+
+dotnet_naming_symbols.interface.applicable_kinds = interface
+dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.interface.required_modifiers =
+
+dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
+dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.types.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 =
+
+# Naming styles
+
+dotnet_naming_style.pascal_case.required_prefix =
+dotnet_naming_style.pascal_case.required_suffix =
+dotnet_naming_style.pascal_case.word_separator =
+dotnet_naming_style.pascal_case.capitalization = pascal_case
+
+dotnet_naming_style.begins_with_i.required_prefix = I
+dotnet_naming_style.begins_with_i.required_suffix =
+dotnet_naming_style.begins_with_i.word_separator =
+dotnet_naming_style.begins_with_i.capitalization = pascal_case
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..1ff0c42
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,63 @@
+###############################################################################
+# Set default behavior to automatically normalize line endings.
+###############################################################################
+* text=auto
+
+###############################################################################
+# Set default behavior for command prompt diff.
+#
+# This is need for earlier builds of msysgit that does not have it on by
+# default for csharp files.
+# Note: This is only used by command line
+###############################################################################
+#*.cs diff=csharp
+
+###############################################################################
+# Set the merge driver for project and solution files
+#
+# Merging from the command prompt will add diff markers to the files if there
+# are conflicts (Merging from VS is not affected by the settings below, in VS
+# the diff markers are never inserted). Diff markers may cause the following
+# file extensions to fail to load in VS. An alternative would be to treat
+# these files as binary and thus will always conflict and require user
+# intervention with every merge. To do so, just uncomment the entries below
+###############################################################################
+#*.sln merge=binary
+#*.csproj merge=binary
+#*.vbproj merge=binary
+#*.vcxproj merge=binary
+#*.vcproj merge=binary
+#*.dbproj merge=binary
+#*.fsproj merge=binary
+#*.lsproj merge=binary
+#*.wixproj merge=binary
+#*.modelproj merge=binary
+#*.sqlproj merge=binary
+#*.wwaproj merge=binary
+
+###############################################################################
+# behavior for image files
+#
+# image files are treated as binary by default.
+###############################################################################
+#*.jpg binary
+#*.png binary
+#*.gif binary
+
+###############################################################################
+# diff behavior for common document formats
+#
+# Convert binary document formats to text before diffing them. This feature
+# is only available from the command line. Turn it on by uncommenting the
+# entries below.
+###############################################################################
+#*.doc diff=astextplain
+#*.DOC diff=astextplain
+#*.docx diff=astextplain
+#*.DOCX diff=astextplain
+#*.dot diff=astextplain
+#*.DOT diff=astextplain
+#*.pdf diff=astextplain
+#*.PDF diff=astextplain
+#*.rtf diff=astextplain
+#*.RTF diff=astextplain
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 46dfaef..16af945 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -2,22 +2,21 @@
"version": "0.2.0",
"configurations": [
{
- "name": "RunClient",
+ "name": "RunBrowlClient",
"type": "blazorwasm",
"request": "launch",
- "preLaunchTask": "build-client",
- "cwd": "${workspaceFolder}/Browl.Client",
- "url": "https://localhost:5900"
+ "preLaunchTask": "Browl.Client",
+ "cwd": "${workspaceFolder}/src/Presentation/Browl.Client/",
+ "url": "https://localhost:1400"
},
{
- "name": "RunHabitService",
+ "name": "RunBrowlServiceMarketDataCollector",
"type": "coreclr",
"request": "launch",
- "preLaunchTask": "build-habit-service",
- "program": "${workspaceFolder}/Browl.Service.MarketDataCollector/bin/Debug/net7.0/Browl.Service.MarketDataCollector.dll",
+ "preLaunchTask": "dotnet: watch Browl.Service.MarketDataCollector.API",
+ "program": "${workspaceFolder}/src/Services/Browl.Service.MarketDataCollector/Browl.Service.MarketDataCollector.API",
"args": [],
- "cwd":
- "${workspaceFolder}/Browl.Service.MarketDataCollector",
+ "cwd": "${workspaceFolder}/src/Services/Browl.Service.MarketDataCollector/Browl.Service.MarketDataCollector.API",
"stopAtEntry": false,
"console": "integratedTerminal"
},
@@ -26,8 +25,8 @@
{
"name": "Run All",
"configurations": [
- "RunHabitService",
- "RunClient"
+ "RunBrowlServiceMarketDataCollector",
+ "RunBrowlClient"
]
}
]
diff --git a/.vscode/settings.json b/.vscode/settings.json
index c10e08c..544b7b4 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,4 +1,3 @@
{
- "thunder-client.saveToWorkspace": true,
- "thunder-client.workspaceRelativePath": ".thunder-client"
+
}
\ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 3c84ba6..0a9e385 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -2,12 +2,12 @@
"version": "2.0.0",
"tasks": [
{
- "label": "build-client",
+ "label": "Browl.Client",
"type": "shell",
"command": "dotnet",
"args": [
"build",
- "${workspaceFolder}/Browl.Client/Browl.Client.csproj"
+ "${workspaceFolder}/src/Presentation/Browl.Client/Browl.Client.csproj"
],
"group": {
"kind": "build",
@@ -15,17 +15,26 @@
}
},
{
- "label": "build-habit-service",
+ "label": "BrowlServiceMarketDataCollector",
"type": "shell",
"command": "dotnet",
"args": [
"build",
- "${workspaceFolder}/Browl.Service.MarketDataCollector/Browl.Service.MarketDataCollector.csproj"
+ "${workspaceFolder}/src/Services/Browl.Service.MarketDataCollector/Browl.Service.MarketDataCollector.API"
],
"group": {
"kind": "build",
"isDefault": true
}
},
+ {
+ "type": "dotnet",
+ "task": "watch Browl.Service.MarketDataCollector.API",
+ "file": "${workspaceFolder}\\src\\Services\\Browl.Service.MarketDataCollector\\Browl.Service.MarketDataCollector.API\\Browl.Service.MarketDataCollector.API.csproj",
+ "problemMatcher": [
+ "$msCompile"
+ ],
+ "label": "dotnet: watch Browl.Service.MarketDataCollector.API"
+ }
]
}
\ No newline at end of file
diff --git a/Browl.sln b/Browl.sln
index 86cc704..0cf6f1f 100644
--- a/Browl.sln
+++ b/Browl.sln
@@ -80,9 +80,23 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Browl.Service.MarketDataCol
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Browl.Service.MarketDataCollector.Application.Test", "test\Services\Browl.Service.MarketDataCollector.Test\Browl.Service.MarketDataCollector.Application.Test\Browl.Service.MarketDataCollector.Application.Test.csproj", "{D3458E46-B1F2-4CAF-BDFD-94AB31F6528A}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Browl.Service.MarketDataCollector.Infrastructure.Test", "test\Services\Browl.Service.MarketDataCollector.Test\Browl.Service.MarketDataCollector.Infrastructure.Test\Browl.Service.MarketDataCollector.Infrastructure.Test.csproj", "{14DFBDD1-124E-4E8F-9F90-270FE83F0704}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Browl.Service.MarketDataCollector.Infrastructure.Test", "test\Services\Browl.Service.MarketDataCollector.Test\Browl.Service.MarketDataCollector.Infrastructure.Test\Browl.Service.MarketDataCollector.Infrastructure.Test.csproj", "{14DFBDD1-124E-4E8F-9F90-270FE83F0704}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Browl.Client.Test", "test\Presentation\Browl.Client.Test\Browl.Client.Test.csproj", "{72694572-0D50-4A39-A657-73133F074AF7}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Browl.Client.Test", "test\Presentation\Browl.Client.Test\Browl.Client.Test.csproj", "{72694572-0D50-4A39-A657-73133F074AF7}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Browl.Service.MarketDataCollector.FakeData", "test\Services\Browl.Service.MarketDataCollector.Test\Browl.Service.MarketDataCollector.FakeData\Browl.Service.MarketDataCollector.FakeData.csproj", "{7A01F807-7685-48FB-BAD0-9303E96A53B5}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FakeData", "FakeData", "{361920A2-8B95-47B1-AA42-C9ADD6D28D23}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Browl.Service.AuthSecurity", "Browl.Service.AuthSecurity", "{09EE67D6-ADE1-4A0A-8766-974D00A71209}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Browl.Service.AuthSecurity.API", "src\Services\Browl.Service.AuthSecurity\Browl.Service.AuthSecurity.API\Browl.Service.AuthSecurity.API.csproj", "{051A7F26-D824-420B-B642-741C6CD41F13}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Browl.Service.AuthSecurity.Test", "Browl.Service.AuthSecurity.Test", "{544648A6-FDBF-43E2-9C7B-93BA0300C4D4}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Browl.Service.AuthSecurity.API.Test", "test\Services\Browl.Service.AuthSecurity.Test\Browl.Service.AuthSecurity.API.Test\Browl.Service.AuthSecurity.API.Test.csproj", "{728FCF2F-3429-4A46-A16F-396B3D67741A}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{1E1868B1-34EC-4C95-9E41-4AFE56CCB434}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -130,6 +144,18 @@ Global
{72694572-0D50-4A39-A657-73133F074AF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{72694572-0D50-4A39-A657-73133F074AF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{72694572-0D50-4A39-A657-73133F074AF7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7A01F807-7685-48FB-BAD0-9303E96A53B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7A01F807-7685-48FB-BAD0-9303E96A53B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7A01F807-7685-48FB-BAD0-9303E96A53B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7A01F807-7685-48FB-BAD0-9303E96A53B5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {051A7F26-D824-420B-B642-741C6CD41F13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {051A7F26-D824-420B-B642-741C6CD41F13}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {051A7F26-D824-420B-B642-741C6CD41F13}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {051A7F26-D824-420B-B642-741C6CD41F13}.Release|Any CPU.Build.0 = Release|Any CPU
+ {728FCF2F-3429-4A46-A16F-396B3D67741A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {728FCF2F-3429-4A46-A16F-396B3D67741A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {728FCF2F-3429-4A46-A16F-396B3D67741A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {728FCF2F-3429-4A46-A16F-396B3D67741A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -154,6 +180,12 @@ Global
{D3458E46-B1F2-4CAF-BDFD-94AB31F6528A} = {DB8F8AA6-A0F4-487D-B807-787C5117DD35}
{14DFBDD1-124E-4E8F-9F90-270FE83F0704} = {DB8F8AA6-A0F4-487D-B807-787C5117DD35}
{72694572-0D50-4A39-A657-73133F074AF7} = {1B3CDB1E-8F3E-4900-A61F-B13C974872FF}
+ {7A01F807-7685-48FB-BAD0-9303E96A53B5} = {361920A2-8B95-47B1-AA42-C9ADD6D28D23}
+ {361920A2-8B95-47B1-AA42-C9ADD6D28D23} = {DB8F8AA6-A0F4-487D-B807-787C5117DD35}
+ {09EE67D6-ADE1-4A0A-8766-974D00A71209} = {758EAD6C-01B5-4816-97E5-CA0E5F217D34}
+ {051A7F26-D824-420B-B642-741C6CD41F13} = {09EE67D6-ADE1-4A0A-8766-974D00A71209}
+ {544648A6-FDBF-43E2-9C7B-93BA0300C4D4} = {9EFCDE84-8614-410C-A41E-F21DA32CEC23}
+ {728FCF2F-3429-4A46-A16F-396B3D67741A} = {544648A6-FDBF-43E2-9C7B-93BA0300C4D4}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {09C8AF50-40D4-48F2-A03D-9BC7AB6D3538}
diff --git a/docs/Bot.md b/docs/Bot.md
index 5cc6aed..0e2d686 100644
--- a/docs/Bot.md
+++ b/docs/Bot.md
@@ -1,8 +1,4 @@
-Código de identificação: #7
-
-Para refinar ainda mais o diagrama de contexto para compra e venda de criptomoedas, podemos adicionar as referências entre os serviços existentes.
-Isso nos ajudará a entender melhor como cada serviço interage com os demais e como eles se comunicam.
-O diagrama refinado com as referências pode ser representado da seguinte forma:
+Diagrama de contexto para compra e venda de criptomoedas:
+-------------------------+ +------------------------+
| Serviço de Coleta de | | Serviço de Análise de |
@@ -53,76 +49,3 @@ O diagrama refinado com as referências pode ser representado da seguinte forma:
| Serviço de Autenticação | | Serviço de Monitoramento | | Referência:|
| e Segurança | | e Registro | | Registro |
+-------------------------+ +------------------------+ +------------+
-
-
-
-
-Código de identificação: #8
-
-Com base no diagrama de contexto e nas necessidades do software descritas anteriormente,
-podemos estruturar o projeto em camadas para garantir a escalabilidade,
-a segurança e a resiliência do software. Uma possível estrutura de projeto em C# pode ser a seguinte:
-
-OnePiece/
-├── OnePiece.API/
-│ ├── Controllers/
-│ ├── Models/
-│ ├── Services/
-│ ├── Startup.cs
-│ └── appsettings.json
-├── OnePiece.BusinessLogic/
-│ ├── DataModels/
-│ ├── Interfaces/
-│ ├── Services/
-│ └── Validators/
-├── OnePiece.DataAccess/
-│ ├── Context/
-│ ├── Migrations/
-│ ├── Repositories/
-│ ├── Entities/
-│ └── ApplicationDbContext.cs
-└── OnePiece.Tests/
- ├── Controllers/
- ├── Services/
- └── DataAccess/
-
-No diagrama de contexto, vemos que o serviço OnePiece está dividido em duas partes principais: a interface do usuário e o back-end. A interface do usuário (UI) é responsável por receber as entradas do usuário e apresentar as saídas. Já o back-end é responsável por processar as solicitações recebidas, buscar dados de fontes externas, como corretoras de criptomoedas, e retornar as informações relevantes para a interface do usuário.
-
-A estrutura de projeto em camadas proposta no
-Código de Identificação #8 está alinhada com essa divisão em duas partes principais.
-A camada OnePiece.API é responsável por expor as APIs para a interface do usuário,
-enquanto as camadas OnePiece.BusinessLogic e OnePiece.DataAccess são responsáveis
-por fornecer a lógica de negócios e o acesso a dados para o back-end do software.
-
-Portanto, a estrutura de projeto em camadas ajuda a garantir que as responsabilidades sejam bem definidas e distribuídas em diferentes partes do software, permitindo uma melhor organização e manutenção do código.
-
-A seguir, detalharemos as responsabilidades de cada camada:
-
-OnePiece.API: camada responsável por expor as APIs para o front-end ou outros serviços externos. Aqui, serão definidos os Controllers que vão lidar com as requisições HTTP, os Models que vão definir as estruturas dos dados enviados e recebidos nas APIs e os Services que vão orquestrar as chamadas às outras camadas do software.
-
-OnePiece.BusinessLogic: camada que contém toda a lógica de negócios do software. Aqui, são definidos os DataModels que vão representar os dados de entrada e saída dos serviços, as Interfaces que vão definir os contratos a serem implementados pelos Services e Validators que vão validar os dados de entrada antes de serem enviados às outras camadas.
-
-OnePiece.DataAccess: camada que contém toda a lógica de acesso a dados do software. Aqui, são definidos os Contexts que vão gerenciar o acesso ao banco de dados, as Migrations que vão controlar as alterações do banco de dados, as Repositories que vão definir as consultas ao banco de dados e as Entities que vão representar as tabelas do banco de dados.
-
-OnePiece.Tests: camada responsável por conter os testes unitários do software. Aqui, são definidos os Controllers que vão testar as requisições HTTP, os Services que vão testar as chamadas às outras camadas e o DataAccess que vão testar o acesso ao banco de dados.
-
-
-Ao utilizar essa estrutura de projeto em camadas, podemos garantir a separação de responsabilidades e a escalabilidade do software.
-Além disso, a divisão em camadas permite a criação de testes unitários de forma mais fácil e ajuda na manutenção do código.
-
-
-Código de identificação: #9
-
-A estrutura de projeto em camadas proposta no Código de Identificação #8 está diretamente relacionada com o diagrama de contexto apresentado no Código de Identificação #7.
-
-No diagrama de contexto, vemos que o serviço OnePiece está dividido em duas partes principais:
- a interface do usuário e o back-end. A interface do usuário (UI) é responsável por receber as entradas do usuário e apresentar as saídas.
- Já o back-end é responsável por processar as solicitações recebidas,
- buscar dados de fontes externas, como corretoras de criptomoedas, e retornar as informações relevantes para a interface do usuário.
-
-A estrutura de projeto em camadas proposta no Código de Identificação #8 está alinhada com essa divisão em duas partes principais.
- A camada OnePiece.API é responsável por expor as APIs para a interface do usuário,
- enquanto as camadas OnePiece.BusinessLogic e OnePiece.DataAccess são responsáveis por fornecer a lógica de negócios e o acesso a dados para o back-end do software.
-
-Portanto, a estrutura de projeto em camadas ajuda a garantir que as responsabilidades sejam bem definidas
-e distribuídas em diferentes partes do software, permitindo uma melhor organização e manutenção do código.
\ No newline at end of file
diff --git "a/docs/C\303\263digo de identifica\303\247\303\243o - 7.md" "b/docs/C\303\263digo de identifica\303\247\303\243o - 7.md"
deleted file mode 100644
index 0c97052..0000000
--- "a/docs/C\303\263digo de identifica\303\247\303\243o - 7.md"
+++ /dev/null
@@ -1,30 +0,0 @@
-Código de identificação: #7
-
-O diagrama de contexto apresentado no Código de Identificação #7 representa os serviços envolvidos no processo de compra e venda de criptomoedas. Nesse diagrama, temos uma visão geral do sistema e das principais interações entre os serviços.
-
-Na parte superior do diagrama, temos o usuário, que interage com o sistema por meio de uma interface de usuário (UI). A interface de usuário é responsável por receber as entradas do usuário e apresentar as saídas.
-
-Na parte inferior do diagrama, temos as corretoras de criptomoedas, que fornecem informações sobre os livros de ofertas e permitem a compra e venda de criptomoedas.
-
-Entre a interface do usuário e as corretoras de criptomoedas, temos o serviço CryptoTrader, que é responsável por processar as solicitações recebidas da interface do usuário, buscar dados das corretoras de criptomoedas e apresentar as informações relevantes de volta para a interface do usuário.
-
-Além disso, temos uma referência para o serviço de carteira, que é responsável por armazenar as criptomoedas compradas pelo usuário e permitir transferências para outras carteiras.
-
-Esse diagrama de contexto é útil para entendermos as principais interações e componentes do sistema e pode ser usado como base para a definição da arquitetura de software e das funcionalidades necessárias para o sistema funcionar de forma adequada.
-
-
-__// \\__
-
-O diagrama de contexto apresentado mostra as principais entidades envolvidas no processo de compra e venda de criptomoedas. A seguir, explicarei cada elemento presente no diagrama:
-
-Usuário: é a pessoa que utiliza o sistema por meio de uma interface de usuário (UI). A UI é responsável por receber as entradas do usuário e apresentar as saídas.
-
-Interface de usuário (UI): é a camada mais externa do sistema e fornece a interface para que o usuário possa interagir com o sistema. A UI é responsável por enviar as solicitações do usuário para o serviço OnePiece e apresentar as informações de retorno para o usuário.
-
-Serviço OnePiece: é responsável por processar as solicitações recebidas da interface do usuário, buscar dados das corretoras de criptomoedas e apresentar as informações relevantes de volta para a interface do usuário. O serviço OnePiece substituiu o serviço CryptoTrader mencionado anteriormente.
-
-Corretoras de criptomoedas: são as empresas que fornecem informações sobre os livros de ofertas e permitem a compra e venda de criptomoedas. O serviço OnePiece se comunica com as corretoras para obter as informações necessárias.
-
-Serviço de carteira: é responsável por armazenar as criptomoedas compradas pelo usuário e permitir transferências para outras carteiras. É uma referência para o serviço OnePiece.
-
-O diagrama de contexto é útil para entendermos as principais interações entre os componentes do sistema. Com base nesse diagrama, podemos iniciar a definição da arquitetura de software e das funcionalidades necessárias para o sistema funcionar de forma adequada.
\ No newline at end of file
diff --git a/docs/estrutura.md b/docs/estrutura.md
deleted file mode 100644
index 0b4d23c..0000000
--- a/docs/estrutura.md
+++ /dev/null
@@ -1,59 +0,0 @@
-OnePiece
-├── OnePiece.Application # Camada de Aplicação
-│ ├── Interfaces # Interfaces para entrada e saída da camada de Aplicação
-│ ├── Services # Implementações dos serviços da camada de Aplicação
-│ ├── DTOs # Objetos de transferência de dados para a camada de Aplicação
-│ └── Mappings # Mapeamentos entre DTOs e entidades
-
-├── OnePiece.Domain # Camada de Domínio
-│ ├── Entities # Entidades do domínio
-│ ├── Interfaces # Interfaces do domínio
-│ └── Services # Serviços do domínio
-
-├── OnePiece.Infrastructure # Camada de Infraestrutura
-│ ├── Data # Repositórios e implementações do acesso a dados
-│ ├── Interfaces # Interfaces de Infraestrutura
-│ ├── Services # Serviços de Infraestrutura
-│ └── Persistence # Configuração e inicialização do banco de dados
-
-├── OnePiece.Tests # Testes unitários
-
-├── OnePiece.API # Camada de Apresentação
-│ ├── Controllers # Controladores da API
-│ ├── DTOs # Objetos de transferência de dados para a API
-│ ├── Mappings # Mapeamentos entre DTOs e entidades
-│ └── Startup.cs # Configurações iniciais da API
-
-└── OnePiece.Shared # Camada compartilhada
-├── Exceptions # Exceções personalizadas
-├── Interfaces # Interfaces compartilhadas
-└── Utils # Utilitários compartilhados
-
-
- +-----------------------+
- | OnePiece.API |
- +-----------------------+
- |
- | depende de
- |
- +-----------------------+
- | OnePiece.Application |
- +-----------------------+
- |
- | depende de
- |
- +-----------------------+
- | OnePiece.Domain |
- +-----------------------+
- |
- | depende de
- |
- +-----------------------+
- | OnePiece.Infrastructure|
- +-----------------------+
- |
- | usa
- |
- +-----------------------+
- | OnePiece.Shared |
- +-----------------------+
diff --git a/docs/responsabilidades .md b/docs/responsabilidades .md
deleted file mode 100644
index eb2760d..0000000
--- a/docs/responsabilidades .md
+++ /dev/null
@@ -1,56 +0,0 @@
-Camada de Apresentação: essa camada é responsável pela interação com o usuário ou outros sistemas externos. Aqui ficam as interfaces gráficas, controladores, rotas e validações de entrada.
-
-Camada de Aplicação: essa camada é responsável por orquestrar as operações do sistema e realizar a lógica de negócio. Aqui ficam os serviços, interfaces de entrada e saída e os DTOs.
-
-Camada de Domínio: essa camada contém as entidades e regras de negócio do sistema. Aqui ficam as interfaces do domínio, entidades, enums e exceções personalizadas.
-
-Camada de Infraestrutura: essa camada é responsável por fornecer a infraestrutura técnica para o sistema, como acesso a banco de dados, serviços externos, cache e logging. Aqui ficam os repositórios, serviços de infraestrutura e as interfaces de infraestrutura.
-
-Camada compartilhada: essa camada contém interfaces e objetos compartilhados entre as outras camadas.
-
-
-
- +--------------------------+
- | Camada de Apresentação|
- +--------------------------+
- | Controladores |
- | Interfaces de Serviços |
- | DTOs |
- +--------------------------+
- |
- |
- +--------------------------+
- | Camada de Aplicação |
- +--------------------------+
- | Serviços |
- | Interfaces de entrada |
- | Interfaces de saída |
- | DTOs |
- +--------------------------+
- |
- |
- +--------------------------+
- | Camada de Domínio |
- +--------------------------+
- | Entidades |
- | Interfaces do Domínio |
- | Exceções personalizadas|
- | Enums |
- +--------------------------+
- |
- |
- +--------------------------+
- | Camada de Infraestrut|
- +--------------------------+
- | Repositórios |
- | Serviços de infraestrut|
- | Interfaces de Infraestr|
- +--------------------------+
- |
- |
- +--------------------------+
- | Camada compartilhada |
- +--------------------------+
- | Interfaces compartilhad|
- | Objetos compartilhados |
- +--------------------------+
diff --git a/global.json b/global.json
new file mode 100644
index 0000000..540ac54
--- /dev/null
+++ b/global.json
@@ -0,0 +1,5 @@
+{
+ "sdk": {
+ "version": "7.*"
+ }
+}
\ No newline at end of file
diff --git a/src/Presentation/Browl.Client/App.razor b/src/Presentation/Browl.Client/App.razor
index b80db76..3510ec6 100644
--- a/src/Presentation/Browl.Client/App.razor
+++ b/src/Presentation/Browl.Client/App.razor
@@ -1,11 +1,15 @@
-
-
-
-
-
- Not found
-
-
Sorry, there's nothing at this address.
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+ Not found
+
+
+
+@code {
+
+}
diff --git a/src/Presentation/Browl.Client/Pages/Index.razor b/src/Presentation/Browl.Client/Pages/Index.razor
index d778782..ecef91f 100644
--- a/src/Presentation/Browl.Client/Pages/Index.razor
+++ b/src/Presentation/Browl.Client/Pages/Index.razor
@@ -4,7 +4,6 @@
Hello, world!Welcome to your new app, powered by MudBlazor!
-You can find documentation and examples on our website here: www.mudblazor.com