BlazorShared and Services (#430)

* Service to Services

* Change Shared project to BlazorShared

* change refrerances to BlazorShared
This commit is contained in:
Shady Nagy
2020-07-25 23:28:21 +02:00
committed by GitHub
parent f4bfc81fe8
commit e1f9ddd192
46 changed files with 87 additions and 76 deletions

View File

@@ -34,7 +34,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PublicApi", "src\PublicApi\
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorAdmin", "src\BlazorAdmin\BlazorAdmin.csproj", "{71368733-80A4-4869-B215-3A7001878577}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Shared", "src\Shared\Shared.csproj", "{7BDB419E-FAC1-4D43-8AA9-FB61EBE31BB8}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorShared", "src\BlazorShared\BlazorShared.csproj", "{715CF7AF-A1EE-40A6-94A0-8DA3F3B2CAE9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -78,10 +78,10 @@ Global
{71368733-80A4-4869-B215-3A7001878577}.Debug|Any CPU.Build.0 = Debug|Any CPU
{71368733-80A4-4869-B215-3A7001878577}.Release|Any CPU.ActiveCfg = Release|Any CPU
{71368733-80A4-4869-B215-3A7001878577}.Release|Any CPU.Build.0 = Release|Any CPU
{7BDB419E-FAC1-4D43-8AA9-FB61EBE31BB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7BDB419E-FAC1-4D43-8AA9-FB61EBE31BB8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7BDB419E-FAC1-4D43-8AA9-FB61EBE31BB8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7BDB419E-FAC1-4D43-8AA9-FB61EBE31BB8}.Release|Any CPU.Build.0 = Release|Any CPU
{715CF7AF-A1EE-40A6-94A0-8DA3F3B2CAE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{715CF7AF-A1EE-40A6-94A0-8DA3F3B2CAE9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{715CF7AF-A1EE-40A6-94A0-8DA3F3B2CAE9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{715CF7AF-A1EE-40A6-94A0-8DA3F3B2CAE9}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -95,7 +95,7 @@ Global
{7EFB5482-F942-4C3D-94B0-9B70596E6D0A} = {15EA4737-125B-4E6E-A806-E13B7EBCDCCF}
{B5E4F33C-4667-4A55-AF6A-740F84C4CF3A} = {419A6ACE-0419-4315-A6FB-B0E63D39432E}
{71368733-80A4-4869-B215-3A7001878577} = {419A6ACE-0419-4315-A6FB-B0E63D39432E}
{7BDB419E-FAC1-4D43-8AA9-FB61EBE31BB8} = {419A6ACE-0419-4315-A6FB-B0E63D39432E}
{715CF7AF-A1EE-40A6-94A0-8DA3F3B2CAE9} = {419A6ACE-0419-4315-A6FB-B0E63D39432E}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {49813262-5DA3-4D61-ABD3-493C74CE8C2B}

View File

@@ -13,4 +13,8 @@
<PackageReference Include="System.Text.Json" Version="4.7.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\BlazorShared\BlazorShared.csproj" />
</ItemGroup>
</Project>

View File

@@ -2,10 +2,6 @@
{
public class AuthorizationConstants
{
public static class Roles
{
public const string ADMINISTRATORS = "Administrators";
}
// TODO: Don't use this in production
public const string DEFAULT_PASSWORD = "Pass@word1";

View File

@@ -18,7 +18,7 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Shared\Shared.csproj" />
<ProjectReference Include="..\BlazorShared\BlazorShared.csproj" />
</ItemGroup>
<ItemGroup>

View File

@@ -3,10 +3,5 @@
public class Constants
{
public const string API_URL = "https://localhost:5099/api/";
public static class Roles
{
public const string ADMINISTRATORS = "Administrators";
}
}
}

View File

@@ -4,7 +4,7 @@ using Microsoft.AspNetCore.Components.Authorization;
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Shared.Authorization;
using BlazorShared.Authorization;
namespace BlazorAdmin
{

View File

@@ -118,7 +118,7 @@
private async Task CreateClick()
{
await new BlazorAdmin.Services.CatalogItemService.Create(Auth).HandleAsync(_item);
await new BlazorAdmin.Services.CatalogItemServices.Create(Auth).HandleAsync(_item);
await OnCloseClick.InvokeAsync(null);
Close();
}

View File

@@ -47,7 +47,7 @@
</dt>
<dd>
@Services.CatalogBrandService.List.GetBrandName(Brands, _item.CatalogBrandId)
@Services.CatalogBrandServices.List.GetBrandName(Brands, _item.CatalogBrandId)
</dd>
<dt>
@@ -55,7 +55,7 @@
</dt>
<dd>
@Services.CatalogTypeService.List.GetTypeName(Types, _item.CatalogTypeId)
@Services.CatalogTypeServices.List.GetTypeName(Types, _item.CatalogTypeId)
</dd>
<dt>
Price
@@ -105,7 +105,7 @@
{
// TODO: Add some kind of "are you sure" check before this
await new BlazorAdmin.Services.CatalogItemService.Delete(Auth).HandleAsync(id);
await new BlazorAdmin.Services.CatalogItemServices.Delete(Auth).HandleAsync(id);
await OnCloseClick.InvokeAsync(null);
Close();

View File

@@ -50,7 +50,7 @@
</dt>
<dd>
@Services.CatalogBrandService.List.GetBrandName(Brands, _item.CatalogBrandId)
@Services.CatalogBrandServices.List.GetBrandName(Brands, _item.CatalogBrandId)
</dd>
<dt>
@@ -58,7 +58,7 @@
</dt>
<dd>
@Services.CatalogTypeService.List.GetTypeName(Types, _item.CatalogTypeId)
@Services.CatalogTypeServices.List.GetTypeName(Types, _item.CatalogTypeId)
</dd>
<dt>
Price

View File

@@ -118,7 +118,7 @@
private async Task SaveClick()
{
await new BlazorAdmin.Services.CatalogItemService.Edit(Auth).HandleAsync(_item);
await new BlazorAdmin.Services.CatalogItemServices.Edit(Auth).HandleAsync(_item);
Close();
}

View File

@@ -1,7 +1,7 @@
@page "/admin"
@attribute [Authorize(Roles = Constants.Roles.ADMINISTRATORS)]
@attribute [Authorize(Roles = BlazorShared.Authorization.Constants.Roles.ADMINISTRATORS)]
@inject AuthService Auth
@using global::Shared.Authorization
@using global::BlazorShared.Authorization
@inherits BlazorAdmin.Helpers.BlazorComponent
@namespace BlazorAdmin.Pages.CatalogItemPage
@@ -40,8 +40,8 @@ else
<td>
<img class="img-thumbnail" src="@($"https://localhost:44315/{item.PictureUri}")">
</td>
<td>@Services.CatalogTypeService.List.GetTypeName(catalogTypes, item.CatalogTypeId)</td>
<td>@Services.CatalogBrandService.List.GetBrandName(catalogBrands, item.CatalogBrandId)</td>
<td>@Services.CatalogTypeServices.List.GetTypeName(catalogTypes, item.CatalogTypeId)</td>
<td>@Services.CatalogBrandServices.List.GetBrandName(catalogBrands, item.CatalogBrandId)</td>
<td>@item.Id</td>
<td>@item.Name</td>
<td>@item.Description</td>

View File

@@ -1,7 +1,7 @@
using BlazorAdmin.Helpers;
using BlazorAdmin.Services.CatalogBrandService;
using BlazorAdmin.Services.CatalogItemService;
using BlazorAdmin.Services.CatalogTypeService;
using BlazorAdmin.Services.CatalogBrandServices;
using BlazorAdmin.Services.CatalogItemServices;
using BlazorAdmin.Services.CatalogTypeServices;
using System.Collections.Generic;
using System.Threading.Tasks;
@@ -22,9 +22,9 @@ namespace BlazorAdmin.Pages.CatalogItemPage
{
if (firstRender)
{
catalogItems = await new BlazorAdmin.Services.CatalogItemService.ListPaged(Auth).HandleAsync(50);
catalogTypes = await new BlazorAdmin.Services.CatalogTypeService.List(Auth).HandleAsync();
catalogBrands = await new BlazorAdmin.Services.CatalogBrandService.List(Auth).HandleAsync();
catalogItems = await new BlazorAdmin.Services.CatalogItemServices.ListPaged(Auth).HandleAsync(50);
catalogTypes = await new BlazorAdmin.Services.CatalogTypeServices.List(Auth).HandleAsync();
catalogBrands = await new BlazorAdmin.Services.CatalogBrandServices.List(Auth).HandleAsync();
CallRequestRefresh();
}
@@ -54,7 +54,7 @@ namespace BlazorAdmin.Pages.CatalogItemPage
private async Task ReloadCatalogItems()
{
catalogItems = await new BlazorAdmin.Services.CatalogItemService.ListPaged(Auth).HandleAsync(50);
catalogItems = await new BlazorAdmin.Services.CatalogItemServices.ListPaged(Auth).HandleAsync(50);
StateHasChanged();
}
}

View File

@@ -11,7 +11,7 @@ using BlazorAdmin.JavaScript;
using Blazored.LocalStorage;
using Microsoft.JSInterop;
using Newtonsoft.Json;
using Shared.Authorization;
using BlazorShared.Authorization;
namespace BlazorAdmin.Services
{

View File

@@ -1,4 +1,4 @@
namespace BlazorAdmin.Services.CatalogBrandService
namespace BlazorAdmin.Services.CatalogBrandServices
{
public class CatalogBrand
{

View File

@@ -1,6 +1,6 @@
using System.Collections.Generic;
namespace BlazorAdmin.Services.CatalogBrandService
namespace BlazorAdmin.Services.CatalogBrandServices
{
public class CatalogBrandResult
{

View File

@@ -5,7 +5,7 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore.Components.WebAssembly.Authentication;
using Newtonsoft.Json;
namespace BlazorAdmin.Services.CatalogBrandService
namespace BlazorAdmin.Services.CatalogBrandServices
{
public class List
{

View File

@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
namespace BlazorAdmin.Services.CatalogItemService
namespace BlazorAdmin.Services.CatalogItemServices
{
public class CatalogItem
{

View File

@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
namespace BlazorAdmin.Services.CatalogItemService
namespace BlazorAdmin.Services.CatalogItemServices
{
public class CreateCatalogItemRequest
{

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace BlazorAdmin.Services.CatalogItemService
namespace BlazorAdmin.Services.CatalogItemServices
{
public class CreateCatalogItemResult
{

View File

@@ -4,7 +4,7 @@ using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace BlazorAdmin.Services.CatalogItemService
namespace BlazorAdmin.Services.CatalogItemServices
{
public class Create
{

View File

@@ -1,4 +1,4 @@
namespace BlazorAdmin.Services.CatalogItemService
namespace BlazorAdmin.Services.CatalogItemServices
{
public class DeleteCatalogItemResult
{

View File

@@ -2,7 +2,7 @@
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace BlazorAdmin.Services.CatalogItemService
namespace BlazorAdmin.Services.CatalogItemServices
{
public class Delete
{

View File

@@ -1,4 +1,4 @@
namespace BlazorAdmin.Services.CatalogItemService
namespace BlazorAdmin.Services.CatalogItemServices
{
public class EditCatalogItemResult
{

View File

@@ -4,7 +4,7 @@ using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace BlazorAdmin.Services.CatalogItemService
namespace BlazorAdmin.Services.CatalogItemServices
{
public class Edit
{

View File

@@ -1,4 +1,4 @@
namespace BlazorAdmin.Services.CatalogItemService
namespace BlazorAdmin.Services.CatalogItemServices
{
public class GetByIdCatalogItemResult
{

View File

@@ -2,7 +2,7 @@
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace BlazorAdmin.Services.CatalogItemService
namespace BlazorAdmin.Services.CatalogItemServices
{
public class GetById
{

View File

@@ -1,6 +1,6 @@
using System.Collections.Generic;
namespace BlazorAdmin.Services.CatalogItemService
namespace BlazorAdmin.Services.CatalogItemServices
{
public class PagedCatalogItemResult
{

View File

@@ -3,7 +3,7 @@ using System.Net;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace BlazorAdmin.Services.CatalogItemService
namespace BlazorAdmin.Services.CatalogItemServices
{
public class ListPaged
{

View File

@@ -1,4 +1,4 @@
namespace BlazorAdmin.Services.CatalogTypeService
namespace BlazorAdmin.Services.CatalogTypeServices
{
public class CatalogType
{

View File

@@ -1,6 +1,6 @@
using System.Collections.Generic;
namespace BlazorAdmin.Services.CatalogTypeService
namespace BlazorAdmin.Services.CatalogTypeServices
{
public class CatalogTypeResult
{

View File

@@ -5,7 +5,7 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore.Components.WebAssembly.Authentication;
using Newtonsoft.Json;
namespace BlazorAdmin.Services.CatalogTypeService
namespace BlazorAdmin.Services.CatalogTypeServices
{
public class List
{

View File

@@ -3,7 +3,7 @@
@inherits BlazorAdmin.Helpers.BlazorLayoutComponent
<AuthorizeView Roles=@Constants.Roles.ADMINISTRATORS>
<AuthorizeView Roles=@BlazorShared.Authorization.Constants.Roles.ADMINISTRATORS>
<div class="sidebar">
<NavMenu />
</div>

View File

@@ -10,8 +10,8 @@
@using BlazorAdmin
@using BlazorAdmin.Shared
@using BlazorAdmin.Services
@using BlazorAdmin.Services.CatalogBrandService
@using BlazorAdmin.Services.CatalogItemService
@using BlazorAdmin.Services.CatalogTypeService
@using BlazorAdmin.Services.CatalogBrandServices
@using BlazorAdmin.Services.CatalogItemServices
@using BlazorAdmin.Services.CatalogTypeServices
@using Microsoft.Extensions.Logging
@using BlazorAdmin.JavaScript

View File

@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace Shared.Authorization
namespace BlazorShared.Authorization
{
public class ClaimValue
{

View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace BlazorShared.Authorization
{
public class Constants
{
public static class Roles
{
public const string ADMINISTRATORS = "Administrators";
}
}
}

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Security.Claims;
using System.Text;
namespace Shared.Authorization
namespace BlazorShared.Authorization
{
public class UserInfo
{

View File

@@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>BlazorShared</RootNamespace>
<AssemblyName>BlazorShared</AssemblyName>
</PropertyGroup>
</Project>

View File

@@ -8,7 +8,7 @@ namespace Microsoft.eShopWeb.Infrastructure.Identity
{
public static async Task SeedAsync(UserManager<ApplicationUser> userManager, RoleManager<IdentityRole> roleManager)
{
await roleManager.CreateAsync(new IdentityRole(AuthorizationConstants.Roles.ADMINISTRATORS));
await roleManager.CreateAsync(new IdentityRole(BlazorShared.Authorization.Constants.Roles.ADMINISTRATORS));
var defaultUser = new ApplicationUser { UserName = "demouser@microsoft.com", Email = "demouser@microsoft.com" };
await userManager.CreateAsync(defaultUser, AuthorizationConstants.DEFAULT_PASSWORD);
@@ -17,7 +17,7 @@ namespace Microsoft.eShopWeb.Infrastructure.Identity
var adminUser = new ApplicationUser { UserName = adminUserName, Email = adminUserName };
await userManager.CreateAsync(adminUser, AuthorizationConstants.DEFAULT_PASSWORD);
adminUser = await userManager.FindByNameAsync(adminUserName);
await userManager.AddToRoleAsync(adminUser, AuthorizationConstants.Roles.ADMINISTRATORS);
await userManager.AddToRoleAsync(adminUser, BlazorShared.Authorization.Constants.Roles.ADMINISTRATORS);
}
}
}

View File

@@ -11,7 +11,7 @@ using System.Threading.Tasks;
namespace Microsoft.eShopWeb.PublicApi.CatalogItemEndpoints
{
[Authorize(Roles = AuthorizationConstants.Roles.ADMINISTRATORS, AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[Authorize(Roles = BlazorShared.Authorization.Constants.Roles.ADMINISTRATORS, AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class Create : BaseAsyncEndpoint<CreateCatalogItemRequest, CreateCatalogItemResponse>
{
private readonly IAsyncRepository<CatalogItem> _itemRepository;

View File

@@ -10,7 +10,7 @@ using System.Threading.Tasks;
namespace Microsoft.eShopWeb.PublicApi.CatalogItemEndpoints
{
[Authorize(Roles = AuthorizationConstants.Roles.ADMINISTRATORS, AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[Authorize(Roles = BlazorShared.Authorization.Constants.Roles.ADMINISTRATORS, AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class Delete : BaseAsyncEndpoint<DeleteCatalogItemRequest, DeleteCatalogItemResponse>
{
private readonly IAsyncRepository<CatalogItem> _itemRepository;

View File

@@ -12,7 +12,7 @@ using System.Threading.Tasks;
namespace Microsoft.eShopWeb.PublicApi.CatalogItemEndpoints
{
[Authorize(Roles = AuthorizationConstants.Roles.ADMINISTRATORS, AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[Authorize(Roles = BlazorShared.Authorization.Constants.Roles.ADMINISTRATORS, AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class Update : BaseAsyncEndpoint<UpdateCatalogItemRequest, UpdateCatalogItemResponse>
{
private readonly IAsyncRepository<CatalogItem> _itemRepository;

View File

@@ -1,7 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>

View File

@@ -3,7 +3,7 @@ using System.Linq;
using System.Security.Claims;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Shared.Authorization;
using BlazorShared.Authorization;
namespace Microsoft.eShopWeb.Web.Controllers
{

View File

@@ -8,7 +8,7 @@ using System.Threading.Tasks;
namespace Microsoft.eShopWeb.Web.Pages.Admin
{
[Authorize(Roles = AuthorizationConstants.Roles.ADMINISTRATORS)]
[Authorize(Roles = BlazorShared.Authorization.Constants.Roles.ADMINISTRATORS)]
public class EditCatalogItemModel : PageModel
{
private readonly ICatalogItemViewModelService _catalogItemViewModelService;

View File

@@ -9,7 +9,7 @@ using System.Threading.Tasks;
namespace Microsoft.eShopWeb.Web.Pages.Admin
{
[Authorize(Roles = AuthorizationConstants.Roles.ADMINISTRATORS)]
[Authorize(Roles = BlazorShared.Authorization.Constants.Roles.ADMINISTRATORS)]
public class IndexModel : PageModel
{
public IndexModel()

View File

@@ -51,8 +51,8 @@
<ItemGroup>
<ProjectReference Include="..\ApplicationCore\ApplicationCore.csproj" />
<ProjectReference Include="..\BlazorAdmin\BlazorAdmin.csproj" />
<ProjectReference Include="..\BlazorShared\BlazorShared.csproj" />
<ProjectReference Include="..\Infrastructure\Infrastructure.csproj" />
<ProjectReference Include="..\Shared\Shared.csproj" />
</ItemGroup>
<ItemGroup>
<None Include="compilerconfig.json" />