forked from dotnet-architecture/eShopOnWeb
-
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.
Shady nagy/net6 (dotnet-architecture#614)
* udated to .net6 * used the .net6 version RC2 * added editconfig. * App core new Scoped Namespaces style. * BlazorAdmin new Scoped Namespaces style. * Blazor Shared new Scoped Namespaces style. * Infra new Scoped Namespaces style. * public api new Scoped Namespaces style. * web new Scoped Namespaces style. * FunctionalTests new Scoped Namespaces style. * Integrational tests new Scoped Namespaces style. * unit tests new Scoped Namespaces style. * update github action. * update github action. * change the global.
- Loading branch information
Showing
252 changed files
with
6,120 additions
and
6,226 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,134 @@ | ||
############################### | ||
# Core EditorConfig Options # | ||
############################### | ||
root = true | ||
# All files | ||
[*] | ||
indent_style = space | ||
|
||
# XML project files | ||
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}] | ||
indent_size = 2 | ||
|
||
# XML config files | ||
[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] | ||
indent_size = 2 | ||
|
||
# Code files | ||
[*.{cs,csx,vb,vbx}] | ||
indent_size = 4 | ||
insert_final_newline = true | ||
charset = utf-8-bom | ||
############################### | ||
# .NET Coding Conventions # | ||
############################### | ||
[*.{cs,vb}] | ||
# Organize usings | ||
dotnet_sort_system_directives_first = true | ||
# this. preferences | ||
dotnet_style_qualification_for_field = false:silent | ||
dotnet_style_qualification_for_property = false:silent | ||
dotnet_style_qualification_for_method = false:silent | ||
dotnet_style_qualification_for_event = false:silent | ||
# Language keywords vs BCL types preferences | ||
dotnet_style_predefined_type_for_locals_parameters_members = true:silent | ||
dotnet_style_predefined_type_for_member_access = true:silent | ||
# Parentheses preferences | ||
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent | ||
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent | ||
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent | ||
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent | ||
# Modifier preferences | ||
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent | ||
dotnet_style_readonly_field = true: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_null_propagation = true:suggestion | ||
dotnet_style_coalesce_expression = true:suggestion | ||
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent | ||
dotnet_style_prefer_inferred_tuple_names = true:suggestion | ||
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion | ||
dotnet_style_prefer_auto_properties = true:silent | ||
dotnet_style_prefer_conditional_expression_over_assignment = true:silent | ||
dotnet_style_prefer_conditional_expression_over_return = true:silent | ||
############################### | ||
# Naming Conventions # | ||
############################### | ||
# Style Definitions | ||
dotnet_naming_style.pascal_case_style.capitalization = pascal_case | ||
# Use PascalCase for constant fields | ||
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.applicable_accessibilities = * | ||
dotnet_naming_symbols.constant_fields.required_modifiers = const | ||
############################### | ||
# C# Coding Conventions # | ||
############################### | ||
[*.cs] | ||
# var preferences | ||
csharp_style_var_for_built_in_types = true:silent | ||
csharp_style_var_when_type_is_apparent = true:silent | ||
csharp_style_var_elsewhere = true:silent | ||
# Expression-bodied members | ||
csharp_style_expression_bodied_methods = false:silent | ||
csharp_style_expression_bodied_constructors = false:silent | ||
csharp_style_expression_bodied_operators = false:silent | ||
csharp_style_expression_bodied_properties = true:silent | ||
csharp_style_expression_bodied_indexers = true:silent | ||
csharp_style_expression_bodied_accessors = true:silent | ||
# Pattern matching preferences | ||
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion | ||
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion | ||
# Null-checking preferences | ||
csharp_style_throw_expression = true:suggestion | ||
csharp_style_conditional_delegate_call = true:suggestion | ||
# Modifier preferences | ||
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion | ||
# Expression-level preferences | ||
csharp_prefer_braces = true:silent | ||
csharp_style_deconstructed_variable_declaration = true:suggestion | ||
csharp_prefer_simple_default_expression = true:suggestion | ||
csharp_style_pattern_local_over_anonymous_function = true:suggestion | ||
csharp_style_inlined_variable_declaration = true:suggestion | ||
# Namespaces | ||
csharp_style_namespace_declarations = file_scoped:warning | ||
############################### | ||
# C# Formatting Rules # | ||
############################### | ||
# 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_case_contents = true | ||
csharp_indent_switch_labels = true | ||
csharp_indent_labels = flush_left | ||
# Space preferences | ||
csharp_space_after_cast = false | ||
csharp_space_after_keywords_in_control_flow_statements = true | ||
csharp_space_between_method_call_parameter_list_parentheses = false | ||
csharp_space_between_method_declaration_parameter_list_parentheses = false | ||
csharp_space_between_parentheses = false | ||
csharp_space_before_colon_in_inheritance_clause = true | ||
csharp_space_after_colon_in_inheritance_clause = true | ||
csharp_space_around_binary_operators = before_and_after | ||
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false | ||
csharp_space_between_method_call_name_and_opening_parenthesis = false | ||
csharp_space_between_method_call_empty_parameter_list_parentheses = false | ||
# Wrapping preferences | ||
csharp_preserve_single_line_statements = true | ||
csharp_preserve_single_line_blocks = true | ||
############################### | ||
# VB Coding Conventions # | ||
############################### | ||
[*.vb] | ||
# Modifier preferences | ||
visual_basic_preferred_modifier_order = Partial,Default,Private,Protected,Public,Friend,NotOverridable,Overridable,MustOverride,Overloads,Overrides,MustInherit,NotInheritable,Static,Shared,Shadows,ReadOnly,WriteOnly,Dim,Const,WithEvents,Widening,Narrowing,Custom,Async:suggestion |
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
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,6 @@ | ||
{ | ||
"sdk": { | ||
"version": "6.0.x", | ||
"rollForward": "latestFeature" | ||
} | ||
} |
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
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 |
---|---|---|
@@ -1,7 +1,6 @@ | ||
namespace Microsoft.eShopWeb | ||
namespace Microsoft.eShopWeb; | ||
|
||
public class CatalogSettings | ||
{ | ||
public class CatalogSettings | ||
{ | ||
public string CatalogBaseUrl { get; set; } | ||
} | ||
public string CatalogBaseUrl { get; set; } | ||
} |
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 |
---|---|---|
@@ -1,13 +1,12 @@ | ||
namespace Microsoft.eShopWeb.ApplicationCore.Constants | ||
namespace Microsoft.eShopWeb.ApplicationCore.Constants; | ||
|
||
public class AuthorizationConstants | ||
{ | ||
public class AuthorizationConstants | ||
{ | ||
public const string AUTH_KEY = "AuthKeyOfDoomThatMustBeAMinimumNumberOfBytes"; | ||
public const string AUTH_KEY = "AuthKeyOfDoomThatMustBeAMinimumNumberOfBytes"; | ||
|
||
// TODO: Don't use this in production | ||
public const string DEFAULT_PASSWORD = "Pass@word1"; | ||
// TODO: Don't use this in production | ||
public const string DEFAULT_PASSWORD = "Pass@word1"; | ||
|
||
// TODO: Change this to an environment variable | ||
public const string JWT_SECRET_KEY = "SecretKeyOfDoomThatMustBeAMinimumNumberOfBytes"; | ||
} | ||
// TODO: Change this to an environment variable | ||
public const string JWT_SECRET_KEY = "SecretKeyOfDoomThatMustBeAMinimumNumberOfBytes"; | ||
} |
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 |
---|---|---|
@@ -1,9 +1,8 @@ | ||
namespace Microsoft.eShopWeb.ApplicationCore.Entities | ||
namespace Microsoft.eShopWeb.ApplicationCore.Entities; | ||
|
||
// This can easily be modified to be BaseEntity<T> and public T Id to support different key types. | ||
// Using non-generic integer types for simplicity and to ease caching logic | ||
public abstract class BaseEntity | ||
{ | ||
// This can easily be modified to be BaseEntity<T> and public T Id to support different key types. | ||
// Using non-generic integer types for simplicity and to ease caching logic | ||
public abstract class BaseEntity | ||
{ | ||
public virtual int Id { get; protected set; } | ||
} | ||
public virtual int Id { get; protected set; } | ||
} |
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 |
---|---|---|
@@ -1,39 +1,38 @@ | ||
using Microsoft.eShopWeb.ApplicationCore.Interfaces; | ||
using System.Collections.Generic; | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using Microsoft.eShopWeb.ApplicationCore.Interfaces; | ||
|
||
namespace Microsoft.eShopWeb.ApplicationCore.Entities.BasketAggregate | ||
namespace Microsoft.eShopWeb.ApplicationCore.Entities.BasketAggregate; | ||
|
||
public class Basket : BaseEntity, IAggregateRoot | ||
{ | ||
public class Basket : BaseEntity, IAggregateRoot | ||
{ | ||
public string BuyerId { get; private set; } | ||
private readonly List<BasketItem> _items = new List<BasketItem>(); | ||
public IReadOnlyCollection<BasketItem> Items => _items.AsReadOnly(); | ||
public string BuyerId { get; private set; } | ||
private readonly List<BasketItem> _items = new List<BasketItem>(); | ||
public IReadOnlyCollection<BasketItem> Items => _items.AsReadOnly(); | ||
|
||
public Basket(string buyerId) | ||
{ | ||
BuyerId = buyerId; | ||
} | ||
public Basket(string buyerId) | ||
{ | ||
BuyerId = buyerId; | ||
} | ||
|
||
public void AddItem(int catalogItemId, decimal unitPrice, int quantity = 1) | ||
public void AddItem(int catalogItemId, decimal unitPrice, int quantity = 1) | ||
{ | ||
if (!Items.Any(i => i.CatalogItemId == catalogItemId)) | ||
{ | ||
if (!Items.Any(i => i.CatalogItemId == catalogItemId)) | ||
{ | ||
_items.Add(new BasketItem(catalogItemId, quantity, unitPrice)); | ||
return; | ||
} | ||
var existingItem = Items.FirstOrDefault(i => i.CatalogItemId == catalogItemId); | ||
existingItem.AddQuantity(quantity); | ||
_items.Add(new BasketItem(catalogItemId, quantity, unitPrice)); | ||
return; | ||
} | ||
var existingItem = Items.FirstOrDefault(i => i.CatalogItemId == catalogItemId); | ||
existingItem.AddQuantity(quantity); | ||
} | ||
|
||
public void RemoveEmptyItems() | ||
{ | ||
_items.RemoveAll(i => i.Quantity == 0); | ||
} | ||
public void RemoveEmptyItems() | ||
{ | ||
_items.RemoveAll(i => i.Quantity == 0); | ||
} | ||
|
||
public void SetNewBuyerId(string buyerId) | ||
{ | ||
BuyerId = buyerId; | ||
} | ||
public void SetNewBuyerId(string buyerId) | ||
{ | ||
BuyerId = buyerId; | ||
} | ||
} |
45 changes: 22 additions & 23 deletions
45
src/ApplicationCore/Entities/BasketAggregate/BasketItem.cs
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 |
---|---|---|
@@ -1,34 +1,33 @@ | ||
using Ardalis.GuardClauses; | ||
|
||
namespace Microsoft.eShopWeb.ApplicationCore.Entities.BasketAggregate | ||
namespace Microsoft.eShopWeb.ApplicationCore.Entities.BasketAggregate; | ||
|
||
public class BasketItem : BaseEntity | ||
{ | ||
public class BasketItem : BaseEntity | ||
{ | ||
|
||
public decimal UnitPrice { get; private set; } | ||
public int Quantity { get; private set; } | ||
public int CatalogItemId { get; private set; } | ||
public int BasketId { get; private set; } | ||
public decimal UnitPrice { get; private set; } | ||
public int Quantity { get; private set; } | ||
public int CatalogItemId { get; private set; } | ||
public int BasketId { get; private set; } | ||
|
||
public BasketItem(int catalogItemId, int quantity, decimal unitPrice) | ||
{ | ||
CatalogItemId = catalogItemId; | ||
UnitPrice = unitPrice; | ||
SetQuantity(quantity); | ||
} | ||
public BasketItem(int catalogItemId, int quantity, decimal unitPrice) | ||
{ | ||
CatalogItemId = catalogItemId; | ||
UnitPrice = unitPrice; | ||
SetQuantity(quantity); | ||
} | ||
|
||
public void AddQuantity(int quantity) | ||
{ | ||
Guard.Against.OutOfRange(quantity, nameof(quantity), 0, int.MaxValue); | ||
public void AddQuantity(int quantity) | ||
{ | ||
Guard.Against.OutOfRange(quantity, nameof(quantity), 0, int.MaxValue); | ||
|
||
Quantity += quantity; | ||
} | ||
Quantity += quantity; | ||
} | ||
|
||
public void SetQuantity(int quantity) | ||
{ | ||
Guard.Against.OutOfRange(quantity, nameof(quantity), 0, int.MaxValue); | ||
public void SetQuantity(int quantity) | ||
{ | ||
Guard.Against.OutOfRange(quantity, nameof(quantity), 0, int.MaxValue); | ||
|
||
Quantity = quantity; | ||
} | ||
Quantity = quantity; | ||
} | ||
} |
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 |
---|---|---|
@@ -1,26 +1,25 @@ | ||
using Ardalis.GuardClauses; | ||
using System.Collections.Generic; | ||
using Ardalis.GuardClauses; | ||
using Microsoft.eShopWeb.ApplicationCore.Interfaces; | ||
using System.Collections.Generic; | ||
|
||
namespace Microsoft.eShopWeb.ApplicationCore.Entities.BuyerAggregate | ||
namespace Microsoft.eShopWeb.ApplicationCore.Entities.BuyerAggregate; | ||
|
||
public class Buyer : BaseEntity, IAggregateRoot | ||
{ | ||
public class Buyer : BaseEntity, IAggregateRoot | ||
{ | ||
public string IdentityGuid { get; private set; } | ||
public string IdentityGuid { get; private set; } | ||
|
||
private List<PaymentMethod> _paymentMethods = new List<PaymentMethod>(); | ||
private List<PaymentMethod> _paymentMethods = new List<PaymentMethod>(); | ||
|
||
public IEnumerable<PaymentMethod> PaymentMethods => _paymentMethods.AsReadOnly(); | ||
public IEnumerable<PaymentMethod> PaymentMethods => _paymentMethods.AsReadOnly(); | ||
|
||
private Buyer() | ||
{ | ||
// required by EF | ||
} | ||
private Buyer() | ||
{ | ||
// required by EF | ||
} | ||
|
||
public Buyer(string identity) : this() | ||
{ | ||
Guard.Against.NullOrEmpty(identity, nameof(identity)); | ||
IdentityGuid = identity; | ||
} | ||
public Buyer(string identity) : this() | ||
{ | ||
Guard.Against.NullOrEmpty(identity, nameof(identity)); | ||
IdentityGuid = identity; | ||
} | ||
} |
13 changes: 6 additions & 7 deletions
13
src/ApplicationCore/Entities/BuyerAggregate/PaymentMethod.cs
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 |
---|---|---|
@@ -1,9 +1,8 @@ | ||
namespace Microsoft.eShopWeb.ApplicationCore.Entities.BuyerAggregate | ||
namespace Microsoft.eShopWeb.ApplicationCore.Entities.BuyerAggregate; | ||
|
||
public class PaymentMethod : BaseEntity | ||
{ | ||
public class PaymentMethod : BaseEntity | ||
{ | ||
public string Alias { get; private set; } | ||
public string CardId { get; private set; } // actual card data must be stored in a PCI compliant system, like Stripe | ||
public string Last4 { get; private set; } | ||
} | ||
public string Alias { get; private set; } | ||
public string CardId { get; private set; } // actual card data must be stored in a PCI compliant system, like Stripe | ||
public string Last4 { get; private set; } | ||
} |
Oops, something went wrong.