From fc9ade905d395578aa9073b7697dabb3c34bd024 Mon Sep 17 00:00:00 2001 From: Ahmet Date: Mon, 1 Mar 2021 18:05:37 +0300 Subject: [PATCH] Added EntityType to mediadescriptopr entity --- .../Admin/MediaDescriptors/CreateMediaInputStream.cs | 4 ++++ .../MediaDescriptors/MediaDescriptorAdminAppService.cs | 2 +- .../MediaDescriptors/MediaDescriptorAdminController.cs | 4 +++- .../Volo/CmsKit/MediaDescriptors/MediaDescriptorConsts.cs | 6 +++++- .../Volo/CmsKit/MediaDescriptors/MediaDescriptor.cs | 8 +++++--- .../{MediaDescriptorCheck.cs => MediaDescriptorChecks.cs} | 4 ++-- .../CmsKitDbContextModelCreatingExtensions.cs | 1 + .../Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs | 2 +- .../cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs | 3 +++ 9 files changed, 25 insertions(+), 9 deletions(-) rename modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/MediaDescriptors/{MediaDescriptorCheck.cs => MediaDescriptorChecks.cs} (77%) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/MediaDescriptors/CreateMediaInputStream.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/MediaDescriptors/CreateMediaInputStream.cs index b61d50e124..0f66ab5fef 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/MediaDescriptors/CreateMediaInputStream.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/MediaDescriptors/CreateMediaInputStream.cs @@ -8,6 +8,10 @@ namespace Volo.CmsKit.Admin.MediaDescriptors { public class CreateMediaInputStream : RemoteStreamContent { + [Required] + [DynamicStringLength(typeof(MediaDescriptorConsts), nameof(MediaDescriptorConsts.MaxEntityTypeLength))] + public string EntityType { get; set; } + [Required] [DynamicStringLength(typeof(MediaDescriptorConsts), nameof(MediaDescriptorConsts.MaxNameLength))] public string Name { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminAppService.cs index 17af6a9993..ee2b5af152 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminAppService.cs @@ -27,7 +27,7 @@ namespace Volo.CmsKit.Admin.MediaDescriptors { var newId = GuidGenerator.Create(); var stream = inputStream.GetStream(); - var newEntity = new MediaDescriptor(newId, inputStream.Name, inputStream.ContentType, stream.Length, CurrentTenant.Id); + var newEntity = new MediaDescriptor(newId, inputStream.EntityType, inputStream.Name, inputStream.ContentType, stream.Length, CurrentTenant.Id); await MediaContainer.SaveAsync(newId.ToString(), stream); await MediaDescriptorRepository.InsertAsync(newEntity); diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminController.cs index 4267f635b0..124cfcba1c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminController.cs @@ -42,8 +42,9 @@ namespace Volo.CmsKit.Admin.MediaDescriptors } [HttpPost] + [Route("{entityType}")] [Authorize(CmsKitAdminPermissions.MediaDescriptors.Create)] - public virtual async Task UploadAsync(IFormFile file) + public virtual async Task UploadAsync(string entityType, IFormFile file) { if (file == null) { @@ -52,6 +53,7 @@ namespace Volo.CmsKit.Admin.MediaDescriptors var inputStream = new CreateMediaInputStream(file.OpenReadStream()) { + EntityType = entityType, ContentType = file.ContentType, Name = file.FileName }; diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/MediaDescriptors/MediaDescriptorConsts.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/MediaDescriptors/MediaDescriptorConsts.cs index 5f4741828e..31737fa9fe 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/MediaDescriptors/MediaDescriptorConsts.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/MediaDescriptors/MediaDescriptorConsts.cs @@ -1,7 +1,11 @@ -namespace Volo.CmsKit.MediaDescriptors +using Volo.CmsKit.Entities; + +namespace Volo.CmsKit.MediaDescriptors { public class MediaDescriptorConsts { + public static int MaxEntityTypeLength { get; set; } = CmsEntityConsts.MaxEntityTypeLength; + public static int MaxNameLength { get; set; } = 255; public static int MaxMimeTypeLength { get; set; } = 128; diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/MediaDescriptors/MediaDescriptor.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/MediaDescriptors/MediaDescriptor.cs index 3829a3afef..c97eb26b9a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/MediaDescriptors/MediaDescriptor.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/MediaDescriptors/MediaDescriptor.cs @@ -2,13 +2,14 @@ using Volo.Abp; using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.MultiTenancy; -using Volo.CmsKit.MediaDescriptors.Extensions; namespace Volo.CmsKit.MediaDescriptors { public class MediaDescriptor : FullAuditedAggregateRoot, IMultiTenant { public Guid? TenantId { get; protected set; } + + public string EntityType { get; set; } public string Name { get; protected set; } @@ -21,10 +22,11 @@ namespace Volo.CmsKit.MediaDescriptors } - public MediaDescriptor(Guid id, string name, string mimeType, long size, Guid? tenantId = null) : base(id) + public MediaDescriptor(Guid id, string entityType, string name, string mimeType, long size, Guid? tenantId = null) : base(id) { TenantId = tenantId; + EntityType = Check.NotNullOrEmpty(entityType, nameof(entityType), MediaDescriptorConsts.MaxEntityTypeLength); MimeType = Check.NotNullOrWhiteSpace(mimeType, nameof(name), MediaDescriptorConsts.MaxMimeTypeLength); Size = size; @@ -33,7 +35,7 @@ namespace Volo.CmsKit.MediaDescriptors public void SetName(string name) { - if (!MediaDescriptorCheck.IsValidMediaFileName(name)) + if (!MediaDescriptorChecks.IsValidMediaFileName(name)) { throw new InvalidMediaDescriptorNameException(name); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/MediaDescriptors/MediaDescriptorCheck.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/MediaDescriptors/MediaDescriptorChecks.cs similarity index 77% rename from modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/MediaDescriptors/MediaDescriptorCheck.cs rename to modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/MediaDescriptors/MediaDescriptorChecks.cs index 5ef0c4497a..1881de83e3 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/MediaDescriptors/MediaDescriptorCheck.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/MediaDescriptors/MediaDescriptorChecks.cs @@ -1,9 +1,9 @@ using System.IO; using System.Linq; -namespace Volo.CmsKit.MediaDescriptors.Extensions +namespace Volo.CmsKit.MediaDescriptors { - public static class MediaDescriptorCheck + public static class MediaDescriptorChecks { public static bool IsValidMediaFileName(string name) { 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 2f7308be95..476e2a3111 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 @@ -242,6 +242,7 @@ namespace Volo.CmsKit.EntityFrameworkCore b.ConfigureByConvention(); + b.Property(x => x.EntityType).IsRequired().HasMaxLength(MediaDescriptorConsts.MaxEntityTypeLength); b.Property(x => x.Name).IsRequired().HasMaxLength(MediaDescriptorConsts.MaxNameLength); b.Property(x => x.MimeType).IsRequired().HasMaxLength(MediaDescriptorConsts.MaxMimeTypeLength); b.Property(x => x.Size).HasMaxLength(MediaDescriptorConsts.MaxSizeLength); diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs index be28728596..9bdd1cfb96 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs @@ -402,7 +402,7 @@ namespace Volo.CmsKit { using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(_cmsKitTestData.Media_1_Content))) { - var media = new MediaDescriptor(_cmsKitTestData.Media_1_Id, _cmsKitTestData.Media_1_Name, _cmsKitTestData.Media_1_ContentType, stream.Length); + var media = new MediaDescriptor(_cmsKitTestData.Media_1_Id, _cmsKitTestData.Media_1_EntityType, _cmsKitTestData.Media_1_Name, _cmsKitTestData.Media_1_ContentType, stream.Length); await _mediaDescriptorRepository.InsertAsync(media); diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs index 3762b8b073..32e4cd9f84 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs @@ -1,6 +1,7 @@ using System; using JetBrains.Annotations; using Volo.Abp.DependencyInjection; +using Volo.CmsKit.Blogs; namespace Volo.CmsKit { @@ -101,6 +102,8 @@ namespace Volo.CmsKit public Guid Media_1_Id { get; } = Guid.NewGuid(); + public string Media_1_EntityType = nameof(Blog); + public string Media_1_Content = "Hi, this is text file"; public string Media_1_Name = "hello.txt";