-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from CloudPhoenix/feature/include-service-and-m…
…iddlware Include Service and Middlwares
- Loading branch information
Showing
23 changed files
with
713 additions
and
240 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,243 @@ | ||
# editorconfig.org | ||
|
||
# top-most EditorConfig file | ||
root = true | ||
|
||
# Default settings: | ||
# A newline ending every file | ||
# Use 4 spaces as indentation | ||
[*] | ||
end_of_line = lf | ||
insert_final_newline = true | ||
indent_size = 4 | ||
indent_style = space | ||
trim_trailing_whitespace = true | ||
|
||
[*.{json,yml,yaml}] | ||
indent_size = 2 | ||
|
||
# C# files | ||
[*.cs] | ||
|
||
# CS1591: Missing XML comment for publicly visible type or member | ||
dotnet_diagnostic.CS1591.severity = none | ||
|
||
# IDE0290: Use primary constructor | ||
dotnet_diagnostic.IDE0290.severity = none | ||
|
||
# CS1591: Do not directly await a Task | ||
dotnet_diagnostic.CA2007.severity = none | ||
|
||
# Review SQL queries for security vulnerabilities | ||
dotnet_diagnostic.CA2100.severity = none | ||
|
||
# New line preferences | ||
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 | ||
|
||
# Indentation preferences | ||
csharp_indent_block_contents = true | ||
csharp_indent_braces = false | ||
csharp_indent_case_contents = true | ||
csharp_indent_case_contents_when_block = false | ||
csharp_indent_switch_labels = true | ||
csharp_indent_labels = one_less_than_current | ||
|
||
# Modifier preferences | ||
csharp_preferred_modifier_order = public, private, protected, internal, static, extern, new, virtual, abstract, sealed, override, readonly, unsafe, volatile, async:suggestion | ||
|
||
# avoid this. unless absolutely necessary | ||
dotnet_style_qualification_for_field = false:suggestion | ||
dotnet_style_qualification_for_property = false:suggestion | ||
dotnet_style_qualification_for_method = false:suggestion | ||
dotnet_style_qualification_for_event = false:suggestion | ||
|
||
# Types: use keywords instead of BCL types, and permit var only when the type is clear | ||
csharp_style_var_for_built_in_types = false:suggestion | ||
csharp_style_var_when_type_is_apparent = false:none | ||
csharp_style_var_elsewhere = false:suggestion | ||
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion | ||
dotnet_style_predefined_type_for_member_access = true:suggestion | ||
|
||
# name all constant fields using PascalCase | ||
dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion | ||
dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields | ||
dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style | ||
dotnet_naming_symbols.constant_fields.applicable_kinds = field | ||
dotnet_naming_symbols.constant_fields.required_modifiers = const | ||
dotnet_naming_style.pascal_case_style.capitalization = pascal_case | ||
|
||
# static fields should have s_ prefix | ||
dotnet_naming_rule.static_fields_should_have_prefix.severity = none | ||
|
||
# internal and private fields should be _camelCase | ||
dotnet_naming_rule.camel_case_for_private_internal_fields.severity = suggestion | ||
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 | ||
|
||
# Code style defaults | ||
csharp_using_directive_placement = outside_namespace:suggestion | ||
dotnet_sort_system_directives_first = true | ||
csharp_prefer_braces = true:refactoring | ||
csharp_preserve_single_line_blocks = true:none | ||
csharp_preserve_single_line_statements = false:none | ||
csharp_prefer_static_local_function = true:suggestion | ||
csharp_prefer_simple_using_statement = false:none | ||
csharp_style_prefer_switch_expression = true:suggestion | ||
|
||
# Code style extensions | ||
csharp_style_namespace_declarations = file_scoped:warning | ||
dotnet_diagnostic.SA1000.severity = warning # Keywords must be spaced correctly | ||
dotnet_diagnostic.SA1001.severity = warning # Commas must be spaced correctly | ||
dotnet_diagnostic.SA1005.severity = warning # Single line comments must begin with single space | ||
dotnet_diagnostic.SA1012.severity = warning # Opening braces must be spaced correctly | ||
dotnet_diagnostic.SA1013.severity = warning # Closing braces must be spaced correctly | ||
dotnet_diagnostic.SA1015.severity = warning # Closing generic brackets must be spaced correctly | ||
dotnet_diagnostic.SA1025.severity = warning # Code must not contain multiple whitespace in a row | ||
dotnet_diagnostic.SA1026.severity = warning # Code must not contain space after new keyword in implicitly typed array allocation | ||
dotnet_diagnostic.SA1110.severity = warning # Opening parenthesis must be on declaration line | ||
dotnet_diagnostic.SA1115.severity = warning # Parameter must follow comma | ||
dotnet_diagnostic.SA1116.severity = warning # Split parameters must start on line after declaration | ||
dotnet_diagnostic.SA1117.severity = warning # Parameters must be on same line or separate lines | ||
dotnet_diagnostic.SA1119.severity = warning # Statement must not use unnecessary parenthesis | ||
dotnet_diagnostic.SA1121.severity = warning # Use built in type alias | ||
dotnet_diagnostic.SA1122.severity = warning # Use `string.Empty` for empty strings | ||
dotnet_diagnostic.SA1127.severity = warning # Generic type constraints must be on own line | ||
dotnet_diagnostic.SA1128.severity = warning # Constructor initializer must be on own line | ||
dotnet_diagnostic.SA1129.severity = warning # Do not use default value type constructor | ||
dotnet_diagnostic.SA1137.severity = warning # Elements should have the same indentation | ||
dotnet_diagnostic.SA1201.severity = warning # Elements must appear in the correct order | ||
dotnet_diagnostic.SA1202.severity = warning # Elements must be ordered by access | ||
dotnet_diagnostic.SA1203.severity = warning # Constants must appear before fields | ||
dotnet_diagnostic.SA1204.severity = warning # Static elements must appear before instance elements | ||
dotnet_diagnostic.SA1208.severity = warning # System using directives must be placed before other using directives | ||
dotnet_diagnostic.SA1209.severity = warning # Using alias directives must be placed after other using directives | ||
dotnet_diagnostic.SA1210.severity = warning # Using directives must be ordered alphabetically by namespace | ||
dotnet_diagnostic.SA1211.severity = warning # Using alias directives must be ordered alphabetically by alias name | ||
dotnet_diagnostic.SA1214.severity = warning # Readonly elements must appear before non readonly elements | ||
dotnet_diagnostic.SA1216.severity = warning # Using static directives must be placed at the correct location | ||
dotnet_diagnostic.SA1303.severity = warning # Const field names must begin with upper case letter | ||
dotnet_diagnostic.SA1306.severity = warning # Field names must begin with lower case letter | ||
dotnet_diagnostic.SA1308.severity = warning # Variable names must not be prefixed | ||
dotnet_diagnostic.SA1312.severity = warning # Variable names must begin with lower case letter | ||
dotnet_diagnostic.SA1313.severity = warning # Parameter names must begin with lower case letter | ||
dotnet_diagnostic.SA1316.severity = warning # Tuple element names should use correct casing | ||
dotnet_diagnostic.SA1400.severity = warning # Access modifier must be declared | ||
dotnet_diagnostic.SA1408.severity = warning # Conditional expressions must declare precedence | ||
dotnet_diagnostic.SA1413.severity = warning # Use trailing commas in multiline initializers | ||
dotnet_diagnostic.SA1500.severity = warning # Braces for multi line statements must not share line | ||
dotnet_diagnostic.SA1501.severity = warning # Statement must not be on single line | ||
dotnet_diagnostic.SA1502.severity = warning # Element must not be on single line | ||
dotnet_diagnostic.SA1503.severity = warning # Braces must not be omitted | ||
dotnet_diagnostic.SA1505.severity = warning # Opening braces must not be followed by blank line | ||
dotnet_diagnostic.SA1507.severity = warning # Code must not contain multiple blank lines in aRow | ||
dotnet_diagnostic.SA1508.severity = warning # Closing braces must not be preceded by blank line | ||
dotnet_diagnostic.SA1512.severity = warning # Single line comments must not be followed by blank line | ||
dotnet_diagnostic.SA1513.severity = warning # Closing brace must be followed by blank line | ||
dotnet_diagnostic.SA1515.severity = warning # Single line comment must be preceded by blank line | ||
dotnet_diagnostic.SA1516.severity = warning # Elements must be separated by blank line | ||
dotnet_diagnostic.SA1518.severity = warning # Use line endings correctly at end of file | ||
dotnet_diagnostic.SA1649.severity = warning # File name must match type name | ||
|
||
# Code quality | ||
dotnet_style_readonly_field = true:suggestion | ||
dotnet_code_quality_unused_parameters = non_public:suggestion | ||
|
||
# Expression-level preferences | ||
dotnet_style_object_initializer = true:suggestion | ||
dotnet_style_collection_initializer = true:suggestion | ||
dotnet_style_explicit_tuple_names = true:suggestion | ||
dotnet_style_coalesce_expression = true:suggestion | ||
dotnet_style_null_propagation = true:suggestion | ||
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion | ||
dotnet_style_prefer_inferred_tuple_names = true:suggestion | ||
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion | ||
dotnet_style_prefer_auto_properties = true:suggestion | ||
dotnet_style_prefer_conditional_expression_over_assignment = true:refactoring | ||
dotnet_style_prefer_conditional_expression_over_return = true:refactoring | ||
csharp_prefer_simple_default_expression = true:suggestion | ||
|
||
# Expression-bodied members | ||
csharp_style_expression_bodied_methods = true:refactoring | ||
csharp_style_expression_bodied_constructors = true:refactoring | ||
csharp_style_expression_bodied_operators = true:refactoring | ||
csharp_style_expression_bodied_properties = true:refactoring | ||
csharp_style_expression_bodied_indexers = true:refactoring | ||
csharp_style_expression_bodied_accessors = true:refactoring | ||
csharp_style_expression_bodied_lambdas = true:refactoring | ||
csharp_style_expression_bodied_local_functions = true:refactoring | ||
|
||
# Pattern matching | ||
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion | ||
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion | ||
csharp_style_inlined_variable_declaration = true:suggestion | ||
|
||
# Null checking preferences | ||
csharp_style_throw_expression = true:suggestion | ||
csharp_style_conditional_delegate_call = true:suggestion | ||
|
||
# Other features | ||
csharp_style_prefer_index_operator = false:none | ||
csharp_style_prefer_range_operator = false:none | ||
csharp_style_pattern_local_over_anonymous_function = false:none | ||
|
||
# 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 = do_not_ignore | ||
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 | ||
|
||
# Analyzers | ||
dotnet_code_quality.ca1802.api_surface = private, internal | ||
|
||
# C++ Files | ||
[*.{cpp,h,in}] | ||
curly_bracket_next_line = true | ||
indent_brace_style = Allman | ||
|
||
# Xml project files | ||
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,nativeproj,locproj}] | ||
indent_size = 2 | ||
|
||
# Xml build files | ||
[*.builds] | ||
indent_size = 2 | ||
|
||
# Xml files | ||
[*.{xml,stylecop,resx,ruleset}] | ||
indent_size = 2 | ||
|
||
# Xml config files | ||
[*.{props,targets,config,nuspec}] | ||
indent_size = 2 | ||
|
||
# Shell scripts | ||
[*.{cmd, bat}] | ||
end_of_line = crlf |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
namespace NLogFlake.Constants; | ||
|
||
internal static class HttpClientConstants | ||
{ | ||
internal const int PostTimeoutSeconds = 3; | ||
internal const string ClientName = "LogFlakeClient"; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
namespace NLogFlake.Constants; | ||
|
||
internal static class QueuesConstants | ||
{ | ||
internal const string LOGS = "logs"; | ||
|
||
internal const string PERFORMANCES = "perf"; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
namespace NLogFlake.Constants; | ||
|
||
internal static class ServersConstants | ||
{ | ||
internal const string PRODUCTION = "https://app.logflake.io"; | ||
|
||
internal const string TEST = "https://app-test.logflake.io"; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
namespace NLogFlake; | ||
|
||
public interface ILogFlake | ||
{ | ||
void SendLog(string content, Dictionary<string, object>? parameters = null); | ||
|
||
void SendLog(LogLevels level, string content, Dictionary<string, object>? parameters = null); | ||
|
||
void SendLog(LogLevels level, string? correlation, string? content, Dictionary<string, object>? parameters = null); | ||
|
||
void SendException(Exception e); | ||
|
||
void SendException(Exception e, string? correlation); | ||
|
||
void SendPerformance(string label, long duration); | ||
|
||
IPerformanceCounter MeasurePerformance(string label); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
namespace NLogFlake; | ||
|
||
public interface IPerformanceCounter | ||
{ | ||
void Start(); | ||
|
||
void Restart(); | ||
|
||
long Stop(); | ||
|
||
long Pause(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
using Microsoft.Extensions.Configuration; | ||
using Microsoft.Extensions.DependencyInjection; | ||
using NLogFlake.Constants; | ||
using NLogFlake.Models.Options; | ||
using NLogFlake.Services; | ||
|
||
namespace NLogFlake; | ||
|
||
public static class IServiceCollectionExtensions | ||
{ | ||
public static IServiceCollection AddLogFlake(this IServiceCollection services, IConfiguration configuration) | ||
{ | ||
_ = services.Configure<LogFlakeOptions>(configuration.GetSection(LogFlakeOptions.SectionName)) | ||
.AddOptionsWithValidateOnStart<LogFlakeOptions, LogFlakeOptionsValidator>(); | ||
|
||
services.AddHttpClient(HttpClientConstants.ClientName, ConfigureClient); | ||
|
||
services.AddScoped<ICorrelationService, CorrelationService>(); | ||
|
||
services.AddSingleton<ILogFlake, LogFlake>(); | ||
services.AddSingleton<ILogFlakeService, LogFlakeService>(); | ||
|
||
return services; | ||
} | ||
|
||
private static void ConfigureClient(HttpClient client) | ||
{ | ||
client.Timeout = TimeSpan.FromSeconds(HttpClientConstants.PostTimeoutSeconds); | ||
client.DefaultRequestHeaders.Add("Accept", "application/json"); | ||
client.DefaultRequestHeaders.Add("User-Agent", "logflake-client-netcore/1.5.0"); | ||
} | ||
} |
Oops, something went wrong.