From 7abd85796e7dda6f9e95ccb537949e8d6f2a4094 Mon Sep 17 00:00:00 2001 From: veysel mutlu Date: Fri, 10 Sep 2021 22:48:47 +0300 Subject: [PATCH] The repetitive fields in the configuration classes in the Ordering.Infrastructure project were gathered here by creating a base class. --- .../EntityConfigurations/BaseConfiguration.cs | 15 +++++++++++++++ .../BuyerEntityTypeConfiguration.cs | 11 ++++------- .../OrderEntityTypeConfiguration.cs | 11 +++++------ .../OrderItemEntityTypeConfiguration.cs | 11 ++++------- .../PaymentMethodEntityTypeConfiguration.cs | 11 ++++------- 5 files changed, 32 insertions(+), 27 deletions(-) create mode 100644 src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/BaseConfiguration.cs diff --git a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/BaseConfiguration.cs b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/BaseConfiguration.cs new file mode 100644 index 000000000..ef7cb2452 --- /dev/null +++ b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/BaseConfiguration.cs @@ -0,0 +1,15 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; +using Microsoft.eShopOnContainers.Services.Ordering.Domain.Seedwork; + +namespace Ordering.Infrastructure.EntityConfigurations +{ + public class BaseConfiguration : IEntityTypeConfiguration where TEntity : Entity + { + public virtual void Configure(EntityTypeBuilder builder) + { + builder.Ignore(b => b.DomainEvents); + builder.HasKey(e => e.Id); + } + } +} diff --git a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/BuyerEntityTypeConfiguration.cs b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/BuyerEntityTypeConfiguration.cs index f5bdea756..95f85bc6b 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/BuyerEntityTypeConfiguration.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/BuyerEntityTypeConfiguration.cs @@ -5,17 +5,12 @@ using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure; namespace Ordering.Infrastructure.EntityConfigurations { - class BuyerEntityTypeConfiguration - : IEntityTypeConfiguration + class BuyerEntityTypeConfiguration : BaseConfiguration { - public void Configure(EntityTypeBuilder buyerConfiguration) + public override void Configure(EntityTypeBuilder buyerConfiguration) { buyerConfiguration.ToTable("buyers", OrderingContext.DEFAULT_SCHEMA); - buyerConfiguration.HasKey(b => b.Id); - - buyerConfiguration.Ignore(b => b.DomainEvents); - buyerConfiguration.Property(b => b.Id) .UseHiLo("buyerseq", OrderingContext.DEFAULT_SCHEMA); @@ -36,6 +31,8 @@ namespace Ordering.Infrastructure.EntityConfigurations var navigation = buyerConfiguration.Metadata.FindNavigation(nameof(Buyer.PaymentMethods)); navigation.SetPropertyAccessMode(PropertyAccessMode.Field); + + base.Configure(buyerConfiguration); } } } diff --git a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderEntityTypeConfiguration.cs b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderEntityTypeConfiguration.cs index 4e32763eb..dc0bedf45 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderEntityTypeConfiguration.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderEntityTypeConfiguration.cs @@ -7,16 +7,12 @@ using System; namespace Ordering.Infrastructure.EntityConfigurations { - class OrderEntityTypeConfiguration : IEntityTypeConfiguration + class OrderEntityTypeConfiguration : BaseConfiguration { - public void Configure(EntityTypeBuilder orderConfiguration) + public override void Configure(EntityTypeBuilder orderConfiguration) { orderConfiguration.ToTable("orders", OrderingContext.DEFAULT_SCHEMA); - orderConfiguration.HasKey(o => o.Id); - - orderConfiguration.Ignore(b => b.DomainEvents); - orderConfiguration.Property(o => o.Id) .UseHiLo("orderseq", OrderingContext.DEFAULT_SCHEMA); @@ -81,6 +77,9 @@ namespace Ordering.Infrastructure.EntityConfigurations .WithMany() // .HasForeignKey("OrderStatusId"); .HasForeignKey("_orderStatusId"); + + + base.Configure(orderConfiguration); } } } diff --git a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderItemEntityTypeConfiguration.cs b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderItemEntityTypeConfiguration.cs index 9fd5734ed..1adb30f6a 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderItemEntityTypeConfiguration.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderItemEntityTypeConfiguration.cs @@ -5,17 +5,12 @@ using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure; namespace Ordering.Infrastructure.EntityConfigurations { - class OrderItemEntityTypeConfiguration - : IEntityTypeConfiguration + class OrderItemEntityTypeConfiguration : BaseConfiguration { - public void Configure(EntityTypeBuilder orderItemConfiguration) + public override void Configure(EntityTypeBuilder orderItemConfiguration) { orderItemConfiguration.ToTable("orderItems", OrderingContext.DEFAULT_SCHEMA); - orderItemConfiguration.HasKey(o => o.Id); - - orderItemConfiguration.Ignore(b => b.DomainEvents); - orderItemConfiguration.Property(o => o.Id) .UseHiLo("orderitemseq"); @@ -54,6 +49,8 @@ namespace Ordering.Infrastructure.EntityConfigurations .UsePropertyAccessMode(PropertyAccessMode.Field) .HasColumnName("PictureUrl") .IsRequired(false); + + base.Configure(orderItemConfiguration); } } } diff --git a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/PaymentMethodEntityTypeConfiguration.cs b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/PaymentMethodEntityTypeConfiguration.cs index 52fdf5f24..085d2c9db 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/PaymentMethodEntityTypeConfiguration.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/PaymentMethodEntityTypeConfiguration.cs @@ -6,17 +6,12 @@ using System; namespace Ordering.Infrastructure.EntityConfigurations { - class PaymentMethodEntityTypeConfiguration - : IEntityTypeConfiguration + class PaymentMethodEntityTypeConfiguration : BaseConfiguration { - public void Configure(EntityTypeBuilder paymentConfiguration) + public override void Configure(EntityTypeBuilder paymentConfiguration) { paymentConfiguration.ToTable("paymentmethods", OrderingContext.DEFAULT_SCHEMA); - paymentConfiguration.HasKey(b => b.Id); - - paymentConfiguration.Ignore(b => b.DomainEvents); - paymentConfiguration.Property(b => b.Id) .UseHiLo("paymentseq", OrderingContext.DEFAULT_SCHEMA); @@ -60,6 +55,8 @@ namespace Ordering.Infrastructure.EntityConfigurations paymentConfiguration.HasOne(p => p.CardType) .WithMany() .HasForeignKey("_cardTypeId"); + + base.Configure(paymentConfiguration); } } }