Added EntityType to mediadescriptopr entity

pull/7908/head
Ahmet 5 years ago
parent 554650c907
commit fc9ade905d

@ -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; }

@ -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);

@ -42,8 +42,9 @@ namespace Volo.CmsKit.Admin.MediaDescriptors
}
[HttpPost]
[Route("{entityType}")]
[Authorize(CmsKitAdminPermissions.MediaDescriptors.Create)]
public virtual async Task<IActionResult> UploadAsync(IFormFile file)
public virtual async Task<IActionResult> 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
};

@ -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;

@ -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<Guid>, 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);
}

@ -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)
{

@ -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);

@ -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);

@ -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";

Loading…
Cancel
Save