Browse Source
* 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.main
committed by
GitHub
252 changed files with 6120 additions and 6226 deletions
@ -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 |
||||
@ -0,0 +1,6 @@ |
|||||
|
{ |
||||
|
"sdk": { |
||||
|
"version": "6.0.x", |
||||
|
"rollForward": "latestFeature" |
||||
|
} |
||||
|
} |
||||
@ -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; } |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -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; } |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -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 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 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 Last4 { get; private set; } |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,13 +1,12 @@ |
|||||
using Microsoft.eShopWeb.ApplicationCore.Interfaces; |
using Microsoft.eShopWeb.ApplicationCore.Interfaces; |
||||
|
|
||||
namespace Microsoft.eShopWeb.ApplicationCore.Entities |
namespace Microsoft.eShopWeb.ApplicationCore.Entities; |
||||
|
|
||||
|
public class CatalogBrand : BaseEntity, IAggregateRoot |
||||
{ |
{ |
||||
public class CatalogBrand : BaseEntity, IAggregateRoot |
|
||||
{ |
|
||||
public string Brand { get; private set; } |
public string Brand { get; private set; } |
||||
public CatalogBrand(string brand) |
public CatalogBrand(string brand) |
||||
{ |
{ |
||||
Brand = brand; |
Brand = brand; |
||||
} |
} |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,13 +1,12 @@ |
|||||
using Microsoft.eShopWeb.ApplicationCore.Interfaces; |
using Microsoft.eShopWeb.ApplicationCore.Interfaces; |
||||
|
|
||||
namespace Microsoft.eShopWeb.ApplicationCore.Entities |
namespace Microsoft.eShopWeb.ApplicationCore.Entities; |
||||
|
|
||||
|
public class CatalogType : BaseEntity, IAggregateRoot |
||||
{ |
{ |
||||
public class CatalogType : BaseEntity, IAggregateRoot |
|
||||
{ |
|
||||
public string Type { get; private set; } |
public string Type { get; private set; } |
||||
public CatalogType(string type) |
public CatalogType(string type) |
||||
{ |
{ |
||||
Type = type; |
Type = type; |
||||
} |
} |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,11 +1,10 @@ |
|||||
using System; |
using System; |
||||
|
|
||||
namespace Microsoft.eShopWeb.ApplicationCore.Exceptions |
namespace Microsoft.eShopWeb.ApplicationCore.Exceptions; |
||||
|
|
||||
|
public class BasketNotFoundException : Exception |
||||
{ |
{ |
||||
public class BasketNotFoundException : Exception |
|
||||
{ |
|
||||
public BasketNotFoundException(int basketId) : base($"No basket found with id {basketId}") |
public BasketNotFoundException(int basketId) : base($"No basket found with id {basketId}") |
||||
{ |
{ |
||||
} |
} |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,14 +1,12 @@ |
|||||
using System; |
using System; |
||||
|
|
||||
namespace Microsoft.eShopWeb.ApplicationCore.Exceptions |
namespace Microsoft.eShopWeb.ApplicationCore.Exceptions; |
||||
{ |
|
||||
|
|
||||
public class DuplicateException : Exception |
public class DuplicateException : Exception |
||||
{ |
{ |
||||
public DuplicateException(string message) : base(message) |
public DuplicateException(string message) : base(message) |
||||
{ |
{ |
||||
|
|
||||
} |
} |
||||
|
|
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,5 +1,4 @@ |
|||||
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces |
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces; |
||||
{ |
|
||||
public interface IAggregateRoot |
public interface IAggregateRoot |
||||
{ } |
{ } |
||||
} |
|
||||
|
|||||
@ -1,12 +1,11 @@ |
|||||
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces |
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// This type eliminates the need to depend directly on the ASP.NET Core logging types.
|
||||
|
/// </summary>
|
||||
|
/// <typeparam name="T"></typeparam>
|
||||
|
public interface IAppLogger<T> |
||||
{ |
{ |
||||
/// <summary>
|
|
||||
/// This type eliminates the need to depend directly on the ASP.NET Core logging types.
|
|
||||
/// </summary>
|
|
||||
/// <typeparam name="T"></typeparam>
|
|
||||
public interface IAppLogger<T> |
|
||||
{ |
|
||||
void LogInformation(string message, params object[] args); |
void LogInformation(string message, params object[] args); |
||||
void LogWarning(string message, params object[] args); |
void LogWarning(string message, params object[] args); |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,9 +1,8 @@ |
|||||
using System.Threading.Tasks; |
using System.Threading.Tasks; |
||||
|
|
||||
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces |
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces; |
||||
|
|
||||
|
public interface IBasketQueryService |
||||
{ |
{ |
||||
public interface IBasketQueryService |
|
||||
{ |
|
||||
Task<int> CountTotalBasketItems(string username); |
Task<int> CountTotalBasketItems(string username); |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,14 +1,13 @@ |
|||||
using Microsoft.eShopWeb.ApplicationCore.Entities.BasketAggregate; |
using System.Collections.Generic; |
||||
using System.Collections.Generic; |
|
||||
using System.Threading.Tasks; |
using System.Threading.Tasks; |
||||
|
using Microsoft.eShopWeb.ApplicationCore.Entities.BasketAggregate; |
||||
|
|
||||
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces |
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces; |
||||
|
|
||||
|
public interface IBasketService |
||||
{ |
{ |
||||
public interface IBasketService |
|
||||
{ |
|
||||
Task TransferBasketAsync(string anonymousId, string userName); |
Task TransferBasketAsync(string anonymousId, string userName); |
||||
Task<Basket> AddItemToBasket(string username, int catalogItemId, decimal price, int quantity = 1); |
Task<Basket> AddItemToBasket(string username, int catalogItemId, decimal price, int quantity = 1); |
||||
Task<Basket> SetQuantities(int basketId, Dictionary<string, int> quantities); |
Task<Basket> SetQuantities(int basketId, Dictionary<string, int> quantities); |
||||
Task DeleteBasketAsync(int basketId); |
Task DeleteBasketAsync(int basketId); |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,10 +1,8 @@ |
|||||
using System.Threading.Tasks; |
using System.Threading.Tasks; |
||||
|
|
||||
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces |
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces; |
||||
{ |
|
||||
|
|
||||
public interface IEmailSender |
public interface IEmailSender |
||||
{ |
{ |
||||
Task SendEmailAsync(string email, string subject, string message); |
Task SendEmailAsync(string email, string subject, string message); |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,10 +1,9 @@ |
|||||
using Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate; |
using System.Threading.Tasks; |
||||
using System.Threading.Tasks; |
using Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate; |
||||
|
|
||||
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces |
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces; |
||||
|
|
||||
|
public interface IOrderService |
||||
{ |
{ |
||||
public interface IOrderService |
|
||||
{ |
|
||||
Task CreateOrderAsync(int basketId, Address shippingAddress); |
Task CreateOrderAsync(int basketId, Address shippingAddress); |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,8 +1,7 @@ |
|||||
using Ardalis.Specification; |
using Ardalis.Specification; |
||||
|
|
||||
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces |
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces; |
||||
|
|
||||
|
public interface IReadRepository<T> : IReadRepositoryBase<T> where T : class, IAggregateRoot |
||||
{ |
{ |
||||
public interface IReadRepository<T> : IReadRepositoryBase<T> where T : class, IAggregateRoot |
|
||||
{ |
|
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,8 +1,7 @@ |
|||||
using Ardalis.Specification; |
using Ardalis.Specification; |
||||
|
|
||||
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces |
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces; |
||||
|
|
||||
|
public interface IRepository<T> : IRepositoryBase<T> where T : class, IAggregateRoot |
||||
{ |
{ |
||||
public interface IRepository<T> : IRepositoryBase<T> where T : class, IAggregateRoot |
|
||||
{ |
|
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,9 +1,8 @@ |
|||||
using System.Threading.Tasks; |
using System.Threading.Tasks; |
||||
|
|
||||
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces |
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces; |
||||
|
|
||||
|
public interface ITokenClaimsService |
||||
{ |
{ |
||||
public interface ITokenClaimsService |
|
||||
{ |
|
||||
Task<string> GetTokenAsync(string userName); |
Task<string> GetTokenAsync(string userName); |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,7 +1,6 @@ |
|||||
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces |
namespace Microsoft.eShopWeb.ApplicationCore.Interfaces; |
||||
|
|
||||
|
public interface IUriComposer |
||||
{ |
{ |
||||
public interface IUriComposer |
|
||||
{ |
|
||||
string ComposePicUri(string uriTemplate); |
string ComposePicUri(string uriTemplate); |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,14 +1,13 @@ |
|||||
using Ardalis.Specification; |
using Ardalis.Specification; |
||||
using Microsoft.eShopWeb.ApplicationCore.Entities; |
using Microsoft.eShopWeb.ApplicationCore.Entities; |
||||
|
|
||||
namespace Microsoft.eShopWeb.ApplicationCore.Specifications |
namespace Microsoft.eShopWeb.ApplicationCore.Specifications; |
||||
|
|
||||
|
public class CatalogFilterSpecification : Specification<CatalogItem> |
||||
{ |
{ |
||||
public class CatalogFilterSpecification : Specification<CatalogItem> |
|
||||
{ |
|
||||
public CatalogFilterSpecification(int? brandId, int? typeId) |
public CatalogFilterSpecification(int? brandId, int? typeId) |
||||
{ |
{ |
||||
Query.Where(i => (!brandId.HasValue || i.CatalogBrandId == brandId) && |
Query.Where(i => (!brandId.HasValue || i.CatalogBrandId == brandId) && |
||||
(!typeId.HasValue || i.CatalogTypeId == typeId)); |
(!typeId.HasValue || i.CatalogTypeId == typeId)); |
||||
} |
} |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,13 +1,12 @@ |
|||||
using Ardalis.Specification; |
using Ardalis.Specification; |
||||
using Microsoft.eShopWeb.ApplicationCore.Entities; |
using Microsoft.eShopWeb.ApplicationCore.Entities; |
||||
|
|
||||
namespace Microsoft.eShopWeb.ApplicationCore.Specifications |
namespace Microsoft.eShopWeb.ApplicationCore.Specifications; |
||||
|
|
||||
|
public class CatalogItemNameSpecification : Specification<CatalogItem> |
||||
{ |
{ |
||||
public class CatalogItemNameSpecification : Specification<CatalogItem> |
|
||||
{ |
|
||||
public CatalogItemNameSpecification(string catalogItemName) |
public CatalogItemNameSpecification(string catalogItemName) |
||||
{ |
{ |
||||
Query.Where(item => catalogItemName == item.Name); |
Query.Where(item => catalogItemName == item.Name); |
||||
} |
} |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,15 +1,14 @@ |
|||||
using Ardalis.Specification; |
using System; |
||||
using Microsoft.eShopWeb.ApplicationCore.Entities; |
|
||||
using System; |
|
||||
using System.Linq; |
using System.Linq; |
||||
|
using Ardalis.Specification; |
||||
|
using Microsoft.eShopWeb.ApplicationCore.Entities; |
||||
|
|
||||
|
namespace Microsoft.eShopWeb.ApplicationCore.Specifications; |
||||
|
|
||||
namespace Microsoft.eShopWeb.ApplicationCore.Specifications |
public class CatalogItemsSpecification : Specification<CatalogItem> |
||||
{ |
{ |
||||
public class CatalogItemsSpecification : Specification<CatalogItem> |
|
||||
{ |
|
||||
public CatalogItemsSpecification(params int[] ids) |
public CatalogItemsSpecification(params int[] ids) |
||||
{ |
{ |
||||
Query.Where(c => ids.Contains(c.Id)); |
Query.Where(c => ids.Contains(c.Id)); |
||||
} |
} |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,15 +1,14 @@ |
|||||
using Ardalis.Specification; |
using Ardalis.Specification; |
||||
using Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate; |
using Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate; |
||||
|
|
||||
namespace Microsoft.eShopWeb.ApplicationCore.Specifications |
namespace Microsoft.eShopWeb.ApplicationCore.Specifications; |
||||
|
|
||||
|
public class CustomerOrdersWithItemsSpecification : Specification<Order> |
||||
{ |
{ |
||||
public class CustomerOrdersWithItemsSpecification : Specification<Order> |
|
||||
{ |
|
||||
public CustomerOrdersWithItemsSpecification(string buyerId) |
public CustomerOrdersWithItemsSpecification(string buyerId) |
||||
{ |
{ |
||||
Query.Where(o => o.BuyerId == buyerId) |
Query.Where(o => o.BuyerId == buyerId) |
||||
.Include(o => o.OrderItems) |
.Include(o => o.OrderItems) |
||||
.ThenInclude(i => i.ItemOrdered); |
.ThenInclude(i => i.ItemOrdered); |
||||
} |
} |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,11 +1,10 @@ |
|||||
namespace BlazorAdmin.JavaScript |
namespace BlazorAdmin.JavaScript; |
||||
|
|
||||
|
public static class JSInteropConstants |
||||
{ |
{ |
||||
public static class JSInteropConstants |
|
||||
{ |
|
||||
public static string DeleteCookie => "deleteCookie"; |
public static string DeleteCookie => "deleteCookie"; |
||||
public static string GetCookie => "getCookie"; |
public static string GetCookie => "getCookie"; |
||||
public static string RouteOutside => "routeOutside"; |
public static string RouteOutside => "routeOutside"; |
||||
public static string HideBodyOverflow => "hideBodyOverflow"; |
public static string HideBodyOverflow => "hideBodyOverflow"; |
||||
public static string ShowBodyOverflow => "showBodyOverflow"; |
public static string ShowBodyOverflow => "showBodyOverflow"; |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,9 +1,8 @@ |
|||||
using System; |
using System; |
||||
|
|
||||
namespace BlazorShared.Attributes |
namespace BlazorShared.Attributes; |
||||
|
|
||||
|
public class EndpointAttribute : Attribute |
||||
{ |
{ |
||||
public class EndpointAttribute : Attribute |
|
||||
{ |
|
||||
public string Name { get; set; } |
public string Name { get; set; } |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,10 +1,9 @@ |
|||||
namespace BlazorShared.Authorization |
namespace BlazorShared.Authorization; |
||||
|
|
||||
|
public static class Constants |
||||
{ |
{ |
||||
public static class Constants |
|
||||
{ |
|
||||
public static class Roles |
public static class Roles |
||||
{ |
{ |
||||
public const string ADMINISTRATORS = "Administrators"; |
public const string ADMINISTRATORS = "Administrators"; |
||||
} |
} |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,14 +1,13 @@ |
|||||
using System.Collections.Generic; |
using System.Collections.Generic; |
||||
|
|
||||
namespace BlazorShared.Authorization |
namespace BlazorShared.Authorization; |
||||
|
|
||||
|
public class UserInfo |
||||
{ |
{ |
||||
public class UserInfo |
|
||||
{ |
|
||||
public static readonly UserInfo Anonymous = new UserInfo(); |
public static readonly UserInfo Anonymous = new UserInfo(); |
||||
public bool IsAuthenticated { get; set; } |
public bool IsAuthenticated { get; set; } |
||||
public string NameClaimType { get; set; } |
public string NameClaimType { get; set; } |
||||
public string RoleClaimType { get; set; } |
public string RoleClaimType { get; set; } |
||||
public string Token { get; set; } |
public string Token { get; set; } |
||||
public IEnumerable<ClaimValue> Claims { get; set; } |
public IEnumerable<ClaimValue> Claims { get; set; } |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,10 +1,9 @@ |
|||||
namespace BlazorShared |
namespace BlazorShared; |
||||
|
|
||||
|
public class BaseUrlConfiguration |
||||
{ |
{ |
||||
public class BaseUrlConfiguration |
|
||||
{ |
|
||||
public const string CONFIG_NAME = "baseUrls"; |
public const string CONFIG_NAME = "baseUrls"; |
||||
|
|
||||
public string ApiBase { get; set; } |
public string ApiBase { get; set; } |
||||
public string WebBase { get; set; } |
public string WebBase { get; set; } |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,11 +1,10 @@ |
|||||
using BlazorShared.Models; |
using System.Collections.Generic; |
||||
using System.Collections.Generic; |
|
||||
using System.Threading.Tasks; |
using System.Threading.Tasks; |
||||
|
using BlazorShared.Models; |
||||
|
|
||||
namespace BlazorShared.Interfaces |
namespace BlazorShared.Interfaces; |
||||
|
|
||||
|
public interface ICatalogLookupDataService<TLookupData> where TLookupData : LookupData |
||||
{ |
{ |
||||
public interface ICatalogLookupDataService<TLookupData> where TLookupData : LookupData |
|
||||
{ |
|
||||
Task<List<TLookupData>> List(); |
Task<List<TLookupData>> List(); |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,10 +1,9 @@ |
|||||
using BlazorShared.Models; |
using System.Collections.Generic; |
||||
using System.Collections.Generic; |
using BlazorShared.Models; |
||||
|
|
||||
namespace BlazorShared.Interfaces |
namespace BlazorShared.Interfaces; |
||||
|
|
||||
|
public interface ILookupDataResponse<TLookupData> where TLookupData : LookupData |
||||
{ |
{ |
||||
public interface ILookupDataResponse<TLookupData> where TLookupData : LookupData |
|
||||
{ |
|
||||
List<TLookupData> List { get; set; } |
List<TLookupData> List { get; set; } |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,9 +1,8 @@ |
|||||
using BlazorShared.Attributes; |
using BlazorShared.Attributes; |
||||
|
|
||||
namespace BlazorShared.Models |
namespace BlazorShared.Models; |
||||
|
|
||||
|
[Endpoint(Name = "catalog-brands")] |
||||
|
public class CatalogBrand : LookupData |
||||
{ |
{ |
||||
[Endpoint(Name = "catalog-brands")] |
|
||||
public class CatalogBrand : LookupData |
|
||||
{ |
|
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,12 +1,11 @@ |
|||||
using BlazorShared.Interfaces; |
using System.Collections.Generic; |
||||
using System.Collections.Generic; |
|
||||
using System.Text.Json.Serialization; |
using System.Text.Json.Serialization; |
||||
|
using BlazorShared.Interfaces; |
||||
|
|
||||
namespace BlazorShared.Models |
namespace BlazorShared.Models; |
||||
|
|
||||
|
public class CatalogBrandResponse : ILookupDataResponse<CatalogBrand> |
||||
{ |
{ |
||||
public class CatalogBrandResponse : ILookupDataResponse<CatalogBrand> |
|
||||
{ |
|
||||
[JsonPropertyName("CatalogBrands")] |
[JsonPropertyName("CatalogBrands")] |
||||
public List<CatalogBrand> List { get; set; } = new List<CatalogBrand>(); |
public List<CatalogBrand> List { get; set; } = new List<CatalogBrand>(); |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,9 +1,8 @@ |
|||||
using BlazorShared.Attributes; |
using BlazorShared.Attributes; |
||||
|
|
||||
namespace BlazorShared.Models |
namespace BlazorShared.Models; |
||||
|
|
||||
|
[Endpoint(Name = "catalog-types")] |
||||
|
public class CatalogType : LookupData |
||||
{ |
{ |
||||
[Endpoint(Name = "catalog-types")] |
|
||||
public class CatalogType : LookupData |
|
||||
{ |
|
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,13 +1,12 @@ |
|||||
using BlazorShared.Interfaces; |
using System.Collections.Generic; |
||||
using System.Collections.Generic; |
|
||||
using System.Text.Json.Serialization; |
using System.Text.Json.Serialization; |
||||
|
using BlazorShared.Interfaces; |
||||
|
|
||||
namespace BlazorShared.Models |
namespace BlazorShared.Models; |
||||
|
|
||||
|
public class CatalogTypeResponse : ILookupDataResponse<CatalogType> |
||||
{ |
{ |
||||
public class CatalogTypeResponse : ILookupDataResponse<CatalogType> |
|
||||
{ |
|
||||
|
|
||||
[JsonPropertyName("CatalogTypes")] |
[JsonPropertyName("CatalogTypes")] |
||||
public List<CatalogType> List { get; set; } = new List<CatalogType>(); |
public List<CatalogType> List { get; set; } = new List<CatalogType>(); |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,7 +1,6 @@ |
|||||
namespace BlazorShared.Models |
namespace BlazorShared.Models; |
||||
|
|
||||
|
public class CreateCatalogItemResponse |
||||
{ |
{ |
||||
public class CreateCatalogItemResponse |
|
||||
{ |
|
||||
public CatalogItem CatalogItem { get; set; } = new CatalogItem(); |
public CatalogItem CatalogItem { get; set; } = new CatalogItem(); |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,7 +1,6 @@ |
|||||
namespace BlazorShared.Models |
namespace BlazorShared.Models; |
||||
|
|
||||
|
public class DeleteCatalogItemResponse |
||||
{ |
{ |
||||
public class DeleteCatalogItemResponse |
|
||||
{ |
|
||||
public string Status { get; set; } = "Deleted"; |
public string Status { get; set; } = "Deleted"; |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,7 +1,6 @@ |
|||||
namespace BlazorShared.Models |
namespace BlazorShared.Models; |
||||
|
|
||||
|
public class EditCatalogItemResult |
||||
{ |
{ |
||||
public class EditCatalogItemResult |
|
||||
{ |
|
||||
public CatalogItem CatalogItem { get; set; } = new CatalogItem(); |
public CatalogItem CatalogItem { get; set; } = new CatalogItem(); |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,14 +1,13 @@ |
|||||
using System.Text.Json; |
using System.Text.Json; |
||||
|
|
||||
namespace BlazorShared.Models |
namespace BlazorShared.Models; |
||||
|
|
||||
|
public class ErrorDetails |
||||
{ |
{ |
||||
public class ErrorDetails |
|
||||
{ |
|
||||
public int StatusCode { get; set; } |
public int StatusCode { get; set; } |
||||
public string Message { get; set; } |
public string Message { get; set; } |
||||
public override string ToString() |
public override string ToString() |
||||
{ |
{ |
||||
return JsonSerializer.Serialize(this); |
return JsonSerializer.Serialize(this); |
||||
} |
} |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,8 +1,7 @@ |
|||||
namespace BlazorShared.Models |
namespace BlazorShared.Models; |
||||
|
|
||||
|
public abstract class LookupData |
||||
{ |
{ |
||||
public abstract class LookupData |
|
||||
{ |
|
||||
public int Id { get; set; } |
public int Id { get; set; } |
||||
public string Name { get; set; } |
public string Name { get; set; } |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,10 +1,9 @@ |
|||||
using System.Collections.Generic; |
using System.Collections.Generic; |
||||
|
|
||||
namespace BlazorShared.Models |
namespace BlazorShared.Models; |
||||
|
|
||||
|
public class PagedCatalogItemResponse |
||||
{ |
{ |
||||
public class PagedCatalogItemResponse |
|
||||
{ |
|
||||
public List<CatalogItem> CatalogItems { get; set; } = new List<CatalogItem>(); |
public List<CatalogItem> CatalogItems { get; set; } = new List<CatalogItem>(); |
||||
public int PageCount { get; set; } = 0; |
public int PageCount { get; set; } = 0; |
||||
} |
|
||||
} |
} |
||||
|
|||||
@ -1,12 +1,11 @@ |
|||||
using Ardalis.Specification.EntityFrameworkCore; |
using Ardalis.Specification.EntityFrameworkCore; |
||||
using Microsoft.eShopWeb.ApplicationCore.Interfaces; |
using Microsoft.eShopWeb.ApplicationCore.Interfaces; |
||||
|
|
||||
namespace Microsoft.eShopWeb.Infrastructure.Data |
namespace Microsoft.eShopWeb.Infrastructure.Data; |
||||
|
|
||||
|
public class EfRepository<T> : RepositoryBase<T>, IReadRepository<T>, IRepository<T> where T : class, IAggregateRoot |
||||
{ |
{ |
||||
public class EfRepository<T> : RepositoryBase<T>, IReadRepository<T>, IRepository<T> where T : class, IAggregateRoot |
|
||||
{ |
|
||||
public EfRepository(CatalogContext dbContext) : base(dbContext) |
public EfRepository(CatalogContext dbContext) : base(dbContext) |
||||
{ |
{ |
||||
} |
} |
||||
} |
|
||||
} |
} |
||||
@ -1,12 +1,11 @@ |
|||||
namespace Microsoft.eShopWeb.Infrastructure.Data |
namespace Microsoft.eShopWeb.Infrastructure.Data; |
||||
|
|
||||
|
public class FileItem |
||||
{ |
{ |
||||
public class FileItem |
|
||||
{ |
|
||||
public string FileName { get; set; } |
public string FileName { get; set; } |
||||
public string Url { get; set; } |
public string Url { get; set; } |
||||
public long Size { get; set; } |
public long Size { get; set; } |
||||
public string Ext { get; set; } |
public string Ext { get; set; } |
||||
public string Type { get; set; } |
public string Type { get; set; } |
||||
public string DataBase64 { get; set; } |
public string DataBase64 { get; set; } |
||||
} |
|
||||
} |
} |
||||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue