public Task <ExportResult> Handle(ExportTagsDataCommand request, CancellationToken cancellationToken) { var tagExp = new CSVExporter <TagEntity>(_tagRepository, "moonglade-tags", ExportManager.DataDir); return(tagExp.ExportData(p => new { p.Id, p.NormalizedName, p.DisplayName }, cancellationToken)); }
public Task <ExportResult> Handle(ExportCategoryDataCommand request, CancellationToken cancellationToken) { var catExp = new CSVExporter <CategoryEntity>(_catRepository, "moonglade-categories", ExportManager.DataDir); return(catExp.ExportData(p => new { p.Id, p.DisplayName, p.RouteName, p.Note }, cancellationToken)); }
public async Task <ExportResult> ExportData(ExportDataType dataType, CancellationToken cancellationToken) { switch (dataType) { case ExportDataType.Tags: var tagExp = new CSVExporter <TagEntity>(_tagRepository, "moonglade-tags", _dataDir); var tagExportData = await tagExp.ExportData(p => new { p.Id, p.NormalizedName, p.DisplayName }, cancellationToken); return(tagExportData); case ExportDataType.Categories: var catExp = new CSVExporter <CategoryEntity>(_catRepository, "moonglade-categories", _dataDir); var catExportData = await catExp.ExportData(p => new { p.Id, p.DisplayName, p.RouteName, p.Note }, cancellationToken); return(catExportData); case ExportDataType.FriendLinks: var fdExp = new CSVExporter <FriendLinkEntity>(_friendlinkRepository, "moonglade-friendlinks", _dataDir); var fdExportData = await fdExp.ExportData(p => p, cancellationToken); return(fdExportData); case ExportDataType.Pages: var pgExp = new ZippedJsonExporter <PageEntity>(_pageRepository, "moonglade-pages", _dataDir); var pgExportData = await pgExp.ExportData(p => new { p.Id, p.Title, p.Slug, p.MetaDescription, p.HtmlContent, p.CssContent, p.HideSidebar, p.IsPublished, p.CreateTimeUtc, p.UpdateTimeUtc }, cancellationToken); return(pgExportData); case ExportDataType.Posts: var poExp = new ZippedJsonExporter <PostEntity>(_postRepository, "moonglade-posts", _dataDir); var poExportData = await poExp.ExportData(p => new { p.Title, p.Slug, p.ContentAbstract, p.PostContent, p.CreateTimeUtc, p.CommentEnabled, p.PostExtension.Hits, p.PostExtension.Likes, p.PubDateUtc, p.ContentLanguageCode, p.ExposedToSiteMap, p.IsDeleted, p.IsFeedIncluded, p.IsPublished, Categories = p.PostCategory.Select(pc => pc.Category.DisplayName), Tags = p.Tags.Select(pt => pt.DisplayName) }, cancellationToken); return(poExportData); default: throw new ArgumentOutOfRangeException(nameof(dataType), dataType, null); } }
public Task <ExportResult> Handle(ExportLinkDataCommand request, CancellationToken cancellationToken) { var fdExp = new CSVExporter <FriendLinkEntity>(_friendlinkRepository, "moonglade-friendlinks", ExportManager.DataDir); return(fdExp.ExportData(p => p, cancellationToken)); }