Skip to content

Commit

Permalink
vietnam-devs#5 refactor with NetCoreKit version and using MySQL
Browse files Browse the repository at this point in the history
  • Loading branch information
thangchung committed Aug 26, 2018
1 parent 9ffe38c commit 38af199
Show file tree
Hide file tree
Showing 23 changed files with 148 additions and 478 deletions.
2 changes: 0 additions & 2 deletions src/services/cart/Infrastructure/Gateways/CatalogGateway.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@
using Microsoft.Extensions.Configuration;
using NetCoreKit.Infrastructure.AspNetCore;
using NetCoreKit.Infrastructure.AspNetCore.Extensions;
using NetCoreKit.Utils.Attributes;
using VND.CoolStore.Services.Cart.Domain;
using VND.CoolStore.Services.Cart.Dtos;

namespace VND.CoolStore.Services.Cart.Infrastructure.Gateways
{
[AutoScanAwareness]
public class CatalogGateway : ProxyServiceBase, ICatalogGateway
{
private readonly string _catalogServiceUri;
Expand Down
2 changes: 0 additions & 2 deletions src/services/cart/Infrastructure/Gateways/PromoGateway.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
using NetCoreKit.Utils.Attributes;
using VND.CoolStore.Services.Cart.Domain;

namespace VND.CoolStore.Services.Cart.Infrastructure.Gateways
{
[AutoScanAwareness]
public class PromoGateway : IPromoGateway
{
public Domain.Cart ApplyCartItemPromotions(Domain.Cart cart)
Expand Down
2 changes: 0 additions & 2 deletions src/services/cart/Infrastructure/Gateways/ShippingGateway.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
using NetCoreKit.Utils.Attributes;
using VND.CoolStore.Services.Cart.Domain;

namespace VND.CoolStore.Services.Cart.Infrastructure.Gateways
{
[AutoScanAwareness]
public class ShippingGateway : IShippingGateway
{
public Domain.Cart CalculateShipping(Domain.Cart cart)
Expand Down
3 changes: 2 additions & 1 deletion src/services/cart/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public static void Main(string[] args)

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
.UseStartup<Startup>()
.UseDefaultServiceProvider(o => o.ValidateScopes = false);
}
}
12 changes: 11 additions & 1 deletion src/services/cart/Startup.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
using System.Collections.Generic;
using Microsoft.AspNetCore.Builder;
using Microsoft.EntityFrameworkCore.Internal;
using Microsoft.Extensions.DependencyInjection;
using NetCoreKit.Infrastructure.AspNetCore.Miniservice;
using NetCoreKit.Infrastructure.EfCore.MySql;
using VND.CoolStore.Services.Cart.Domain;
using VND.CoolStore.Services.Cart.Infrastructure.Db;
using VND.CoolStore.Services.Cart.Infrastructure.Gateways;
using VND.CoolStore.Services.Cart.v1.Services;

namespace VND.CoolStore.Services.Cart
{
Expand All @@ -12,12 +16,18 @@ public class Startup
public void ConfigureServices(IServiceCollection services)
{
services.AddMiniService<CartDbContext>(
new[] {typeof(Startup)},
svc =>
{
svc.AddEfCoreMySqlDb();
svc.AddExternalSystemHealthChecks();
},
(svc, _) =>
{
svc.AddScoped<INoTaxPriceCalculator, NoTaxCaculator>();
svc.AddScoped<ICatalogGateway, CatalogGateway>();
svc.AddScoped<IPromoGateway, PromoGateway>();
svc.AddScoped<IShippingGateway, ShippingGateway>();
},
() => new Dictionary<string, object>
{
{
Expand Down
21 changes: 10 additions & 11 deletions src/services/cart/VND.CoolStore.Services.Cart.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,16 @@
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="2.1.2" />
<PackageReference Include="Microsoft.Extensions.Http" Version="2.1.1" />
<PackageReference Include="NetCoreKit.Domain" Version="0.1.27" />
<PackageReference Include="NetCoreKit.Infrastructure" Version="0.1.27" />
<PackageReference Include="NetCoreKit.Infrastructure.AspNetCore" Version="0.1.27" />
<PackageReference Include="NetCoreKit.Infrastructure.AspNetCore.CleanArch" Version="0.1.27" />
<PackageReference Include="NetCoreKit.Infrastructure.AspNetCore.Miniservice" Version="0.1.27" />
<PackageReference Include="NetCoreKit.Infrastructure.AspNetCore.OpenApi" Version="0.1.27" />
<PackageReference Include="NetCoreKit.Infrastructure.EfCore" Version="0.1.27" />
<PackageReference Include="NetCoreKit.Infrastructure.EfCore.MySql" Version="0.1.27" />
<PackageReference Include="NetCoreKit.Infrastructure.EfCore.SqlServer" Version="0.1.27" />
<PackageReference Include="NetCoreKit.Utils" Version="0.1.27" />
<PackageReference Include="Scrutor" Version="2.2.2" />
<PackageReference Include="NetCoreKit.Domain" Version="0.1.30" />
<PackageReference Include="NetCoreKit.Infrastructure" Version="0.1.30" />
<PackageReference Include="NetCoreKit.Infrastructure.AspNetCore" Version="0.1.30" />
<PackageReference Include="NetCoreKit.Infrastructure.AspNetCore.CleanArch" Version="0.1.30" />
<PackageReference Include="NetCoreKit.Infrastructure.AspNetCore.Miniservice" Version="0.1.30" />
<PackageReference Include="NetCoreKit.Infrastructure.AspNetCore.OpenApi" Version="0.1.30" />
<PackageReference Include="NetCoreKit.Infrastructure.EfCore" Version="0.1.30" />
<PackageReference Include="NetCoreKit.Infrastructure.EfCore.MySql" Version="0.1.30" />
<PackageReference Include="NetCoreKit.Infrastructure.EfCore.SqlServer" Version="0.1.30" />
<PackageReference Include="NetCoreKit.Utils" Version="0.1.30" />
<PackageReference Include="System.Reactive" Version="4.1.0" />
</ItemGroup>

Expand Down
7 changes: 5 additions & 2 deletions src/services/cart/appsettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"SERVICE_VERSION": "0.0.1",
"EnableAuthN": true,
"ConnectionStrings": {
"mssqldb": "Server=tcp:{0},{1};Database={2};User Id={3};Password={4};"
"mssqldb": "Server=tcp:{0},{1};Database={2};User Id={3};Password={4};",
"mysqldb": "server={0};port={1};uid={2};pwd={3};database={4}"
},
"EfCore": {
"FullyQualifiedPrefix": "VND.CoolStore.Services.*",
Expand Down Expand Up @@ -64,7 +65,9 @@
},
"Console": {
"LogLevel": {
"Default": "Warning"
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
Expand Down
2 changes: 0 additions & 2 deletions src/services/cart/v1/Services/NoTaxCaculator.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
using NetCoreKit.Utils.Attributes;
using VND.CoolStore.Services.Cart.Domain;
using VND.CoolStore.Services.Cart.Infrastructure.Services;

Expand All @@ -8,7 +7,6 @@ public interface INoTaxPriceCalculator : IPriceCalculator
{
}

[AutoScanAwareness]
public class NoTaxCaculator : PriceCalculatorContext, INoTaxPriceCalculator
{
public NoTaxCaculator(IPromoGateway promoGateway, IShippingGateway shippingGateway)
Expand Down
19 changes: 14 additions & 5 deletions src/services/cart/v1/UseCases/CartController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,25 @@ public async Task<IActionResult> Get([FromServices] IMediator eventor, Guid id,
{
return await eventor.SendStream<GetCartRequest, GetCartResponse>(
new GetCartRequest { CartId = id },
x => x.Result);
x => x.Result,
cancellationToken);
}

[HttpPost]
[Auth(Policy = "access_cart_api")]
public async Task<IActionResult> Create([FromServices] IMediator eventor, InsertItemToNewCartRequest request, CancellationToken cancellationToken) =>
await eventor.SendStream<InsertItemToNewCartRequest, InsertItemToNewCartResponse>(request, x => x.Result);
await eventor.SendStream<InsertItemToNewCartRequest, InsertItemToNewCartResponse>(
request,
x => x.Result,
cancellationToken);

[HttpPut]
[Auth(Policy = "access_cart_api")]
public async Task<IActionResult> Put([FromServices] IMediator eventor, UpdateItemInCartRequest request, CancellationToken cancellationToken) =>
await eventor.SendStream<UpdateItemInCartRequest, UpdateItemInCartResponse>(request, x => x.Result);
await eventor.SendStream<UpdateItemInCartRequest, UpdateItemInCartResponse>(
request,
x => x.Result,
cancellationToken);

[HttpDelete]
[Route("{cartId:guid}/items/{productId:guid}")]
Expand All @@ -46,7 +53,8 @@ public async Task<IActionResult> RemoveItemInCart([FromServices] IMediator event
{
return await eventor.SendStream<DeleteItemRequest, DeleteItemResponse>(
new DeleteItemRequest { CartId = cartId, ProductId = productId },
x => x.ProductId);
x => x.ProductId,
cancellationToken);
}

[HttpPut]
Expand All @@ -56,7 +64,8 @@ public async Task<IActionResult> CheckoutCart([FromServices] IMediator eventor,
{
return await eventor.SendStream<CheckoutRequest, CheckoutResponse>(
new CheckoutRequest { CartId = cartId },
x => x.IsSucceed);
x => x.IsSucceed,
cancellationToken);
}
}
}
4 changes: 3 additions & 1 deletion src/services/catalog/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,14 @@
"cross-env": "^5.2.0",
"npm-run-all": "^4.1.3",
"rimraf": "^2.5.2",
"ts-loader": "^4.5.0",
"ts-node": "^7.0.1",
"tslint": "^3.11.0",
"tslint-loader": "^3.6.0",
"typescript": "^3.0.1",
"webpack": "^4.16.5",
"webpack-cli": "^3.1.0"
"webpack-cli": "^3.1.0",
"webpack-shell-plugin": "^0.5.0"
},
"repository": {
"type": "git"
Expand Down
Loading

0 comments on commit 38af199

Please sign in to comment.