Browse Source

refactor content entity and added content renderer

pull/6784/head
Ahmet 6 years ago
parent
commit
0c54b19085
  1. 14
      modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/IContentRenderer.cs
  2. 15
      modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/IContentRendererProvider.cs
  3. 19
      modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Contents/PlainTextRenderer.cs
  4. 9
      modules/cms-kit/src/Volo.CmsKit.Common.Web/Contents/IContentRenderer.cs
  5. 13
      modules/cms-kit/src/Volo.CmsKit.Common.Web/Contents/PlainTextContentRenderer.cs
  6. 15
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Contents/ContentConsts.cs
  7. 7
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Contents/IContent.cs
  8. 8
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Contents/IEntityContent.cs
  9. 24
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Contents/Content.cs
  10. 10
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Contents/IContentRepository.cs
  11. 14
      modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Contents/EfCoreContentRepository.cs
  12. 14
      modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Contents/MongoContentRepository.cs

14
modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/IContentRenderer.cs

@ -1,14 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.CmsKit.Domain.Shared.Volo.CmsKit.Contents;
namespace Volo.CmsKit.Common.Application.Contracts.Volo.CmsKit.Contents
{
public interface IContentRenderer
{
Task<string> RenderAsync(string content);
}
}

15
modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/IContentRendererProvider.cs

@ -1,15 +0,0 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.CmsKit.Domain.Shared.Volo.CmsKit.Contents;
namespace Volo.CmsKit.Common.Application.Contracts.Volo.CmsKit.Contents
{
public interface IContentRendererProvider
{
Task<IContentRenderer> GetContentRendererAsync(IEntityContent content);
}
}

19
modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Contents/PlainTextRenderer.cs

@ -1,19 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
using Volo.CmsKit.Common.Application.Contracts.Volo.CmsKit.Contents;
using Volo.CmsKit.Domain.Shared.Volo.CmsKit.Contents;
namespace Volo.CmsKit.Common.Application.Volo.CmsKit.Contents
{
public class PlainTextRenderer : IContentRenderer, ITransientDependency
{
public Task<string> RenderAsync(IContent content)
{
return Task.FromResult(content?.Value);
}
}
}

9
modules/cms-kit/src/Volo.CmsKit.Common.Web/Contents/IContentRenderer.cs

@ -0,0 +1,9 @@
using System.Threading.Tasks;
namespace Volo.CmsKit.Web.Contents
{
public interface IContentRenderer
{
Task<string> RenderAsync(string value);
}
}

13
modules/cms-kit/src/Volo.CmsKit.Common.Web/Contents/PlainTextContentRenderer.cs

@ -0,0 +1,13 @@
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
namespace Volo.CmsKit.Web.Contents
{
public class PlainTextContentRenderer : IContentRenderer, ITransientDependency
{
public Task<string> RenderAsync(string value)
{
return Task.FromResult(value);
}
}
}

15
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Contents/ContentConsts.cs

@ -0,0 +1,15 @@
using System;
using Volo.CmsKit.Entities;
namespace Volo.CmsKit.Contents
{
public static class ContentConsts
{
public static int MaxEntityTypeLength { get; set; } = CmsEntityConsts.MaxEntityTypeLength;
public static int MaxEntityIdLength { get; set; } = CmsEntityConsts.MaxEntityIdLength;
// TODO: consider
public static int MaxValueLength = int.MaxValue;
}
}

7
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Contents/IContent.cs

@ -1,7 +0,0 @@
namespace Volo.CmsKit.Domain.Shared.Volo.CmsKit.Contents
{
public interface IContent
{
string Value { get; set; }
}
}

8
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Contents/IEntityContent.cs

@ -1,8 +0,0 @@
namespace Volo.CmsKit.Domain.Shared.Volo.CmsKit.Contents
{
public interface IEntityContent : IContent
{
string EntityType { get; set; }
string EntityId { get; set; }
}
}

24
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Contents/Content.cs

@ -1,17 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using JetBrains.Annotations;
using Volo.Abp;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.CmsKit.Domain.Shared.Volo.CmsKit.Contents;
namespace Volo.CmsKit.Domain.Volo.CmsKit.Contents
namespace Volo.CmsKit.Contents
{
public class Content : FullAuditedAggregateRoot<Guid>
{
public string Value { get; set; }
public string EntityType { get; set; }
public string EntityId { get; set; }
public string Value { get; set; }
protected Content()
{
}
public Content(Guid id, [NotNull] string entityType, [NotNull] string entityId, [NotNull] string value) : base(id)
{
EntityType = Check.NotNullOrWhiteSpace(entityType, nameof(entityType), ContentConsts.MaxEntityTypeLength);
EntityId = Check.NotNullOrWhiteSpace(entityId, nameof(entityId), ContentConsts.MaxEntityIdLength);
Value = Check.NotNullOrWhiteSpace(value, nameof(value), ContentConsts.MaxValueLength);
}
}
}

10
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Contents/IContentRepository.cs

@ -0,0 +1,10 @@
using System;
using Volo.Abp.Domain.Repositories;
namespace Volo.CmsKit.Contents
{
public interface IContentRepository : IBasicRepository<Content, Guid>
{
}
}

14
modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Contents/EfCoreContentRepository.cs

@ -0,0 +1,14 @@
using System;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
using Volo.CmsKit.EntityFrameworkCore;
namespace Volo.CmsKit.Contents
{
public class EfCoreContentRepository : EfCoreRepository<ICmsKitDbContext, Content, Guid>, IContentRepository
{
public EfCoreContentRepository(IDbContextProvider<ICmsKitDbContext> dbContextProvider) : base(dbContextProvider)
{
}
}
}

14
modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Contents/MongoContentRepository.cs

@ -0,0 +1,14 @@
using System;
using Volo.Abp.Domain.Repositories.MongoDB;
using Volo.Abp.MongoDB;
using Volo.CmsKit.Contents;
namespace Volo.CmsKit.MongoDB.Contents
{
public class MongoContentRepository : MongoDbRepository<ICmsKitMongoDbContext, Content, Guid>, IContentRepository
{
public MongoContentRepository(IMongoDbContextProvider<ICmsKitMongoDbContext> dbContextProvider) : base(dbContextProvider)
{
}
}
}
Loading…
Cancel
Save