@ -1,8 +1,11 @@
using Microsoft.Extensions.Options ;
using System ;
using System.Collections.Generic ;
using System.IO ;
using System.Linq ;
using System.Text ;
using System.Threading.Tasks ;
using Volo.Abp.BlobStoring ;
using Volo.Abp.Data ;
using Volo.Abp.DependencyInjection ;
using Volo.Abp.Domain.Repositories ;
@ -12,6 +15,7 @@ using Volo.Abp.Users;
using Volo.CmsKit.Blogs ;
using Volo.CmsKit.Comments ;
using Volo.CmsKit.Contents ;
using Volo.CmsKit.MediaDescriptors ;
using Volo.CmsKit.Pages ;
using Volo.CmsKit.Ratings ;
using Volo.CmsKit.Reactions ;
@ -38,6 +42,8 @@ namespace Volo.CmsKit
private readonly IBlogPostRepository _blogPostRepository ;
private readonly IOptions < CmsKitOptions > _options ;
private readonly IOptions < CmsKitTagOptions > _tagOptions ;
private readonly IMediaDescriptorRepository _mediaDescriptorRepository ;
private readonly IBlobContainer < MediaContainer > _mediaBlobContainer ;
public CmsKitDataSeedContributor (
IGuidGenerator guidGenerator ,
@ -55,7 +61,9 @@ namespace Volo.CmsKit
IBlogPostRepository blogPostRepository ,
IEntityTagManager entityTagManager ,
IOptions < CmsKitOptions > options ,
IOptions < CmsKitTagOptions > tagOptions )
IOptions < CmsKitTagOptions > tagOptions ,
IMediaDescriptorRepository mediaDescriptorRepository ,
IBlobContainer < MediaContainer > mediaBlobContainer )
{
_guidGenerator = guidGenerator ;
_cmsUserRepository = cmsUserRepository ;
@ -73,6 +81,8 @@ namespace Volo.CmsKit
_blogPostRepository = blogPostRepository ;
_options = options ;
_tagOptions = tagOptions ;
_mediaDescriptorRepository = mediaDescriptorRepository ;
_mediaBlobContainer = mediaBlobContainer ;
}
public async Task SeedAsync ( DataSeedContext context )
@ -96,6 +106,8 @@ namespace Volo.CmsKit
await SeedPagesAsync ( ) ;
await SeedBlogsAsync ( ) ;
await SeedMediaAsync ( ) ;
}
}
@ -314,5 +326,17 @@ namespace Volo.CmsKit
await _blogPostRepository . InsertAsync ( new BlogPost ( _cmsKitTestData . BlogPost_2_Id , blog . Id , _cmsKitTestData . BlogPost_2_Title , _cmsKitTestData . BlogPost_2_Slug , "Short desc 2" ) ) ;
}
private async Task SeedMediaAsync ( )
{
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 ) ;
await _mediaDescriptorRepository . InsertAsync ( media ) ;
await _mediaBlobContainer . SaveAsync ( media . Id . ToString ( ) , stream ) ;
}
}
}
}