From 6708166e68fc2e90c25411549d4bcffbee6fa9b5 Mon Sep 17 00:00:00 2001 From: EngincanV Date: Wed, 26 Aug 2020 09:40:35 +0300 Subject: [PATCH] CmsKit: CmsRatings updated --- ...200826063729_CmsRatings_Added.Designer.cs} | 17 ++++++++++++++- ....cs => 20200826063729_CmsRatings_Added.cs} | 12 +++++++++-- .../UnifiedDbContextModelSnapshot.cs | 15 +++++++++++++ .../Volo/CmsKit/Ratings/RatingConsts.cs | 11 ++++++++++ .../Volo/CmsKit/Ratings/Rating.cs | 21 +++++++++++++++---- .../CmsKitDbContextModelCreatingExtensions.cs | 4 ++++ 6 files changed, 73 insertions(+), 7 deletions(-) rename modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/{20200825101525_CmsRatings_Added.Designer.cs => 20200826063729_CmsRatings_Added.Designer.cs} (96%) rename modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/{20200825101525_CmsRatings_Added.cs => 20200826063729_CmsRatings_Added.cs} (65%) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Ratings/RatingConsts.cs diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20200825101525_CmsRatings_Added.Designer.cs b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20200826063729_CmsRatings_Added.Designer.cs similarity index 96% rename from modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20200825101525_CmsRatings_Added.Designer.cs rename to modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20200826063729_CmsRatings_Added.Designer.cs index 3de5568a5a..00e1003584 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20200825101525_CmsRatings_Added.Designer.cs +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20200826063729_CmsRatings_Added.Designer.cs @@ -11,7 +11,7 @@ using Volo.CmsKit.EntityFrameworkCore; namespace Volo.CmsKit.Migrations { [DbContext(typeof(UnifiedDbContext))] - [Migration("20200825101525_CmsRatings_Added")] + [Migration("20200826063729_CmsRatings_Added")] partial class CmsRatings_Added { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -973,11 +973,26 @@ namespace Volo.CmsKit.Migrations .HasColumnName("CreatorId") .HasColumnType("uniqueidentifier"); + b.Property("EntityId") + .IsRequired() + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("EntityType") + .IsRequired() + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + b.Property("StarCount") .HasColumnType("smallint"); + b.Property("TenantId") + .HasColumnType("uniqueidentifier"); + b.HasKey("Id"); + b.HasIndex("TenantId", "EntityType", "EntityId"); + b.ToTable("CmsRatings"); }); diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20200825101525_CmsRatings_Added.cs b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20200826063729_CmsRatings_Added.cs similarity index 65% rename from modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20200825101525_CmsRatings_Added.cs rename to modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20200826063729_CmsRatings_Added.cs index 02ee0c1a53..d753d65865 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20200825101525_CmsRatings_Added.cs +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20200826063729_CmsRatings_Added.cs @@ -12,14 +12,22 @@ namespace Volo.CmsKit.Migrations columns: table => new { Id = table.Column(nullable: false), + TenantId = table.Column(nullable: true), + EntityType = table.Column(maxLength: 64, nullable: false), + EntityId = table.Column(maxLength: 64, nullable: false), StarCount = table.Column(nullable: false), - CreationTime = table.Column(nullable: false), - CreatorId = table.Column(nullable: false) + CreatorId = table.Column(nullable: false), + CreationTime = table.Column(nullable: false) }, constraints: table => { table.PrimaryKey("PK_CmsRatings", x => x.Id); }); + + migrationBuilder.CreateIndex( + name: "IX_CmsRatings_TenantId_EntityType_EntityId", + table: "CmsRatings", + columns: new[] { "TenantId", "EntityType", "EntityId" }); } protected override void Down(MigrationBuilder migrationBuilder) diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs index ebf821eeae..43d834479a 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs @@ -971,11 +971,26 @@ namespace Volo.CmsKit.Migrations .HasColumnName("CreatorId") .HasColumnType("uniqueidentifier"); + b.Property("EntityId") + .IsRequired() + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("EntityType") + .IsRequired() + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + b.Property("StarCount") .HasColumnType("smallint"); + b.Property("TenantId") + .HasColumnType("uniqueidentifier"); + b.HasKey("Id"); + b.HasIndex("TenantId", "EntityType", "EntityId"); + b.ToTable("CmsRatings"); }); diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Ratings/RatingConsts.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Ratings/RatingConsts.cs new file mode 100644 index 0000000000..892b3cef45 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Ratings/RatingConsts.cs @@ -0,0 +1,11 @@ +using Volo.CmsKit.Entities; + +namespace Volo.CmsKit.Ratings +{ + public static class RatingConsts + { + public static int MaxEntityTypeLength { get; set; } = CmsEntityConsts.MaxEntityTypeLength; + + public static int MaxEntityIdLength { get; set; } = CmsEntityConsts.MaxEntityIdLength; + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Ratings/Rating.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Ratings/Rating.cs index 9384183e7b..a35fd022bf 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Ratings/Rating.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Ratings/Rating.cs @@ -1,5 +1,6 @@ using System; using JetBrains.Annotations; +using Volo.Abp; using Volo.Abp.Auditing; using Volo.Abp.Domain.Entities; @@ -7,12 +8,18 @@ namespace Volo.CmsKit.Ratings { public class Rating : BasicAggregateRoot, IHasCreationTime, IMustHaveCreator { + public virtual Guid? TenantId { get; protected set; } + + public virtual string EntityType { get; protected set; } + + public virtual string EntityId { get; protected set; } + public virtual short StarCount { get; protected set; } + + public virtual Guid CreatorId { get; set; } public virtual DateTime CreationTime { get; set; } - public virtual Guid CreatorId { get; set; } - protected Rating() { @@ -20,13 +27,19 @@ namespace Volo.CmsKit.Ratings public Rating( Guid id, - [NotNull] short starCount, - Guid creatorId + [NotNull] string entityType, + [NotNull] string entityId, + short starCount, + Guid creatorId, + Guid? tenantId = null ) : base(id) { + EntityType = Check.NotNullOrWhiteSpace(entityType, nameof(entityType), RatingConsts.MaxEntityTypeLength); + EntityId = Check.NotNullOrWhiteSpace(entityId, nameof(entityId), RatingConsts.MaxEntityIdLength); StarCount = starCount; CreatorId = creatorId; + TenantId = tenantId; } } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs index e013723d18..d73f60967a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs @@ -82,6 +82,10 @@ namespace Volo.CmsKit.EntityFrameworkCore r.ConfigureByConvention(); r.Property(x => x.StarCount).IsRequired(); + r.Property(x => x.EntityType).IsRequired().HasMaxLength(RatingConsts.MaxEntityTypeLength); + r.Property(x => x.EntityId).IsRequired().HasMaxLength(RatingConsts.MaxEntityIdLength); + + r.HasIndex(x => new {x.TenantId, x.EntityType, x.EntityId}); }); } }