diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..fc2933b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,226 @@ +# 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 = false + +#### .NET Coding Conventions #### + +# Organize usings +dotnet_separate_import_directive_groups = false +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 = false +dotnet_style_allow_statement_immediately_after_block_experimental = false + +#### 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 = false +csharp_style_expression_bodied_indexers = true +csharp_style_expression_bodied_lambdas = true +csharp_style_expression_bodied_local_functions = false +csharp_style_expression_bodied_methods = false +csharp_style_expression_bodied_operators = false +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 + +# Code-block preferences +csharp_prefer_braces = when_multiline +csharp_prefer_simple_using_statement = true +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 = true +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 = discard_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_lines_between_consecutive_braces_experimental = false +csharp_style_allow_embedded_statements_on_same_line_experimental = false + +#### 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 = false + +#### 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/Common.Model/Documents/IDocument.cs b/Common.Model/Documents/IDocument.cs deleted file mode 100644 index c057869..0000000 --- a/Common.Model/Documents/IDocument.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Connected.Data; - -namespace Common.Documents -{ - /// - /// Represents the base entity for all documents. - /// - /// - /// Document is primary entity of the business processes. It provides - /// schema which is used in a business process lifecycle. Documents, apart from - /// some basic validation, do not provide any specifiec business logic. Business - /// processes are entirely responsible for the business logic. - /// - public interface IDocument : IPrimaryKey - where TPrimaryKey : notnull - { - /// - /// The date when document was created. - /// - DateTimeOffset Created { get; init; } - /// - /// The date when document was last updated. - /// - DateTimeOffset? Modified { get; init; } - /// - /// The unique identifier of the document. This is - /// usually set by a customer specific numbering system. - /// - string? Code { get; init; } - /// - /// The user which created the document. Can be null if document was created by the system. - /// - int? Author { get; init; } - /// - /// The user last modified the document. Once user modifies the document it becomes the Owner. - /// - /// - /// This behavior could be overriden in documents implementation. - /// - int? Owner { get; init; } - } -} diff --git a/Common.Notes.Model/Common.Notes.Model.csproj b/Common.Notes.Model/Common.Notes.Model.csproj deleted file mode 100644 index 1379137..0000000 --- a/Common.Notes.Model/Common.Notes.Model.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - net7.0 - enable - enable - Common.Notes - - - - - - - - diff --git a/Common.Notes/Common.Notes.csproj b/Common.Notes/Common.Notes.csproj deleted file mode 100644 index d5d620f..0000000 --- a/Common.Notes/Common.Notes.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - net7.0 - enable - enable - - - - - - - - - - diff --git a/Common.Numbering.Middleware/Common.Numbering.Middleware.csproj b/Common.Numbering.Middleware/Common.Numbering.Middleware.csproj deleted file mode 100644 index 2d0affe..0000000 --- a/Common.Numbering.Middleware/Common.Numbering.Middleware.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - net7.0 - enable - enable - Common.Numbering - - - - - - - - diff --git a/Common.Numbering/Common.Numbering.csproj b/Common.Numbering/Common.Numbering.csproj deleted file mode 100644 index a128285..0000000 --- a/Common.Numbering/Common.Numbering.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - net7.0 - enable - enable - - - - - - - - - - diff --git a/Common/CommonStartup.cs b/Common/CommonStartup.cs deleted file mode 100644 index a8617a6..0000000 --- a/Common/CommonStartup.cs +++ /dev/null @@ -1,39 +0,0 @@ -using Common.Documents; -using Common.Globalization; -using Common.Security.Identity; -using Connected; -using Connected.Annotations; -using Connected.Globalization; -using Connected.Net.Endpoints; -using Connected.Net.Server; -using Connected.Security.Identity; -using Connected.ServiceModel; -using Microsoft.Extensions.DependencyInjection; - -[assembly: MicroService(MicroServiceType.Service)] - -namespace Common -{ - internal class CommonStartup : Startup - { - protected override void OnConfigureServices(IServiceCollection services) - { - services.AddScoped(typeof(IGlobalizationService), typeof(GlobalizationService)); - services.AddScoped(typeof(IIdentityService), typeof(IdentityService)); - services.AddTransient(typeof(IDocumentLocker<,>), typeof(DocumentLocker<,>)); - } - - protected override async Task OnInitialize(Dictionary args) - { - if (Services is null || Services.GetService() is not IContextProvider provider) - return; - - using var ctx = provider.Create(); - - if (ctx.GetService() is not IEndpointService endpoints || ctx.GetService() is not IEndpointServer server) - return; - - await server.Initialize(await endpoints.Query(), ctx.CancellationToken); - } - } -} diff --git a/Common.Model/CommonRoutes.cs b/Connected.Common.Model/CommonRoutes.cs similarity index 84% rename from Common.Model/CommonRoutes.cs rename to Connected.Common.Model/CommonRoutes.cs index e833d89..8454dfe 100644 --- a/Common.Model/CommonRoutes.cs +++ b/Connected.Common.Model/CommonRoutes.cs @@ -1,4 +1,4 @@ -namespace Common; +namespace Connected.Common; public static class CommonRoutes { diff --git a/Common.Model/Common.Model.csproj b/Connected.Common.Model/Connected.Common.Model.csproj similarity index 87% rename from Common.Model/Common.Model.csproj rename to Connected.Common.Model/Connected.Common.Model.csproj index ec9d83a..d851f63 100644 --- a/Common.Model/Common.Model.csproj +++ b/Connected.Common.Model/Connected.Common.Model.csproj @@ -5,7 +5,7 @@ enable enable $(MSBuildProjectName) - Common + Connected.Common diff --git a/Common.Model/Documents/DocumentArgs.cs b/Connected.Common.Model/Documents/DocumentArgs.cs similarity index 87% rename from Common.Model/Documents/DocumentArgs.cs rename to Connected.Common.Model/Documents/DocumentArgs.cs index 1e90daf..d8987f4 100644 --- a/Common.Model/Documents/DocumentArgs.cs +++ b/Connected.Common.Model/Documents/DocumentArgs.cs @@ -1,8 +1,8 @@ -using Connected.Annotations; +using System.ComponentModel.DataAnnotations; +using Connected.Annotations; using Connected.ServiceModel; -using System.ComponentModel.DataAnnotations; -namespace Common.Documents; +namespace Connected.Common.Documents; public class DocumentArgs : Dto { diff --git a/Connected.Common.Model/Documents/IDocument.cs b/Connected.Common.Model/Documents/IDocument.cs new file mode 100644 index 0000000..8787dc5 --- /dev/null +++ b/Connected.Common.Model/Documents/IDocument.cs @@ -0,0 +1,41 @@ +using Connected.Data; + +namespace Connected.Common.Documents; + +/// +/// Represents the base entity for all documents. +/// +/// +/// Document is primary entity of the business processes. It provides +/// schema which is used in a business process lifecycle. Documents, apart from +/// some basic validation, do not provide any specifiec business logic. Business +/// processes are entirely responsible for the business logic. +/// +public interface IDocument : IPrimaryKey + where TPrimaryKey : notnull +{ + /// + /// The date when document was created. + /// + DateTimeOffset Created { get; init; } + /// + /// The date when document was last updated. + /// + DateTimeOffset? Modified { get; init; } + /// + /// The unique identifier of the document. This is + /// usually set by a customer specific numbering system. + /// + string? Code { get; init; } + /// + /// The user which created the document. Can be null if document was created by the system. + /// + int? Author { get; init; } + /// + /// The user last modified the document. Once user modifies the document it becomes the Owner. + /// + /// + /// This behavior could be overriden in documents implementation. + /// + int? Owner { get; init; } +} diff --git a/Common.Model/Documents/IDocumentService.cs b/Connected.Common.Model/Documents/IDocumentService.cs similarity index 91% rename from Common.Model/Documents/IDocumentService.cs rename to Connected.Common.Model/Documents/IDocumentService.cs index 1e54eaf..5551349 100644 --- a/Common.Model/Documents/IDocumentService.cs +++ b/Connected.Common.Model/Documents/IDocumentService.cs @@ -1,6 +1,6 @@ using Connected.Notifications; -namespace Common.Documents; +namespace Connected.Common.Documents; public interface IDocumentService : IServiceNotifications { event ServiceEventHandler>? ItemInserted; diff --git a/Common.Model/Units.cs b/Connected.Common.Model/Units.cs similarity index 68% rename from Common.Model/Units.cs rename to Connected.Common.Model/Units.cs index cf97585..ee5bfc6 100644 --- a/Common.Model/Units.cs +++ b/Connected.Common.Model/Units.cs @@ -1,4 +1,4 @@ -namespace Common; +namespace Connected.Common; public static class Units { diff --git a/Common.Notes.Model/Boot.cs b/Connected.Common.Notes.Model/Boot.cs similarity index 100% rename from Common.Notes.Model/Boot.cs rename to Connected.Common.Notes.Model/Boot.cs diff --git a/Common.Model/Common - Backup.Model.csproj b/Connected.Common.Notes.Model/Connected.Common.Notes.Model.csproj similarity index 68% rename from Common.Model/Common - Backup.Model.csproj rename to Connected.Common.Notes.Model/Connected.Common.Notes.Model.csproj index 5d211e6..96d6617 100644 --- a/Common.Model/Common - Backup.Model.csproj +++ b/Connected.Common.Notes.Model/Connected.Common.Notes.Model.csproj @@ -4,11 +4,12 @@ net7.0 enable enable - $(MSBuildProjectName) + Connected.Common.Notes + diff --git a/Common.Notes.Model/INote.cs b/Connected.Common.Notes.Model/INote.cs similarity index 81% rename from Common.Notes.Model/INote.cs rename to Connected.Common.Notes.Model/INote.cs index 606a783..9b16768 100644 --- a/Common.Notes.Model/INote.cs +++ b/Connected.Common.Notes.Model/INote.cs @@ -1,6 +1,6 @@ using Connected.Data; -namespace Common.Notes; +namespace Connected.Common.Notes; public interface INote : IEntityContainer { diff --git a/Common.Notes.Model/INoteSearch.cs b/Connected.Common.Notes.Model/INoteSearch.cs similarity index 83% rename from Common.Notes.Model/INoteSearch.cs rename to Connected.Common.Notes.Model/INoteSearch.cs index 40efb8a..4ac2409 100644 --- a/Common.Notes.Model/INoteSearch.cs +++ b/Connected.Common.Notes.Model/INoteSearch.cs @@ -1,6 +1,6 @@ using Connected.Data; -namespace Common.Notes; +namespace Connected.Common.Notes; public interface INoteSearch : IEntityContainer { int Author { get; init; } diff --git a/Common.Notes.Model/INoteService.cs b/Connected.Common.Notes.Model/INoteService.cs similarity index 95% rename from Common.Notes.Model/INoteService.cs rename to Connected.Common.Notes.Model/INoteService.cs index 3d63544..466f344 100644 --- a/Common.Notes.Model/INoteService.cs +++ b/Connected.Common.Notes.Model/INoteService.cs @@ -3,7 +3,7 @@ using Connected.Annotations; using Connected.ServiceModel; using Connected.ServiceModel.Search; -namespace Common.Notes; +namespace Connected.Common.Notes; [Service] [ServiceUrl(NoteUrls.Notes)] diff --git a/Common.Notes.Model/INoteText.cs b/Connected.Common.Notes.Model/INoteText.cs similarity index 83% rename from Common.Notes.Model/INoteText.cs rename to Connected.Common.Notes.Model/INoteText.cs index 75e2df3..d9b02ce 100644 --- a/Common.Notes.Model/INoteText.cs +++ b/Connected.Common.Notes.Model/INoteText.cs @@ -1,6 +1,6 @@ using Connected.Data; -namespace Common.Notes; +namespace Connected.Common.Notes; public interface INoteText : IPrimaryKey { diff --git a/Common.Notes.Model/NoteArgs.cs b/Connected.Common.Notes.Model/NoteArgs.cs similarity index 96% rename from Common.Notes.Model/NoteArgs.cs rename to Connected.Common.Notes.Model/NoteArgs.cs index c2a65fb..b999588 100644 --- a/Common.Notes.Model/NoteArgs.cs +++ b/Connected.Common.Notes.Model/NoteArgs.cs @@ -1,7 +1,7 @@ using System.ComponentModel.DataAnnotations; using Connected.ServiceModel; -namespace Common.Notes; +namespace Connected.Common.Notes; public class NoteArgs : Dto { [Required, MaxLength(128)] diff --git a/Common.Notes.Model/NoteUrls.cs b/Connected.Common.Notes.Model/NoteUrls.cs similarity index 71% rename from Common.Notes.Model/NoteUrls.cs rename to Connected.Common.Notes.Model/NoteUrls.cs index 92e218b..5d7ba23 100644 --- a/Common.Notes.Model/NoteUrls.cs +++ b/Connected.Common.Notes.Model/NoteUrls.cs @@ -1,4 +1,4 @@ -namespace Common.Notes; +namespace Connected.Common.Notes; public static class NoteUrls { public const string Notes = $"{CommonRoutes.Common}/notes"; diff --git a/Common.Notes/Bootstrap.cs b/Connected.Common.Notes/Bootstrap.cs similarity index 100% rename from Common.Notes/Bootstrap.cs rename to Connected.Common.Notes/Bootstrap.cs diff --git a/Connected.Common.Notes/Connected.Common.Notes.csproj b/Connected.Common.Notes/Connected.Common.Notes.csproj new file mode 100644 index 0000000..e1828b7 --- /dev/null +++ b/Connected.Common.Notes/Connected.Common.Notes.csproj @@ -0,0 +1,16 @@ + + + + net7.0 + enable + enable + + + + + + + + + + diff --git a/Common.Notes/Note.cs b/Connected.Common.Notes/Note.cs similarity index 92% rename from Common.Notes/Note.cs rename to Connected.Common.Notes/Note.cs index 5e8eb95..8bce8f4 100644 --- a/Common.Notes/Note.cs +++ b/Connected.Common.Notes/Note.cs @@ -2,7 +2,7 @@ using Connected.Entities.Annotations; using Connected.Entities.Containers; -namespace Common.Notes; +namespace Connected.Common.Notes; [Table(Schema = Constants.CommonSchema)] public sealed record Note : ContainerEntity, INote diff --git a/Common.Notes/NoteOps.cs b/Connected.Common.Notes/NoteOps.cs similarity index 93% rename from Common.Notes/NoteOps.cs rename to Connected.Common.Notes/NoteOps.cs index 71b8c8c..deeed8a 100644 --- a/Common.Notes/NoteOps.cs +++ b/Connected.Common.Notes/NoteOps.cs @@ -8,7 +8,7 @@ using Connected.ServiceModel; using Connected.ServiceModel.Search; using Connected.Services; -namespace Common.Notes; +namespace Connected.Common.Notes; internal static class NoteOps { /// @@ -196,8 +196,8 @@ internal static class NoteOps protected override async Task?> OnInvoke() { return await (from dc in Storage.Open() - where dc.Text.Contains(Arguments.Text) - select dc).AsEntities(); + where dc.Text.Contains(Arguments.Text) + select dc).AsEntities(); } } @@ -213,9 +213,9 @@ internal static class NoteOps protected override async Task?> OnInvoke() { return await (from dc in Storage.Open() - where string.Equals(dc.Entity, Arguments.Entity, StringComparison.Ordinal) - && Arguments.IdList.Any(f => f == dc.Id) - select dc).AsEntities(); + where string.Equals(dc.Entity, Arguments.Entity, StringComparison.Ordinal) + && Arguments.IdList.Any(f => f == dc.Id) + select dc).AsEntities(); } } @@ -231,10 +231,10 @@ internal static class NoteOps protected override async Task OnInvoke() { return await (from dc in Provider.Open() - where string.Equals(dc.Entity, Arguments.Entity) - && string.Equals(dc.EntityId, Arguments.EntityId) - && dc.Id == Arguments.Id - select dc).AsEntity(); + where string.Equals(dc.Entity, Arguments.Entity) + && string.Equals(dc.EntityId, Arguments.EntityId) + && dc.Id == Arguments.Id + select dc).AsEntity(); } } } diff --git a/Common.Notes/NoteSearch.cs b/Connected.Common.Notes/NoteSearch.cs similarity index 92% rename from Common.Notes/NoteSearch.cs rename to Connected.Common.Notes/NoteSearch.cs index 8eac90c..19228e1 100644 --- a/Common.Notes/NoteSearch.cs +++ b/Connected.Common.Notes/NoteSearch.cs @@ -2,7 +2,7 @@ using Connected.Entities.Annotations; using Connected.Entities.Containers; -namespace Common.Notes; +namespace Connected.Common.Notes; [Persistence(Persistence = ColumnPersistence.InMemory)] public record NoteSearch : ContainerEntity, INoteSearch { diff --git a/Common.Notes/NoteService.cs b/Connected.Common.Notes/NoteService.cs similarity index 97% rename from Common.Notes/NoteService.cs rename to Connected.Common.Notes/NoteService.cs index 885bbc5..c21d24e 100644 --- a/Common.Notes/NoteService.cs +++ b/Connected.Common.Notes/NoteService.cs @@ -3,7 +3,7 @@ using Connected.ServiceModel; using Connected.ServiceModel.Search; using Connected.Services; -namespace Common.Notes; +namespace Connected.Common.Notes; internal sealed class NoteService : Service, INoteService { public NoteService(IContext context) : base(context) diff --git a/Common.Notes/NoteText.cs b/Connected.Common.Notes/NoteText.cs similarity index 94% rename from Common.Notes/NoteText.cs rename to Connected.Common.Notes/NoteText.cs index bb917c7..2cc41b6 100644 --- a/Common.Notes/NoteText.cs +++ b/Connected.Common.Notes/NoteText.cs @@ -4,7 +4,7 @@ using Connected.Entities.Annotations; using Connected.ServiceModel.Annotations; using Connected.ServiceModel.Data; -namespace Common.Notes; +namespace Connected.Common.Notes; public sealed record NoteText : TableEntity, INoteText { public const string EntityKey = $"{Constants.CommonSchema}.{nameof(NoteText)}"; diff --git a/Connected.Common.Numbering.Middleware/Connected.Common.Numbering.Middleware.csproj b/Connected.Common.Numbering.Middleware/Connected.Common.Numbering.Middleware.csproj new file mode 100644 index 0000000..9523ce8 --- /dev/null +++ b/Connected.Common.Numbering.Middleware/Connected.Common.Numbering.Middleware.csproj @@ -0,0 +1,15 @@ + + + + net7.0 + enable + enable + Connected.Common.Numbering + + + + + + + + diff --git a/Common.Numbering.Middleware/INumberingProvider.cs b/Connected.Common.Numbering.Middleware/INumberingProvider.cs similarity index 91% rename from Common.Numbering.Middleware/INumberingProvider.cs rename to Connected.Common.Numbering.Middleware/INumberingProvider.cs index 32a2969..e1a96b2 100644 --- a/Common.Numbering.Middleware/INumberingProvider.cs +++ b/Connected.Common.Numbering.Middleware/INumberingProvider.cs @@ -1,6 +1,4 @@ -using Connected; - -namespace Common.Numbering; +namespace Connected.Common.Numbering; /// /// Provides middleware for providing a numbering algorithm. /// diff --git a/Common.Numbering.Model/Common.Numbering.Model.csproj b/Connected.Common.Numbering.Model/Connected.Common.Numbering.Model.csproj similarity index 83% rename from Common.Numbering.Model/Common.Numbering.Model.csproj rename to Connected.Common.Numbering.Model/Connected.Common.Numbering.Model.csproj index a7c8f5d..3f2260a 100644 --- a/Common.Numbering.Model/Common.Numbering.Model.csproj +++ b/Connected.Common.Numbering.Model/Connected.Common.Numbering.Model.csproj @@ -4,7 +4,7 @@ net7.0 enable enable - Common.Numbering + Connected.Common.Numbering diff --git a/Common.Numbering.Model/INumbering.cs b/Connected.Common.Numbering.Model/INumbering.cs similarity index 78% rename from Common.Numbering.Model/INumbering.cs rename to Connected.Common.Numbering.Model/INumbering.cs index d27cde2..17ab801 100644 --- a/Common.Numbering.Model/INumbering.cs +++ b/Connected.Common.Numbering.Model/INumbering.cs @@ -1,6 +1,6 @@ using Connected.Data; -namespace Common.Numbering; +namespace Connected.Common.Numbering; public interface INumbering : IPrimaryKey { string Entity { get; init; } diff --git a/Common.Numbering.Model/INumberingService.cs b/Connected.Common.Numbering.Model/INumberingService.cs similarity index 93% rename from Common.Numbering.Model/INumberingService.cs rename to Connected.Common.Numbering.Model/INumberingService.cs index c541e0a..b46c613 100644 --- a/Common.Numbering.Model/INumberingService.cs +++ b/Connected.Common.Numbering.Model/INumberingService.cs @@ -1,7 +1,7 @@ using Connected.Annotations; using Connected.ServiceModel; -namespace Common.Numbering; +namespace Connected.Common.Numbering; [Service] [ServiceUrl(NumberingUrls.Numbering)] public interface INumberingService diff --git a/Common.Numbering.Model/NumberingArgs.cs b/Connected.Common.Numbering.Model/NumberingArgs.cs similarity index 68% rename from Common.Numbering.Model/NumberingArgs.cs rename to Connected.Common.Numbering.Model/NumberingArgs.cs index 6a9160d..364b391 100644 --- a/Common.Numbering.Model/NumberingArgs.cs +++ b/Connected.Common.Numbering.Model/NumberingArgs.cs @@ -1,7 +1,7 @@ -using Connected.ServiceModel; -using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations; +using Connected.ServiceModel; -namespace Common.Numbering; +namespace Connected.Common.Numbering; public sealed class NumberingCalculateArgs : Dto { [Required, MaxLength(128)] diff --git a/Common.Numbering.Model/NumberingUrls.cs b/Connected.Common.Numbering.Model/NumberingUrls.cs similarity index 68% rename from Common.Numbering.Model/NumberingUrls.cs rename to Connected.Common.Numbering.Model/NumberingUrls.cs index a6c0de3..89fbbf7 100644 --- a/Common.Numbering.Model/NumberingUrls.cs +++ b/Connected.Common.Numbering.Model/NumberingUrls.cs @@ -1,4 +1,4 @@ -namespace Common.Numbering; +namespace Connected.Common.Numbering; public static class NumberingUrls { public const string Numbering = "common/numbering"; diff --git a/Connected.Common.Numbering/Connected.Common.Numbering.csproj b/Connected.Common.Numbering/Connected.Common.Numbering.csproj new file mode 100644 index 0000000..0a2302d --- /dev/null +++ b/Connected.Common.Numbering/Connected.Common.Numbering.csproj @@ -0,0 +1,16 @@ + + + + net7.0 + enable + enable + + + + + + + + + + diff --git a/Common.Numbering/DefaultProvider.cs b/Connected.Common.Numbering/DefaultProvider.cs similarity index 93% rename from Common.Numbering/DefaultProvider.cs rename to Connected.Common.Numbering/DefaultProvider.cs index af2fa24..92d9a2d 100644 --- a/Common.Numbering/DefaultProvider.cs +++ b/Connected.Common.Numbering/DefaultProvider.cs @@ -1,7 +1,7 @@ using Connected.Annotations; using Connected.Middleware; -namespace Common.Numbering; +namespace Connected.Common.Numbering; [Priority(0)] internal sealed class DefaultProvider : MiddlewareComponent, INumberingProvider diff --git a/Common.Numbering/Numbering.cs b/Connected.Common.Numbering/Numbering.cs similarity index 78% rename from Common.Numbering/Numbering.cs rename to Connected.Common.Numbering/Numbering.cs index c27df6a..79e6b2d 100644 --- a/Common.Numbering/Numbering.cs +++ b/Connected.Common.Numbering/Numbering.cs @@ -1,9 +1,9 @@ -using Connected.Annotations; +using System.ComponentModel.DataAnnotations; +using Connected.Annotations; using Connected.Entities.Annotations; using Connected.Entities.Consistency; -using System.ComponentModel.DataAnnotations; -namespace Common.Numbering; +namespace Connected.Common.Numbering; [Table(Schema = CommonSchemas.CommonSchema)] internal sealed record Numbering : ConsistentEntity, INumbering { diff --git a/Common.Numbering/NumberingOps.cs b/Connected.Common.Numbering/NumberingOps.cs similarity index 92% rename from Common.Numbering/NumberingOps.cs rename to Connected.Common.Numbering/NumberingOps.cs index 78fc6db..08bcbba 100644 --- a/Common.Numbering/NumberingOps.cs +++ b/Connected.Common.Numbering/NumberingOps.cs @@ -5,7 +5,7 @@ using Connected.Middleware; using Connected.ServiceModel; using Connected.Services; -namespace Common.Numbering; +namespace Connected.Common.Numbering; internal sealed class NumberingOps { public sealed class Calculate : ServiceFunction @@ -113,8 +113,8 @@ internal sealed class NumberingOps protected override async Task OnInvoke() { return await (from e in Storage.Open() - where string.Equals(e.Entity, Arguments.Entity, StringComparison.OrdinalIgnoreCase) - select e).AsEntity(); + where string.Equals(e.Entity, Arguments.Entity, StringComparison.OrdinalIgnoreCase) + select e).AsEntity(); } } @@ -130,8 +130,8 @@ internal sealed class NumberingOps protected override async Task OnInvoke() { return await (from e in Storage.Open() - where e.Id == Arguments.Id - select e).AsEntity(); + where e.Id == Arguments.Id + select e).AsEntity(); } } } diff --git a/Common.Numbering/NumberingService.cs b/Connected.Common.Numbering/NumberingService.cs similarity index 88% rename from Common.Numbering/NumberingService.cs rename to Connected.Common.Numbering/NumberingService.cs index aa392dd..c59fdd9 100644 --- a/Common.Numbering/NumberingService.cs +++ b/Connected.Common.Numbering/NumberingService.cs @@ -1,8 +1,8 @@ using Connected.ServiceModel; using Connected.Services; -using Ops = Common.Numbering.NumberingOps; +using Ops = Connected.Common.Numbering.NumberingOps; -namespace Common.Numbering; +namespace Connected.Common.Numbering; internal sealed class NumberingService : Service, INumberingService { public NumberingService(IContext context) : base(context) diff --git a/Common.sln b/Connected.Common.sln similarity index 52% rename from Common.sln rename to Connected.Common.sln index cbe9e29..964d521 100644 --- a/Common.sln +++ b/Connected.Common.sln @@ -5,35 +5,35 @@ VisualStudioVersion = 17.4.32916.344 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dependencies", "Dependencies", "{75ED46E6-38CD-4948-9F3C-5167A9FFD7FA}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common", "Common\Common.csproj", "{CB582FC6-7A9A-46D1-BA75-4A103E096674}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Common", "Connected.Common\Connected.Common.csproj", "{CB582FC6-7A9A-46D1-BA75-4A103E096674}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Globalization", "..\Framework\Connected.Globalization\Connected.Globalization.csproj", "{B9438432-CD2B-4570-B96C-C1B47A1CF5BB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected", "..\Connected\Connected\Connected.csproj", "{B2AE8588-0786-4556-9563-0D941A145C7C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Net", "..\Framework\Connected.Net\Connected.Net.csproj", "{664BD509-4D4A-45D4-8B82-5E54094A95E6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Common.Model", "Connected.Common.Model\Connected.Common.Model.csproj", "{ABF6BF35-ED9F-43A9-8581-23CBD9701E94}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Services", "..\Framework\Connected.Services\Connected.Services.csproj", "{A4616625-88A0-434B-8433-EC8693E1E53B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Common.Notes", "Connected.Common.Notes\Connected.Common.Notes.csproj", "{05B6148F-467C-4090-8FEA-8EA16A4D9956}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Validation", "..\Framework\Connected.Validation\Connected.Validation.csproj", "{71403C62-2D04-4E0B-9FAB-1ED23B0FB6B7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Common.Notes.Model", "Connected.Common.Notes.Model\Connected.Common.Notes.Model.csproj", "{DF77BAAB-8223-4BEA-B7BA-0C087D9C6750}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected", "..\Connected\Connected\Connected.csproj", "{B2AE8588-0786-4556-9563-0D941A145C7C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Common.Numbering.Model", "Connected.Common.Numbering.Model\Connected.Common.Numbering.Model.csproj", "{83F83DE6-28BF-4AB7-902E-42D38A54A578}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.Model", "Common.Model\Common.Model.csproj", "{ABF6BF35-ED9F-43A9-8581-23CBD9701E94}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Common.Numbering", "Connected.Common.Numbering\Connected.Common.Numbering.csproj", "{4E810676-E37E-4C25-95FC-747BB32E5A69}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.Notes", "Common.Notes\Common.Notes.csproj", "{05B6148F-467C-4090-8FEA-8EA16A4D9956}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Common.Numbering.Middleware", "Connected.Common.Numbering.Middleware\Connected.Common.Numbering.Middleware.csproj", "{424C1CBE-8490-431C-A0A8-1ACB22A65864}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.Notes.Model", "Common.Notes.Model\Common.Notes.Model.csproj", "{DF77BAAB-8223-4BEA-B7BA-0C087D9C6750}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Entities", "..\connected.framework\Connected.Entities\Connected.Entities.csproj", "{09D6D582-C873-405A-8C33-9E1EFB0483DC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Entities", "..\Framework\Connected.Entities\Connected.Entities.csproj", "{0D2BE8CB-1C1B-4C74-9940-8F1BA5B1ED42}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Globalization", "..\connected.framework\Connected.Globalization\Connected.Globalization.csproj", "{29AEF348-A405-4744-B797-24C30C0412DE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.ServiceModel", "..\Framework.ServiceModel\Connected.ServiceModel\Connected.ServiceModel.csproj", "{3F224810-2034-45BB-BB53-DE5F6E83A07B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Middleware", "..\connected.framework\Connected.Middleware\Connected.Middleware.csproj", "{5D042895-A9FC-4BEE-8EF8-7EFDD54DB07B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Numbering.Model", "Common.Numbering.Model\Common.Numbering.Model.csproj", "{83F83DE6-28BF-4AB7-902E-42D38A54A578}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Net", "..\connected.framework\Connected.Net\Connected.Net.csproj", "{FFCDE448-E330-42E2-A619-8BC9EC0FDC1E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Numbering", "Common.Numbering\Common.Numbering.csproj", "{4E810676-E37E-4C25-95FC-747BB32E5A69}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.ServiceModel", "..\connected.framework.servicemodel\Connected.ServiceModel\Connected.ServiceModel.csproj", "{FE160CA1-0E4F-41F9-BD7F-C344C6F54B42}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Numbering.Middleware", "Common.Numbering.Middleware\Common.Numbering.Middleware.csproj", "{424C1CBE-8490-431C-A0A8-1ACB22A65864}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Services", "..\connected.framework\Connected.Services\Connected.Services.csproj", "{38FD6047-BEF1-4367-B96E-E7810F0284AD}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Middleware", "..\Framework\Connected.Middleware\Connected.Middleware.csproj", "{085068A9-6739-423D-957F-DFA22564B574}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connected.Validation", "..\connected.framework\Connected.Validation\Connected.Validation.csproj", "{E4317767-4F21-4E11-B934-9E1E65547D16}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -45,22 +45,6 @@ Global {CB582FC6-7A9A-46D1-BA75-4A103E096674}.Debug|Any CPU.Build.0 = Debug|Any CPU {CB582FC6-7A9A-46D1-BA75-4A103E096674}.Release|Any CPU.ActiveCfg = Release|Any CPU {CB582FC6-7A9A-46D1-BA75-4A103E096674}.Release|Any CPU.Build.0 = Release|Any CPU - {B9438432-CD2B-4570-B96C-C1B47A1CF5BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B9438432-CD2B-4570-B96C-C1B47A1CF5BB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B9438432-CD2B-4570-B96C-C1B47A1CF5BB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B9438432-CD2B-4570-B96C-C1B47A1CF5BB}.Release|Any CPU.Build.0 = Release|Any CPU - {664BD509-4D4A-45D4-8B82-5E54094A95E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {664BD509-4D4A-45D4-8B82-5E54094A95E6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {664BD509-4D4A-45D4-8B82-5E54094A95E6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {664BD509-4D4A-45D4-8B82-5E54094A95E6}.Release|Any CPU.Build.0 = Release|Any CPU - {A4616625-88A0-434B-8433-EC8693E1E53B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A4616625-88A0-434B-8433-EC8693E1E53B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A4616625-88A0-434B-8433-EC8693E1E53B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A4616625-88A0-434B-8433-EC8693E1E53B}.Release|Any CPU.Build.0 = Release|Any CPU - {71403C62-2D04-4E0B-9FAB-1ED23B0FB6B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {71403C62-2D04-4E0B-9FAB-1ED23B0FB6B7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {71403C62-2D04-4E0B-9FAB-1ED23B0FB6B7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {71403C62-2D04-4E0B-9FAB-1ED23B0FB6B7}.Release|Any CPU.Build.0 = Release|Any CPU {B2AE8588-0786-4556-9563-0D941A145C7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B2AE8588-0786-4556-9563-0D941A145C7C}.Debug|Any CPU.Build.0 = Debug|Any CPU {B2AE8588-0786-4556-9563-0D941A145C7C}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -77,14 +61,6 @@ Global {DF77BAAB-8223-4BEA-B7BA-0C087D9C6750}.Debug|Any CPU.Build.0 = Debug|Any CPU {DF77BAAB-8223-4BEA-B7BA-0C087D9C6750}.Release|Any CPU.ActiveCfg = Release|Any CPU {DF77BAAB-8223-4BEA-B7BA-0C087D9C6750}.Release|Any CPU.Build.0 = Release|Any CPU - {0D2BE8CB-1C1B-4C74-9940-8F1BA5B1ED42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0D2BE8CB-1C1B-4C74-9940-8F1BA5B1ED42}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0D2BE8CB-1C1B-4C74-9940-8F1BA5B1ED42}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0D2BE8CB-1C1B-4C74-9940-8F1BA5B1ED42}.Release|Any CPU.Build.0 = Release|Any CPU - {3F224810-2034-45BB-BB53-DE5F6E83A07B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3F224810-2034-45BB-BB53-DE5F6E83A07B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3F224810-2034-45BB-BB53-DE5F6E83A07B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3F224810-2034-45BB-BB53-DE5F6E83A07B}.Release|Any CPU.Build.0 = Release|Any CPU {83F83DE6-28BF-4AB7-902E-42D38A54A578}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {83F83DE6-28BF-4AB7-902E-42D38A54A578}.Debug|Any CPU.Build.0 = Debug|Any CPU {83F83DE6-28BF-4AB7-902E-42D38A54A578}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -97,23 +73,47 @@ Global {424C1CBE-8490-431C-A0A8-1ACB22A65864}.Debug|Any CPU.Build.0 = Debug|Any CPU {424C1CBE-8490-431C-A0A8-1ACB22A65864}.Release|Any CPU.ActiveCfg = Release|Any CPU {424C1CBE-8490-431C-A0A8-1ACB22A65864}.Release|Any CPU.Build.0 = Release|Any CPU - {085068A9-6739-423D-957F-DFA22564B574}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {085068A9-6739-423D-957F-DFA22564B574}.Debug|Any CPU.Build.0 = Debug|Any CPU - {085068A9-6739-423D-957F-DFA22564B574}.Release|Any CPU.ActiveCfg = Release|Any CPU - {085068A9-6739-423D-957F-DFA22564B574}.Release|Any CPU.Build.0 = Release|Any CPU + {09D6D582-C873-405A-8C33-9E1EFB0483DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09D6D582-C873-405A-8C33-9E1EFB0483DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09D6D582-C873-405A-8C33-9E1EFB0483DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09D6D582-C873-405A-8C33-9E1EFB0483DC}.Release|Any CPU.Build.0 = Release|Any CPU + {29AEF348-A405-4744-B797-24C30C0412DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29AEF348-A405-4744-B797-24C30C0412DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29AEF348-A405-4744-B797-24C30C0412DE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29AEF348-A405-4744-B797-24C30C0412DE}.Release|Any CPU.Build.0 = Release|Any CPU + {5D042895-A9FC-4BEE-8EF8-7EFDD54DB07B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5D042895-A9FC-4BEE-8EF8-7EFDD54DB07B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5D042895-A9FC-4BEE-8EF8-7EFDD54DB07B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5D042895-A9FC-4BEE-8EF8-7EFDD54DB07B}.Release|Any CPU.Build.0 = Release|Any CPU + {FFCDE448-E330-42E2-A619-8BC9EC0FDC1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FFCDE448-E330-42E2-A619-8BC9EC0FDC1E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FFCDE448-E330-42E2-A619-8BC9EC0FDC1E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FFCDE448-E330-42E2-A619-8BC9EC0FDC1E}.Release|Any CPU.Build.0 = Release|Any CPU + {FE160CA1-0E4F-41F9-BD7F-C344C6F54B42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FE160CA1-0E4F-41F9-BD7F-C344C6F54B42}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FE160CA1-0E4F-41F9-BD7F-C344C6F54B42}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FE160CA1-0E4F-41F9-BD7F-C344C6F54B42}.Release|Any CPU.Build.0 = Release|Any CPU + {38FD6047-BEF1-4367-B96E-E7810F0284AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {38FD6047-BEF1-4367-B96E-E7810F0284AD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {38FD6047-BEF1-4367-B96E-E7810F0284AD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {38FD6047-BEF1-4367-B96E-E7810F0284AD}.Release|Any CPU.Build.0 = Release|Any CPU + {E4317767-4F21-4E11-B934-9E1E65547D16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4317767-4F21-4E11-B934-9E1E65547D16}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4317767-4F21-4E11-B934-9E1E65547D16}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4317767-4F21-4E11-B934-9E1E65547D16}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {B9438432-CD2B-4570-B96C-C1B47A1CF5BB} = {75ED46E6-38CD-4948-9F3C-5167A9FFD7FA} - {664BD509-4D4A-45D4-8B82-5E54094A95E6} = {75ED46E6-38CD-4948-9F3C-5167A9FFD7FA} - {A4616625-88A0-434B-8433-EC8693E1E53B} = {75ED46E6-38CD-4948-9F3C-5167A9FFD7FA} - {71403C62-2D04-4E0B-9FAB-1ED23B0FB6B7} = {75ED46E6-38CD-4948-9F3C-5167A9FFD7FA} {B2AE8588-0786-4556-9563-0D941A145C7C} = {75ED46E6-38CD-4948-9F3C-5167A9FFD7FA} - {0D2BE8CB-1C1B-4C74-9940-8F1BA5B1ED42} = {75ED46E6-38CD-4948-9F3C-5167A9FFD7FA} - {3F224810-2034-45BB-BB53-DE5F6E83A07B} = {75ED46E6-38CD-4948-9F3C-5167A9FFD7FA} - {085068A9-6739-423D-957F-DFA22564B574} = {75ED46E6-38CD-4948-9F3C-5167A9FFD7FA} + {09D6D582-C873-405A-8C33-9E1EFB0483DC} = {75ED46E6-38CD-4948-9F3C-5167A9FFD7FA} + {29AEF348-A405-4744-B797-24C30C0412DE} = {75ED46E6-38CD-4948-9F3C-5167A9FFD7FA} + {5D042895-A9FC-4BEE-8EF8-7EFDD54DB07B} = {75ED46E6-38CD-4948-9F3C-5167A9FFD7FA} + {FFCDE448-E330-42E2-A619-8BC9EC0FDC1E} = {75ED46E6-38CD-4948-9F3C-5167A9FFD7FA} + {FE160CA1-0E4F-41F9-BD7F-C344C6F54B42} = {75ED46E6-38CD-4948-9F3C-5167A9FFD7FA} + {38FD6047-BEF1-4367-B96E-E7810F0284AD} = {75ED46E6-38CD-4948-9F3C-5167A9FFD7FA} + {E4317767-4F21-4E11-B934-9E1E65547D16} = {75ED46E6-38CD-4948-9F3C-5167A9FFD7FA} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {23EF0531-5260-4441-876C-7569138BD7FA} diff --git a/Common/Collections/MessageJob.cs b/Connected.Common/Collections/MessageJob.cs similarity index 94% rename from Common/Collections/MessageJob.cs rename to Connected.Common/Collections/MessageJob.cs index 6f1f0e5..4b3c19e 100644 --- a/Common/Collections/MessageJob.cs +++ b/Connected.Common/Collections/MessageJob.cs @@ -2,7 +2,7 @@ using Connected.Collections.Queues; using Connected.ServiceModel; -namespace Common.Collections; +namespace Connected.Common.Collections; internal sealed class MessageJob : DispatcherJob { public MessageJob(IContextProvider provider) diff --git a/Common/Collections/QueueCache.cs b/Connected.Common/Collections/QueueCache.cs similarity index 91% rename from Common/Collections/QueueCache.cs rename to Connected.Common/Collections/QueueCache.cs index 75717ad..5d8a3e8 100644 --- a/Common/Collections/QueueCache.cs +++ b/Connected.Common/Collections/QueueCache.cs @@ -1,6 +1,6 @@ using Connected.Entities.Caching; -namespace Common.Collections; +namespace Connected.Common.Collections; internal interface IQueueCache : IEntityCacheClient { diff --git a/Common/Collections/QueueClientService.cs b/Connected.Common/Collections/QueueClientService.cs similarity index 96% rename from Common/Collections/QueueClientService.cs rename to Connected.Common/Collections/QueueClientService.cs index 19a9266..00a8f95 100644 --- a/Common/Collections/QueueClientService.cs +++ b/Connected.Common/Collections/QueueClientService.cs @@ -3,7 +3,7 @@ using Connected.Hosting.Workers; using Connected.Middleware; using Connected.ServiceModel; -namespace Common.Collections; +namespace Connected.Common.Collections; internal sealed class QueueClientService : ScheduledWorker { public QueueClientService(IContextProvider provider) diff --git a/Common/Collections/QueueMessage.cs b/Connected.Common/Collections/QueueMessage.cs similarity index 97% rename from Common/Collections/QueueMessage.cs rename to Connected.Common/Collections/QueueMessage.cs index 8f21b5e..15c55ab 100644 --- a/Common/Collections/QueueMessage.cs +++ b/Connected.Common/Collections/QueueMessage.cs @@ -4,7 +4,7 @@ using Connected.Data; using Connected.Entities.Annotations; using Connected.Entities.Concurrency; -namespace Common.Collections; +namespace Connected.Common.Collections; /// [Table(Schema = SchemaAttribute.SysSchema)] internal sealed record QueueMessage : ConcurrentEntity, IQueueMessage diff --git a/Common/Collections/QueueMessageDispatcher.cs b/Connected.Common/Collections/QueueMessageDispatcher.cs similarity index 84% rename from Common/Collections/QueueMessageDispatcher.cs rename to Connected.Common/Collections/QueueMessageDispatcher.cs index 2db7ed4..80af522 100644 --- a/Common/Collections/QueueMessageDispatcher.cs +++ b/Connected.Common/Collections/QueueMessageDispatcher.cs @@ -1,7 +1,7 @@ using Connected.Collections.Concurrent; using Connected.Collections.Queues; -namespace Common.Collections; +namespace Connected.Common.Collections; internal sealed class QueueMessageDispatcher : Dispatcher { public QueueMessageDispatcher() : base(128) diff --git a/Common/Collections/QueueOps.cs b/Connected.Common/Collections/QueueOps.cs similarity index 89% rename from Common/Collections/QueueOps.cs rename to Connected.Common/Collections/QueueOps.cs index 3a4a9f4..6ee2406 100644 --- a/Common/Collections/QueueOps.cs +++ b/Connected.Common/Collections/QueueOps.cs @@ -4,7 +4,7 @@ using Connected.Entities; using Connected.Interop; using Connected.Services; -namespace Common.Collections; +namespace Connected.Common.Collections; internal sealed class QueueOps { @@ -61,10 +61,10 @@ internal sealed class QueueOps var targets = new List(); var items = await (from dc in Cache - where dc.NextVisible <= DateTime.UtcNow - && dc.Arguments.Options.Expire > DateTime.UtcNow - && Arguments.Queues.Any(f => string.Equals(f, dc.Queue, StringComparison.OrdinalIgnoreCase)) - select dc).AsEntities(); + where dc.NextVisible <= DateTime.UtcNow + && dc.Arguments.Options.Expire > DateTime.UtcNow + && Arguments.Queues.Any(f => string.Equals(f, dc.Queue, StringComparison.OrdinalIgnoreCase)) + select dc).AsEntities(); if (!items.Any()) return ImmutableList.Empty; diff --git a/Common/Collections/QueueService.cs b/Connected.Common/Collections/QueueService.cs similarity index 92% rename from Common/Collections/QueueService.cs rename to Connected.Common/Collections/QueueService.cs index 3e27f37..c5e6eb4 100644 --- a/Common/Collections/QueueService.cs +++ b/Connected.Common/Collections/QueueService.cs @@ -4,9 +4,9 @@ using Connected.Collections.Queues; using Connected.Net; using Connected.ServiceModel; using Connected.Services; -using Ops = Common.Collections.QueueOps; +using Ops = Connected.Common.Collections.QueueOps; -namespace Common.Collections; +namespace Connected.Common.Collections; internal sealed class QueueService : DistributedService, IQueueService { diff --git a/Common/CommonSchemas.cs b/Connected.Common/CommonSchemas.cs similarity index 80% rename from Common/CommonSchemas.cs rename to Connected.Common/CommonSchemas.cs index ea061b8..fdf9e86 100644 --- a/Common/CommonSchemas.cs +++ b/Connected.Common/CommonSchemas.cs @@ -1,4 +1,4 @@ -namespace Common; +namespace Connected.Common; public static class CommonSchemas { public const string DocumentSchema = "dcm"; diff --git a/Connected.Common/CommonStartup.cs b/Connected.Common/CommonStartup.cs new file mode 100644 index 0000000..87c5629 --- /dev/null +++ b/Connected.Common/CommonStartup.cs @@ -0,0 +1,37 @@ +using Connected.Annotations; +using Connected.Common.Documents; +using Connected.Common.Globalization; +using Connected.Common.Security.Identity; +using Connected.Globalization; +using Connected.Net.Endpoints; +using Connected.Net.Server; +using Connected.Security.Identity; +using Connected.ServiceModel; +using Microsoft.Extensions.DependencyInjection; + +[assembly: MicroService(MicroServiceType.Service)] + +namespace Connected.Common; + +internal class CommonStartup : Startup +{ + protected override void OnConfigureServices(IServiceCollection services) + { + services.AddScoped(typeof(IGlobalizationService), typeof(GlobalizationService)); + services.AddScoped(typeof(IIdentityService), typeof(IdentityService)); + services.AddTransient(typeof(IDocumentLocker<,>), typeof(DocumentLocker<,>)); + } + + protected override async Task OnInitialize(Dictionary args) + { + if (Services is null || Services.GetService() is not IContextProvider provider) + return; + + using var ctx = provider.Create(); + + if (ctx.GetService() is not IEndpointService endpoints || ctx.GetService() is not IEndpointServer server) + return; + + await server.Initialize(await endpoints.Query(), ctx.CancellationToken); + } +} diff --git a/Common/Common.csproj b/Connected.Common/Connected.Common.csproj similarity index 55% rename from Common/Common.csproj rename to Connected.Common/Connected.Common.csproj index 4f9d9e2..d5445fc 100644 --- a/Common/Common.csproj +++ b/Connected.Common/Connected.Common.csproj @@ -9,12 +9,12 @@ - - - - - - + + + + + + diff --git a/Common/Definitions.cs b/Connected.Common/Definitions.cs similarity index 92% rename from Common/Definitions.cs rename to Connected.Common/Definitions.cs index a754b20..bc23ea6 100644 --- a/Common/Definitions.cs +++ b/Connected.Common/Definitions.cs @@ -1,6 +1,6 @@ using Connected.Data; -namespace Common; +namespace Connected.Common; public static class RecordStatusLocalizer { diff --git a/Common/Distributed/DistributedLock.cs b/Connected.Common/Distributed/DistributedLock.cs similarity index 94% rename from Common/Distributed/DistributedLock.cs rename to Connected.Common/Distributed/DistributedLock.cs index 6e8fae0..e70365d 100644 --- a/Common/Distributed/DistributedLock.cs +++ b/Connected.Common/Distributed/DistributedLock.cs @@ -4,7 +4,7 @@ using Connected.Entities.Annotations; using Connected.ServiceModel.Annotations; using Connected.ServiceModel.Data; -namespace Common.Distributed; +namespace Connected.Common.Distributed; [Table(Schema = CommonSchemas.CommonSchema)] internal sealed record DistributedLock : TableEntity, IDistributedLock diff --git a/Common/Distributed/DistributedLockArgs.cs b/Connected.Common/Distributed/DistributedLockArgs.cs similarity index 75% rename from Common/Distributed/DistributedLockArgs.cs rename to Connected.Common/Distributed/DistributedLockArgs.cs index 4e719cd..e4b01b0 100644 --- a/Common/Distributed/DistributedLockArgs.cs +++ b/Connected.Common/Distributed/DistributedLockArgs.cs @@ -1,7 +1,7 @@ -using Connected.ServiceModel; -using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations; +using Connected.ServiceModel; -namespace Common.Distributed; +namespace Connected.Common.Distributed; public sealed class DistributedLockArgs : Dto { [Required, MaxLength(128)] diff --git a/Common/Distributed/DistributedLockOps.cs b/Connected.Common/Distributed/DistributedLockOps.cs similarity index 98% rename from Common/Distributed/DistributedLockOps.cs rename to Connected.Common/Distributed/DistributedLockOps.cs index cfb5317..cd8cc2c 100644 --- a/Common/Distributed/DistributedLockOps.cs +++ b/Connected.Common/Distributed/DistributedLockOps.cs @@ -4,7 +4,7 @@ using Connected.Entities.Storage; using Connected.ServiceModel; using Connected.Services; -namespace Common.Distributed; +namespace Connected.Common.Distributed; internal sealed class DistributedLockOps { public class Lock : ServiceFunction diff --git a/Common/Distributed/DistributedLockProtector.cs b/Connected.Common/Distributed/DistributedLockProtector.cs similarity index 92% rename from Common/Distributed/DistributedLockProtector.cs rename to Connected.Common/Distributed/DistributedLockProtector.cs index 702722d..f503896 100644 --- a/Common/Distributed/DistributedLockProtector.cs +++ b/Connected.Common/Distributed/DistributedLockProtector.cs @@ -5,7 +5,7 @@ using Connected.Entities; using Connected.Entities.Storage; using Connected.Middleware; -namespace Common.Distributed; +namespace Connected.Common.Distributed; internal sealed class DistributedLockProtector : MiddlewareComponent, IEntityProtector { public DistributedLockProtector(IStorageProvider storage, ICacheContext cache) @@ -52,9 +52,9 @@ internal sealed class DistributedLockProtector : MiddlewareComponent, IEntityPro * must check that anyway */ var entry = await (from dc in Storage.Open() - where string.Equals(dc.Entity, args.Entity.Entity, StringComparison.OrdinalIgnoreCase) - && string.Equals(dc.EntityId, args.Entity.EntityId, StringComparison.OrdinalIgnoreCase) - select dc).AsEntity(); + where string.Equals(dc.Entity, args.Entity.Entity, StringComparison.OrdinalIgnoreCase) + && string.Equals(dc.EntityId, args.Entity.EntityId, StringComparison.OrdinalIgnoreCase) + select dc).AsEntity(); /* * It exists, we must perform additional checks. */ diff --git a/Common/Distributed/DistributedLockService.cs b/Connected.Common/Distributed/DistributedLockService.cs similarity index 89% rename from Common/Distributed/DistributedLockService.cs rename to Connected.Common/Distributed/DistributedLockService.cs index 6e99be2..331cbce 100644 --- a/Common/Distributed/DistributedLockService.cs +++ b/Connected.Common/Distributed/DistributedLockService.cs @@ -1,8 +1,8 @@ using Connected.ServiceModel; using Connected.Services; -using Ops = Common.Distributed.DistributedLockOps; +using Ops = Connected.Common.Distributed.DistributedLockOps; -namespace Common.Distributed; +namespace Connected.Common.Distributed; internal sealed class DistributedLockService : DistributedService, IDistributedLockService { public DistributedLockService(IContext context) : base(context) diff --git a/Common/Distributed/IDistributedLock.cs b/Connected.Common/Distributed/IDistributedLock.cs similarity index 82% rename from Common/Distributed/IDistributedLock.cs rename to Connected.Common/Distributed/IDistributedLock.cs index 20b518a..fc4f656 100644 --- a/Common/Distributed/IDistributedLock.cs +++ b/Connected.Common/Distributed/IDistributedLock.cs @@ -1,6 +1,6 @@ using Connected.Data; -namespace Common.Distributed; +namespace Connected.Common.Distributed; public interface IDistributedLock : IPrimaryKey { string Entity { get; init; } diff --git a/Common/Distributed/IDistributedLockService.cs b/Connected.Common/Distributed/IDistributedLockService.cs similarity index 86% rename from Common/Distributed/IDistributedLockService.cs rename to Connected.Common/Distributed/IDistributedLockService.cs index 37c661e..a490fc8 100644 --- a/Common/Distributed/IDistributedLockService.cs +++ b/Connected.Common/Distributed/IDistributedLockService.cs @@ -1,7 +1,7 @@ using Connected.Annotations; using Connected.ServiceModel; -namespace Common.Distributed; +namespace Connected.Common.Distributed; [Service] public interface IDistributedLockService diff --git a/Common/Documents/Document.cs b/Connected.Common/Documents/Document.cs similarity index 97% rename from Common/Documents/Document.cs rename to Connected.Common/Documents/Document.cs index 6069d84..108e0e2 100644 --- a/Common/Documents/Document.cs +++ b/Connected.Common/Documents/Document.cs @@ -3,7 +3,7 @@ using Connected.Annotations; using Connected.Entities.Annotations; using Connected.Entities.Consistency; -namespace Common.Documents; +namespace Connected.Common.Documents; /// /// Default implementation of the interface. /// diff --git a/Common/Documents/DocumentListener.cs b/Connected.Common/Documents/DocumentListener.cs similarity index 92% rename from Common/Documents/DocumentListener.cs rename to Connected.Common/Documents/DocumentListener.cs index 6678b1b..2c917af 100644 --- a/Common/Documents/DocumentListener.cs +++ b/Connected.Common/Documents/DocumentListener.cs @@ -1,7 +1,6 @@ -using Connected; -using Connected.Notifications.Events; +using Connected.Notifications.Events; -namespace Common.Documents; +namespace Connected.Common.Documents; public abstract class DocumentListener : EventListener where TArgs : IDto where TDocument : IDocument diff --git a/Common/Documents/DocumentLocker.cs b/Connected.Common/Documents/DocumentLocker.cs similarity index 96% rename from Common/Documents/DocumentLocker.cs rename to Connected.Common/Documents/DocumentLocker.cs index ddf3770..8ced7db 100644 --- a/Common/Documents/DocumentLocker.cs +++ b/Connected.Common/Documents/DocumentLocker.cs @@ -1,10 +1,9 @@ -using Common.Distributed; -using Connected; +using Connected.Common.Distributed; using Connected.Interop; using Connected.ServiceModel; using Connected.Threading; -namespace Common.Documents; +namespace Connected.Common.Documents; internal sealed class DocumentLocker : IDocumentLocker where TDocument : IDocument where TPrimaryKey : notnull diff --git a/Common/Documents/DocumentService.cs b/Connected.Common/Documents/DocumentService.cs similarity index 93% rename from Common/Documents/DocumentService.cs rename to Connected.Common/Documents/DocumentService.cs index a9c55df..4a4a2fc 100644 --- a/Common/Documents/DocumentService.cs +++ b/Connected.Common/Documents/DocumentService.cs @@ -2,7 +2,7 @@ using Connected.ServiceModel; using Connected.Services; -namespace Common.Documents; +namespace Connected.Common.Documents; public abstract class DocumentService : EntityService, IDocumentService { protected DocumentService(IContext context) : base(context) diff --git a/Common/Documents/IDocumentLocker.cs b/Connected.Common/Documents/IDocumentLocker.cs similarity index 89% rename from Common/Documents/IDocumentLocker.cs rename to Connected.Common/Documents/IDocumentLocker.cs index 3167428..8054f9b 100644 --- a/Common/Documents/IDocumentLocker.cs +++ b/Connected.Common/Documents/IDocumentLocker.cs @@ -1,4 +1,4 @@ -namespace Common.Documents; +namespace Connected.Common.Documents; public interface IDocumentLocker : IDisposable where TDocument : IDocument where TPrimaryKey : notnull diff --git a/Common/Documents/Validators.cs b/Connected.Common/Documents/Validators.cs similarity index 97% rename from Common/Documents/Validators.cs rename to Connected.Common/Documents/Validators.cs index 4c21332..27c6450 100644 --- a/Common/Documents/Validators.cs +++ b/Connected.Common/Documents/Validators.cs @@ -2,7 +2,7 @@ using Connected.Security.Identity; using Connected.Validation; -namespace Common.Documents; +namespace Connected.Common.Documents; public abstract class InsertDocumentValidator : MiddlewareComponent, IValidator where TDocumentArgs : InsertDocumentArgs { diff --git a/Common/Globalization/GlobalizationService.cs b/Connected.Common/Globalization/GlobalizationService.cs similarity index 97% rename from Common/Globalization/GlobalizationService.cs rename to Connected.Common/Globalization/GlobalizationService.cs index 8fbc187..e022ff9 100644 --- a/Common/Globalization/GlobalizationService.cs +++ b/Connected.Common/Globalization/GlobalizationService.cs @@ -1,12 +1,11 @@ using System.Globalization; -using Connected; using Connected.Data; using Connected.Globalization; using Connected.Globalization.Languages; using Connected.Security.Identity; using Connected.ServiceModel; -namespace Common.Globalization; +namespace Connected.Common.Globalization; internal class GlobalizationService : IGlobalizationService { diff --git a/Common/Globalization/Language.cs b/Connected.Common/Globalization/Language.cs similarity index 94% rename from Common/Globalization/Language.cs rename to Connected.Common/Globalization/Language.cs index cfa9499..0724db5 100644 --- a/Common/Globalization/Language.cs +++ b/Connected.Common/Globalization/Language.cs @@ -4,7 +4,7 @@ using Connected.Entities.Annotations; using Connected.Entities.Consistency; using Connected.Globalization.Languages; -namespace Common.Globalization; +namespace Connected.Common.Globalization; /// /// The implementation of the entity. diff --git a/Common/Globalization/LanguageCache.cs b/Connected.Common/Globalization/LanguageCache.cs similarity index 97% rename from Common/Globalization/LanguageCache.cs rename to Connected.Common/Globalization/LanguageCache.cs index 61d4a74..76c8c08 100644 --- a/Common/Globalization/LanguageCache.cs +++ b/Connected.Common/Globalization/LanguageCache.cs @@ -2,7 +2,7 @@ using Connected.Entities.Caching; using Connected.ServiceModel; -namespace Common.Globalization; +namespace Connected.Common.Globalization; internal interface ILanguageCache : IEntityCacheClient { diff --git a/Common/Globalization/LanguageOps.cs b/Connected.Common/Globalization/LanguageOps.cs similarity index 99% rename from Common/Globalization/LanguageOps.cs rename to Connected.Common/Globalization/LanguageOps.cs index 69fe4e2..279f9b1 100644 --- a/Common/Globalization/LanguageOps.cs +++ b/Connected.Common/Globalization/LanguageOps.cs @@ -1,5 +1,4 @@ using System.Collections.Immutable; -using Connected; using Connected.Entities; using Connected.Entities.Storage; using Connected.Globalization.Languages; @@ -7,7 +6,7 @@ using Connected.Notifications.Events; using Connected.ServiceModel; using Connected.Services; -namespace Common.Globalization; +namespace Connected.Common.Globalization; /// /// Queries all records except those marked as deleting. diff --git a/Common/Globalization/LanguageService.cs b/Connected.Common/Globalization/LanguageService.cs similarity index 96% rename from Common/Globalization/LanguageService.cs rename to Connected.Common/Globalization/LanguageService.cs index dd28d99..a780722 100644 --- a/Common/Globalization/LanguageService.cs +++ b/Connected.Common/Globalization/LanguageService.cs @@ -1,11 +1,11 @@ using System.Collections.Immutable; -using Common.Security; +using Connected.Common.Security; using Connected.Globalization.Languages; using Connected.ServiceModel; using Connected.Services; using Connected.Services.Annotations; -namespace Common.Globalization; +namespace Connected.Common.Globalization; /// /// The implementation of the service. diff --git a/Common/Net/Endpoint.cs b/Connected.Common/Net/Endpoint.cs similarity index 95% rename from Common/Net/Endpoint.cs rename to Connected.Common/Net/Endpoint.cs index 077fdd5..81f3b4f 100644 --- a/Common/Net/Endpoint.cs +++ b/Connected.Common/Net/Endpoint.cs @@ -4,7 +4,7 @@ using Connected.Entities.Annotations; using Connected.Entities.Consistency; using Connected.Net.Endpoints; -namespace Common.Net; +namespace Connected.Common.Net; [Table(Schema = SchemaAttribute.DefaultSchema)] internal record Endpoint : ConsistentEntity, IEndpoint diff --git a/Common/Net/EndpointCache.cs b/Connected.Common/Net/EndpointCache.cs similarity index 90% rename from Common/Net/EndpointCache.cs rename to Connected.Common/Net/EndpointCache.cs index 70b3a03..89c781c 100644 --- a/Common/Net/EndpointCache.cs +++ b/Connected.Common/Net/EndpointCache.cs @@ -1,6 +1,6 @@ using Connected.Entities.Caching; -namespace Common.Net; +namespace Connected.Common.Net; internal interface IEndpointCache : IEntityCacheClient { } internal class EndpointCache : EntityCacheClient, IEndpointCache diff --git a/Common/Net/EndpointOps.cs b/Connected.Common/Net/EndpointOps.cs similarity index 96% rename from Common/Net/EndpointOps.cs rename to Connected.Common/Net/EndpointOps.cs index f7736a9..b8d560c 100644 --- a/Common/Net/EndpointOps.cs +++ b/Connected.Common/Net/EndpointOps.cs @@ -1,11 +1,10 @@ using System.Collections.Immutable; -using Connected; using Connected.Entities; using Connected.Net.Endpoints; using Connected.ServiceModel; using Connected.Services; -namespace Common.Net; +namespace Connected.Common.Net; /// /// Endpoints are singleton but their service is scoped so we must use Isolated database connections for all methods. diff --git a/Common/Net/EndpointService.cs b/Connected.Common/Net/EndpointService.cs similarity index 95% rename from Common/Net/EndpointService.cs rename to Connected.Common/Net/EndpointService.cs index 4e76201..7975fb9 100644 --- a/Common/Net/EndpointService.cs +++ b/Connected.Common/Net/EndpointService.cs @@ -5,7 +5,7 @@ using Connected.ServiceModel; using Connected.Services; using Connected.Services.Annotations; -namespace Common.Net; +namespace Connected.Common.Net; internal sealed class EndpointService : EntityService, IEndpointService { diff --git a/Common/SR.Designer.cs b/Connected.Common/SR.Designer.cs similarity index 96% rename from Common/SR.Designer.cs rename to Connected.Common/SR.Designer.cs index 098e405..30ef250 100644 --- a/Common/SR.Designer.cs +++ b/Connected.Common/SR.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace Common { +namespace Connected.Common { using System; @@ -39,7 +39,7 @@ namespace Common { internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Common.SR", typeof(SR).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Connected.Common.SR", typeof(SR).Assembly); resourceMan = temp; } return resourceMan; diff --git a/Common/SR.resx b/Connected.Common/SR.resx similarity index 100% rename from Common/SR.resx rename to Connected.Common/SR.resx diff --git a/Common/Security/CommonClaims.cs b/Connected.Common/Security/CommonClaims.cs similarity index 85% rename from Common/Security/CommonClaims.cs rename to Connected.Common/Security/CommonClaims.cs index e5430bb..8ae892b 100644 --- a/Common/Security/CommonClaims.cs +++ b/Connected.Common/Security/CommonClaims.cs @@ -1,4 +1,4 @@ -namespace Common.Security; +namespace Connected.Common.Security; public static class CommonClaims { diff --git a/Common/Security/Identity/IdentityService.cs b/Connected.Common/Security/Identity/IdentityService.cs similarity index 91% rename from Common/Security/Identity/IdentityService.cs rename to Connected.Common/Security/Identity/IdentityService.cs index addc8fe..d93173b 100644 --- a/Common/Security/Identity/IdentityService.cs +++ b/Connected.Common/Security/Identity/IdentityService.cs @@ -1,7 +1,7 @@ using Connected.Security.Identity; using Microsoft.AspNetCore.Http; -namespace Common.Security.Identity; +namespace Connected.Common.Security.Identity; internal class IdentityService : IIdentityService { diff --git a/Common/Security/Identity/Role.cs b/Connected.Common/Security/Identity/Role.cs similarity index 89% rename from Common/Security/Identity/Role.cs rename to Connected.Common/Security/Identity/Role.cs index 3a04679..d88ce3e 100644 --- a/Common/Security/Identity/Role.cs +++ b/Connected.Common/Security/Identity/Role.cs @@ -3,7 +3,7 @@ using Connected.Entities.Annotations; using Connected.Entities.Consistency; using Connected.Security.Identity; -namespace Common.Security.Identity; +namespace Connected.Common.Security.Identity; [Table(Schema = SchemaAttribute.SysSchema)] internal record Role : ConsistentEntity, IRole diff --git a/Common/Security/Identity/RoleCache.cs b/Connected.Common/Security/Identity/RoleCache.cs similarity index 96% rename from Common/Security/Identity/RoleCache.cs rename to Connected.Common/Security/Identity/RoleCache.cs index f022777..4aef490 100644 --- a/Common/Security/Identity/RoleCache.cs +++ b/Connected.Common/Security/Identity/RoleCache.cs @@ -1,7 +1,7 @@ using Connected.Entities.Caching; using Connected.Security.Identity; -namespace Common.Security.Identity; +namespace Connected.Common.Security.Identity; internal interface IRoleCache : IEntityCacheClient { } internal sealed class RoleCache : EntityCacheClient, IRoleCache diff --git a/Common/Security/Identity/RoleOps.cs b/Connected.Common/Security/Identity/RoleOps.cs similarity index 92% rename from Common/Security/Identity/RoleOps.cs rename to Connected.Common/Security/Identity/RoleOps.cs index ad3007f..84f5296 100644 --- a/Common/Security/Identity/RoleOps.cs +++ b/Connected.Common/Security/Identity/RoleOps.cs @@ -1,5 +1,4 @@ using System.Collections.Immutable; -using Connected; using Connected.Entities; using Connected.Entities.Storage; using Connected.Notifications; @@ -9,7 +8,7 @@ using Connected.ServiceModel; using Connected.Services; using Connected.Validation; -namespace Common.Security.Identity; +namespace Connected.Common.Security.Identity; internal sealed class QueryRoles : ServiceFunction> { @@ -22,7 +21,7 @@ internal sealed class QueryRoles : ServiceFunction> protected override async Task?> OnInvoke() { return await (from dc in Cache - select dc).AsEntities(); + select dc).AsEntities(); } } @@ -37,8 +36,8 @@ internal sealed class SelectRole : ServiceFunction, IRole?> protected override async Task OnInvoke() { return await (from dc in Cache - where dc.Id == Arguments.Id - select dc).AsEntity(); + where dc.Id == Arguments.Id + select dc).AsEntity(); } } @@ -53,8 +52,8 @@ internal sealed class SelectRoleByName : ServiceFunction protected override async Task OnInvoke() { return await (from dc in Cache - where string.Equals(dc.Name, Arguments.Name, StringComparison.OrdinalIgnoreCase) - select dc).AsEntity(); + where string.Equals(dc.Name, Arguments.Name, StringComparison.OrdinalIgnoreCase) + select dc).AsEntity(); } } @@ -72,8 +71,8 @@ internal sealed class LookupRoles : ServiceFunction, Imm return default; return await (from dc in Cache - where Arguments.IdList.Any(f => f == dc.Id) - select dc).AsEntities(); + where Arguments.IdList.Any(f => f == dc.Id) + select dc).AsEntities(); } } diff --git a/Common/Security/Identity/RoleService.cs b/Connected.Common/Security/Identity/RoleService.cs similarity index 97% rename from Common/Security/Identity/RoleService.cs rename to Connected.Common/Security/Identity/RoleService.cs index c9b12fe..fefe167 100644 --- a/Common/Security/Identity/RoleService.cs +++ b/Connected.Common/Security/Identity/RoleService.cs @@ -5,7 +5,7 @@ using Connected.ServiceModel; using Connected.Services; using Connected.Services.Annotations; -namespace Common.Security.Identity; +namespace Connected.Common.Security.Identity; internal class RoleService : EntityService, IRoleService { diff --git a/Common/Security/Identity/User.cs b/Connected.Common/Security/Identity/User.cs similarity index 96% rename from Common/Security/Identity/User.cs rename to Connected.Common/Security/Identity/User.cs index 63fce9c..6b75357 100644 --- a/Common/Security/Identity/User.cs +++ b/Connected.Common/Security/Identity/User.cs @@ -3,7 +3,7 @@ using Connected.Entities.Annotations; using Connected.Entities.Consistency; using Connected.Security.Identity; -namespace Common.Security.Identity; +namespace Connected.Common.Security.Identity; [Table(Schema = SchemaAttribute.SysSchema)] internal record class User : ConsistentEntity, IUser, IUserPassport diff --git a/Common/Security/Identity/UserCache.cs b/Connected.Common/Security/Identity/UserCache.cs similarity index 85% rename from Common/Security/Identity/UserCache.cs rename to Connected.Common/Security/Identity/UserCache.cs index ef5c1a7..d5efebb 100644 --- a/Common/Security/Identity/UserCache.cs +++ b/Connected.Common/Security/Identity/UserCache.cs @@ -1,6 +1,6 @@ using Connected.Entities.Caching; -namespace Common.Security.Identity; +namespace Connected.Common.Security.Identity; internal interface IUserCache : IEntityCacheClient { } internal sealed class UserCache : EntityCacheClient, IUserCache diff --git a/Common/Security/Identity/UserOps.cs b/Connected.Common/Security/Identity/UserOps.cs similarity index 96% rename from Common/Security/Identity/UserOps.cs rename to Connected.Common/Security/Identity/UserOps.cs index 4d6d0d2..c5eaf29 100644 --- a/Common/Security/Identity/UserOps.cs +++ b/Connected.Common/Security/Identity/UserOps.cs @@ -1,5 +1,4 @@ using System.Collections.Immutable; -using Connected; using Connected.Entities; using Connected.Entities.Storage; using Connected.Notifications.Events; @@ -8,7 +7,7 @@ using Connected.Security.Identity; using Connected.ServiceModel; using Connected.Services; -namespace Common.Security.Identity; +namespace Connected.Common.Security.Identity; internal sealed class QueryUsers : ServiceFunction?> { @@ -35,8 +34,8 @@ internal sealed class SelectUser : ServiceFunction, IUser?> protected override async Task OnInvoke() { return await (from dc in Cache - where dc.Id == Arguments.Id - select dc).AsEntity(); + where dc.Id == Arguments.Id + select dc).AsEntity(); } } /// @@ -102,8 +101,8 @@ internal sealed class LookupUsers : ServiceFunction, Imm return default; return await (from dc in Cache - where Arguments.IdList.Contains(dc.Id) - select dc).AsEntities(); + where Arguments.IdList.Contains(dc.Id) + select dc).AsEntities(); } } diff --git a/Common/Security/Identity/UserService.cs b/Connected.Common/Security/Identity/UserService.cs similarity index 97% rename from Common/Security/Identity/UserService.cs rename to Connected.Common/Security/Identity/UserService.cs index f0e19e2..5632335 100644 --- a/Common/Security/Identity/UserService.cs +++ b/Connected.Common/Security/Identity/UserService.cs @@ -5,7 +5,7 @@ using Connected.ServiceModel; using Connected.Services; using Connected.Services.Annotations; -namespace Common.Security.Identity; +namespace Connected.Common.Security.Identity; internal class UserService : EntityService, IUserService { diff --git a/Common/Security/Membership/Membership.cs b/Connected.Common/Security/Membership/Membership.cs similarity index 92% rename from Common/Security/Membership/Membership.cs rename to Connected.Common/Security/Membership/Membership.cs index 69c848b..9605b62 100644 --- a/Common/Security/Membership/Membership.cs +++ b/Connected.Common/Security/Membership/Membership.cs @@ -3,7 +3,7 @@ using Connected.Entities; using Connected.Entities.Annotations; using Connected.Security.Membership; -namespace Common.Security.Membership; +namespace Connected.Common.Security.Membership; [Table(Schema = SchemaAttribute.SysSchema)] internal sealed record Membership : Entity, IMembership diff --git a/Common/Security/Membership/MembershipCache.cs b/Connected.Common/Security/Membership/MembershipCache.cs similarity index 86% rename from Common/Security/Membership/MembershipCache.cs rename to Connected.Common/Security/Membership/MembershipCache.cs index dab0117..4aeb8ec 100644 --- a/Common/Security/Membership/MembershipCache.cs +++ b/Connected.Common/Security/Membership/MembershipCache.cs @@ -1,6 +1,6 @@ using Connected.Entities.Caching; -namespace Common.Security.Membership; +namespace Connected.Common.Security.Membership; internal interface IMembershipCache : IEntityCacheClient { } internal class MembershipCache : EntityCacheClient, IMembershipCache diff --git a/Common/Security/Membership/MembershipOps.cs b/Connected.Common/Security/Membership/MembershipOps.cs similarity index 89% rename from Common/Security/Membership/MembershipOps.cs rename to Connected.Common/Security/Membership/MembershipOps.cs index dd462ef..e0e475a 100644 --- a/Common/Security/Membership/MembershipOps.cs +++ b/Connected.Common/Security/Membership/MembershipOps.cs @@ -1,5 +1,4 @@ using System.Collections.Immutable; -using Connected; using Connected.Entities; using Connected.Entities.Storage; using Connected.Notifications.Events; @@ -7,7 +6,7 @@ using Connected.Security.Membership; using Connected.ServiceModel; using Connected.Services; -namespace Common.Security.Membership; +namespace Connected.Common.Security.Membership; internal sealed class DeleteMembership : ServiceAction> { @@ -47,7 +46,7 @@ internal sealed class QueryMembership : ServiceFunction?> OnInvoke() { return await (from dc in MembershipCache - select dc).AsEntities(); + select dc).AsEntities(); } } @@ -62,9 +61,9 @@ internal sealed class SearchMembership : ServiceFunction?> OnInvoke() { return await (from dc in MembershipCache - where (Arguments.User == 0 || (Arguments.User == dc.User)) - && (Arguments.Role == 0 || (Arguments.Role == dc.Role)) - select dc).AsEntities(); + where (Arguments.User == 0 || (Arguments.User == dc.User)) + && (Arguments.Role == 0 || (Arguments.Role == dc.Role)) + select dc).AsEntities(); } } @@ -79,8 +78,8 @@ internal sealed class SelectMembership : ServiceFunction, IM protected override async Task OnInvoke() { return await (from dc in MembershipCache - where dc.Id == Arguments.Id - select dc).AsEntity(); + where dc.Id == Arguments.Id + select dc).AsEntity(); } } diff --git a/Common/Security/Membership/MembershipService.cs b/Connected.Common/Security/Membership/MembershipService.cs similarity index 96% rename from Common/Security/Membership/MembershipService.cs rename to Connected.Common/Security/Membership/MembershipService.cs index 25da857..2a9f2d8 100644 --- a/Common/Security/Membership/MembershipService.cs +++ b/Connected.Common/Security/Membership/MembershipService.cs @@ -5,7 +5,7 @@ using Connected.ServiceModel; using Connected.Services; using Connected.Services.Annotations; -namespace Common.Security.Membership; +namespace Connected.Common.Security.Membership; internal class MembershipService : EntityService, IMembershipService { diff --git a/Common/Security/Permissions/Permission.cs b/Connected.Common/Security/Permissions/Permission.cs similarity index 95% rename from Common/Security/Permissions/Permission.cs rename to Connected.Common/Security/Permissions/Permission.cs index d6b2c2a..19cb27f 100644 --- a/Common/Security/Permissions/Permission.cs +++ b/Connected.Common/Security/Permissions/Permission.cs @@ -3,7 +3,7 @@ using Connected.Entities.Annotations; using Connected.Entities.Consistency; using Connected.Security.Permissions; -namespace Common.Security.Permissions; +namespace Connected.Common.Security.Permissions; [Table(Schema = SchemaAttribute.SysSchema)] internal sealed record Permission : ConsistentEntity, IPermission diff --git a/Common/Security/Permissions/PermissionCache.cs b/Connected.Common/Security/Permissions/PermissionCache.cs similarity index 86% rename from Common/Security/Permissions/PermissionCache.cs rename to Connected.Common/Security/Permissions/PermissionCache.cs index 96904a3..660b68f 100644 --- a/Common/Security/Permissions/PermissionCache.cs +++ b/Connected.Common/Security/Permissions/PermissionCache.cs @@ -1,6 +1,6 @@ using Connected.Entities.Caching; -namespace Common.Security.Permissions; +namespace Connected.Common.Security.Permissions; internal interface IPermissionCache : IEntityCacheClient { } internal class PermissionCache : EntityCacheClient, IPermissionCache diff --git a/Common/Security/Permissions/PermissionOps.cs b/Connected.Common/Security/Permissions/PermissionOps.cs similarity index 86% rename from Common/Security/Permissions/PermissionOps.cs rename to Connected.Common/Security/Permissions/PermissionOps.cs index 33d386b..7bed31e 100644 --- a/Common/Security/Permissions/PermissionOps.cs +++ b/Connected.Common/Security/Permissions/PermissionOps.cs @@ -1,5 +1,4 @@ using System.Collections.Immutable; -using Connected; using Connected.Entities; using Connected.Entities.Storage; using Connected.Notifications.Events; @@ -7,7 +6,7 @@ using Connected.Security.Permissions; using Connected.ServiceModel; using Connected.Services; -namespace Common.Security.Permissions; +namespace Connected.Common.Security.Permissions; internal sealed class DeletePermission : ServiceAction> { @@ -47,7 +46,7 @@ internal sealed class QueryPermissions : ServiceFunction?> OnInvoke() { return await (from dc in PermissionCache - select dc).AsEntities(); + select dc).AsEntities(); } } @@ -62,10 +61,10 @@ internal sealed class SearchPermissions : ServiceFunction?> OnInvoke() { return await (from dc in PermissionCache - where (string.IsNullOrEmpty(Arguments.Entity) || string.Equals(Arguments.Entity, dc.Entity, StringComparison.OrdinalIgnoreCase)) - && (string.IsNullOrEmpty(Arguments.Claim) || string.Equals(Arguments.Claim, dc.Claim, StringComparison.OrdinalIgnoreCase)) - && (string.IsNullOrEmpty(Arguments.PrimaryKey) || string.Equals(Arguments.PrimaryKey, dc.PrimaryKey, StringComparison.OrdinalIgnoreCase)) - select dc).AsEntities(); + where (string.IsNullOrEmpty(Arguments.Entity) || string.Equals(Arguments.Entity, dc.Entity, StringComparison.OrdinalIgnoreCase)) + && (string.IsNullOrEmpty(Arguments.Claim) || string.Equals(Arguments.Claim, dc.Claim, StringComparison.OrdinalIgnoreCase)) + && (string.IsNullOrEmpty(Arguments.PrimaryKey) || string.Equals(Arguments.PrimaryKey, dc.PrimaryKey, StringComparison.OrdinalIgnoreCase)) + select dc).AsEntities(); } } @@ -80,8 +79,8 @@ internal sealed class SelectPermission : ServiceFunction, IP protected override async Task OnInvoke() { return await (from dc in PermissionCache - where dc.Id == Arguments.Id - select dc).AsEntity(); + where dc.Id == Arguments.Id + select dc).AsEntity(); } } diff --git a/Common/Security/Permissions/PermissionService.cs b/Connected.Common/Security/Permissions/PermissionService.cs similarity index 96% rename from Common/Security/Permissions/PermissionService.cs rename to Connected.Common/Security/Permissions/PermissionService.cs index 763a4b1..220cf81 100644 --- a/Common/Security/Permissions/PermissionService.cs +++ b/Connected.Common/Security/Permissions/PermissionService.cs @@ -5,7 +5,7 @@ using Connected.ServiceModel; using Connected.Services; using Connected.Services.Annotations; -namespace Common.Security.Permissions; +namespace Connected.Common.Security.Permissions; internal class PermissionService : EntityService, IPermissionService { diff --git a/Common/Settings/SettingsService.cs b/Connected.Common/Settings/SettingsService.cs similarity index 95% rename from Common/Settings/SettingsService.cs rename to Connected.Common/Settings/SettingsService.cs index d066324..62ac9e4 100644 --- a/Common/Settings/SettingsService.cs +++ b/Connected.Common/Settings/SettingsService.cs @@ -3,7 +3,7 @@ using Connected.Configuration.Settings; using Connected.ServiceModel; using Connected.Services; -namespace Common.Settings; +namespace Connected.Common.Settings; internal class SettingsService : EntityService, ISettingsService { public SettingsService(IContext context) : base(context)