Refactoring in Ordering Domain Model so it shows a clear AggregateModel and clusters of entities as Aggregates.

Also, showing Repository Interfaces as RepositoryContracts.
This commit is contained in:
CESARDELATORRE 2017-01-17 18:32:40 -08:00
parent d09bffd294
commit 57ae6ab3be
16 changed files with 31 additions and 15 deletions

View File

@ -6,10 +6,15 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
//(CDLTLL) TO DO: This is wrong, we must NOT use a child-entity class within a Command class!!
//Need to create a different DTO class, like OrderLineDTO or similar...
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
public class NewOrderCommand public class NewOrderCommand
:IAsyncRequest<bool> :IAsyncRequest<bool>
{ {
//(CDLTLL) TO DO: This is wrong, we must NOT use a child-entity class within a Command class!!
//Need to create a different DTO class, like OrderLineDTO or similar...
private readonly List<OrderItem> _orderItems; private readonly List<OrderItem> _orderItems;
public string City { get; set; } public string City { get; set; }

View File

@ -1,6 +1,8 @@
namespace Microsoft.eShopOnContainers.Services.Ordering.Api.Application.Commands namespace Microsoft.eShopOnContainers.Services.Ordering.Api.Application.Commands
{ {
using Domain.Repositories; using Domain.RepositoryContracts;
using Domain.AggregatesModel.OrderAggregate;
using Domain.AggregatesModel.BuyerAggregate;
using MediatR; using MediatR;
using System.Linq; using System.Linq;
using System; using System;
@ -84,7 +86,7 @@
} }
Payment PaymentAlreadyExist(Domain.Buyer buyer, NewOrderCommand message) Payment PaymentAlreadyExist(Buyer buyer, NewOrderCommand message)
{ {
return buyer.Payments return buyer.Payments
.SingleOrDefault(p => .SingleOrDefault(p =>

View File

@ -4,7 +4,7 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Autof
{ {
using Api.Application.Queries; using Api.Application.Queries;
using Autofac; using Autofac;
using Domain.Repositories; using Domain.RepositoryContracts;
using Ordering.Infrastructure.Repositories; using Ordering.Infrastructure.Repositories;
public class ApplicationModule public class ApplicationModule

View File

@ -6,6 +6,8 @@
using Ordering.Infrastructure; using Ordering.Infrastructure;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate;
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
public class OrderingContextSeed public class OrderingContextSeed
{ {

View File

@ -1,4 +1,4 @@
namespace Microsoft.eShopOnContainers.Services.Ordering.Domain namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate
{ {
using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork; using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork;
using System; using System;

View File

@ -1,6 +1,6 @@
 
namespace Microsoft.eShopOnContainers.Services.Ordering.Domain namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate
{ {
using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork; using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork;
using System; using System;

View File

@ -1,4 +1,4 @@
namespace Microsoft.eShopOnContainers.Services.Ordering.Domain namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate
{ {
using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork; using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork;
using System; using System;

View File

@ -1,4 +1,4 @@
namespace Microsoft.eShopOnContainers.Services.Ordering.Domain namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate
{ {
using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork; using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork;
using System; using System;

View File

@ -1,6 +1,7 @@
namespace Microsoft.eShopOnContainers.Services.Ordering.Domain namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate
{ {
using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork; using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork;
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;

View File

@ -1,4 +1,4 @@
namespace Microsoft.eShopOnContainers.Services.Ordering.Domain namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate
{ {
using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork; using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork;

View File

@ -1,4 +1,4 @@
namespace Microsoft.eShopOnContainers.Services.Ordering.Domain namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate
{ {
using SeedWork; using SeedWork;
using System; using System;

View File

@ -1,7 +1,8 @@
using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork; using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork;
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.Repositories namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.RepositoryContracts
{ {
public interface IBuyerRepository public interface IBuyerRepository
:IRepository :IRepository

View File

@ -1,6 +1,7 @@
namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.Repositories namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.RepositoryContracts
{ {
using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork; using Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork;
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
public interface IOrderRepository public interface IOrderRepository
:IRepository :IRepository

View File

@ -7,6 +7,8 @@
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders; using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Microsoft.eShopOnContainers.Services.Ordering.Domain; using Microsoft.eShopOnContainers.Services.Ordering.Domain;
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate;
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
public class OrderingContext public class OrderingContext
: DbContext,IUnitOfWork : DbContext,IUnitOfWork

View File

@ -3,7 +3,8 @@
using Domain.SeedWork; using Domain.SeedWork;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.eShopOnContainers.Services.Ordering.Domain; using Microsoft.eShopOnContainers.Services.Ordering.Domain;
using Microsoft.eShopOnContainers.Services.Ordering.Domain.Repositories; using Microsoft.eShopOnContainers.Services.Ordering.Domain.RepositoryContracts;
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate;
using System; using System;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;

View File

@ -2,7 +2,8 @@
{ {
using Domain; using Domain;
using Domain.SeedWork; using Domain.SeedWork;
using Microsoft.eShopOnContainers.Services.Ordering.Domain.Repositories; using Microsoft.eShopOnContainers.Services.Ordering.Domain.RepositoryContracts;
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
using System; using System;
public class OrderRepository public class OrderRepository