From 92561484ccd02e0db31bbaa824debf564092e4ed Mon Sep 17 00:00:00 2001 From: Salih Date: Thu, 13 Jul 2023 15:09:36 +0300 Subject: [PATCH 01/19] Add Popular Tags View Component --- .../Volo/CmsKit/Tags/ITagAppService.cs | 4 +-- .../Volo/CmsKit/Tags/PopularTagDto.cs | 10 ++++++ ...msKitCommonApplicationAutoMapperProfile.cs | 2 ++ .../Volo/CmsKit/Tags/TagAppService.cs | 12 ++++++- .../Volo/CmsKit/Tags/ITagRepository.cs | 7 +++- .../Volo/CmsKit/Tags/PopularTag.cs | 17 +++++++++ .../Volo/CmsKit/Tags/EfCoreTagRepository.cs | 17 +++++++++ .../CmsKit/MongoDB/Tags/MongoTagRepository.cs | 7 ++++ .../CmsKit/Public/Tags/TagPublicController.cs | 7 ++++ .../Components/PopularTags/Default.cshtml | 29 +++++++++++++++ .../PopularTags/PopularTagsViewComponent.cs | 35 +++++++++++++++++++ .../Tags/TagRepository_Test.cs | 10 ++++++ 12 files changed, 153 insertions(+), 4 deletions(-) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Tags/PopularTagDto.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/PopularTag.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml create mode 100644 modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/PopularTagsViewComponent.cs diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Tags/ITagAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Tags/ITagAppService.cs index b984d76dc2..5ef4b96b7e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Tags/ITagAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Tags/ITagAppService.cs @@ -1,11 +1,11 @@ using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Application.Services; -using Volo.CmsKit.Tags; namespace Volo.CmsKit.Tags; public interface ITagAppService : IApplicationService { Task> GetAllRelatedTagsAsync(string entityType, string entityId); -} + Task> GetPopularTagsAsync(string entityType, int maxCount); +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Tags/PopularTagDto.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Tags/PopularTagDto.cs new file mode 100644 index 0000000000..b074aece06 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Tags/PopularTagDto.cs @@ -0,0 +1,10 @@ +using System; + +namespace Volo.CmsKit.Tags; + +public class PopularTagDto +{ + public Guid Id { get; set; } + public string Name { get; set; } + public int Count { get; set; } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/CmsKitCommonApplicationAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/CmsKitCommonApplicationAutoMapperProfile.cs index 908be3b4d5..099b3e1b10 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/CmsKitCommonApplicationAutoMapperProfile.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/CmsKitCommonApplicationAutoMapperProfile.cs @@ -11,6 +11,8 @@ public class CmsKitCommonApplicationAutoMapperProfile : Profile { CreateMap().MapExtraProperties(); + CreateMap(); + CreateMap().MapExtraProperties(); CreateMap().MapExtraProperties(); diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Tags/TagAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Tags/TagAppService.cs index daa8bd5ec8..718b6a318a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Tags/TagAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Tags/TagAppService.cs @@ -24,4 +24,14 @@ public class TagAppService : CmsKitAppServiceBase, ITagAppService return ObjectMapper.Map, List>(entities); } -} + + public async Task> GetPopularTagsAsync(string entityType, int maxCount) + { + return ObjectMapper.Map, List>( + await TagRepository.GetPopularTagsAsync( + entityType, + maxCount + ) + ); + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagRepository.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagRepository.cs index e74b767078..d00457b53a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/ITagRepository.cs @@ -36,4 +36,9 @@ public interface ITagRepository : IBasicRepository [NotNull] string entityType, [NotNull] string entityId, CancellationToken cancellationToken = default); -} + + Task> GetPopularTagsAsync( + [NotNull] string entityType, + int maxCount, + CancellationToken cancellationToken = default); +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/PopularTag.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/PopularTag.cs new file mode 100644 index 0000000000..d82d7a0b04 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Tags/PopularTag.cs @@ -0,0 +1,17 @@ +using System; + +namespace Volo.CmsKit.Tags; + +public class PopularTag +{ + public Guid Id { get; set; } + public string Name { get; set; } + public int Count { get; set; } + + public PopularTag(Guid id, string name, int count) + { + Id = id; + Name = name; + Count = count; + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Tags/EfCoreTagRepository.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Tags/EfCoreTagRepository.cs index 9b750eaac5..a82fa1113e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Tags/EfCoreTagRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Tags/EfCoreTagRepository.cs @@ -80,6 +80,23 @@ public class EfCoreTagRepository : EfCoreRepository return await query.ToListAsync(cancellationToken: GetCancellationToken(cancellationToken)); } + public async Task> GetPopularTagsAsync( + [NotNull] string entityType, + int maxCount, + CancellationToken cancellationToken = default) + { + return await (from tag in await GetDbSetAsync() + join entityTag in (await GetDbContextAsync()).Set() on tag.Id equals entityTag.TagId + where tag.EntityType == entityType + select new { tag, entityTag } into tagEntityTag + group tagEntityTag by tagEntityTag.entityTag.TagId + into g + orderby g.Count() descending + select new PopularTag(g.Key, g.First().tag.Name, g.Count())) + .Take(maxCount) + .ToListAsync(cancellationToken: GetCancellationToken(cancellationToken)); + } + public async Task> GetListAsync(string filter, CancellationToken cancellationToken = default) { return await (await GetQueryableByFilterAsync(filter)).ToListAsync(GetCancellationToken(cancellationToken)); diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs index f8bedebf61..49bf7fad14 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs @@ -81,6 +81,13 @@ public class MongoTagRepository : MongoDbRepository> GetPopularTagsAsync(string entityType, int maxCount, CancellationToken cancellationToken = default) + { + //TODO: Implement this method + throw new NotImplementedException(); + } + public async Task> GetListAsync(string filter, CancellationToken cancellationToken = default) { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Tags/TagPublicController.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Tags/TagPublicController.cs index 1620f136da..0aced1bacf 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Tags/TagPublicController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Tags/TagPublicController.cs @@ -30,4 +30,11 @@ public class TagPublicController : CmsKitPublicControllerBase, ITagAppService { return TagAppService.GetAllRelatedTagsAsync(entityType, entityId); } + + [HttpGet] + [Route("popular/{entityType}/{maxCount:int}")] + public Task> GetPopularTagsAsync(string entityType, int maxCount) + { + return TagAppService.GetPopularTagsAsync(entityType, maxCount); + } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml new file mode 100644 index 0000000000..0946744aaa --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml @@ -0,0 +1,29 @@ +@inject IHtmlLocalizer L +@using Microsoft.AspNetCore.Mvc.Localization +@using Volo.CmsKit.Localization +@model Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.PopularTags.PopularTagsViewComponent.PopularTagsViewModel + +@if (Model.Tags != null && Model.Tags.Any()) +{ +

@L["PopularTags"]

+ +
+ @foreach (var tag in Model.Tags) + { + if (Model.UrlFactory == null) + { + + @tag.Name + + } + else + { + + + @tag.Name + + + } + } +
+} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/PopularTagsViewComponent.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/PopularTagsViewComponent.cs new file mode 100644 index 0000000000..465805642b --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/PopularTagsViewComponent.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.Uow; +using Volo.CmsKit.Tags; + +namespace Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.PopularTags; + +public class PopularTagsViewComponent : AbpViewComponent +{ + private readonly ITagAppService _tagAppService; + + public PopularTagsViewComponent(ITagAppService tagAppService) + { + _tagAppService = tagAppService; + } + + public async Task InvokeAsync(string entityType, int maxCount, Func urlFactory = null) + { + var model = new PopularTagsViewModel + { + Tags = await _tagAppService.GetPopularTagsAsync(entityType, maxCount), + UrlFactory = urlFactory + }; + return View("~/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml", model); + } + + public class PopularTagsViewModel + { + public List Tags { get; set; } + public Func UrlFactory { get; set; } + } +} \ No newline at end of file diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/Tags/TagRepository_Test.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/Tags/TagRepository_Test.cs index 1a061b546a..fabaab6520 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/Tags/TagRepository_Test.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/Tags/TagRepository_Test.cs @@ -129,4 +129,14 @@ public abstract class TagRepository_Test : CmsKitTestBase Date: Thu, 13 Jul 2023 15:21:24 +0300 Subject: [PATCH 02/19] Update EfCoreTagRepository.cs --- .../Volo/CmsKit/Tags/EfCoreTagRepository.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Tags/EfCoreTagRepository.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Tags/EfCoreTagRepository.cs index a82fa1113e..c2e5aacd7b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Tags/EfCoreTagRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Tags/EfCoreTagRepository.cs @@ -88,11 +88,10 @@ public class EfCoreTagRepository : EfCoreRepository return await (from tag in await GetDbSetAsync() join entityTag in (await GetDbContextAsync()).Set() on tag.Id equals entityTag.TagId where tag.EntityType == entityType - select new { tag, entityTag } into tagEntityTag - group tagEntityTag by tagEntityTag.entityTag.TagId + group tag by tag.Id into g orderby g.Count() descending - select new PopularTag(g.Key, g.First().tag.Name, g.Count())) + select new PopularTag(g.Key, g.First().Name, g.Count())) .Take(maxCount) .ToListAsync(cancellationToken: GetCancellationToken(cancellationToken)); } From b26ae087f207a88612083fe204b100fd68c59c5f Mon Sep 17 00:00:00 2001 From: Salih Date: Thu, 13 Jul 2023 15:21:43 +0300 Subject: [PATCH 03/19] Update en.json --- .../Volo/CmsKit/Localization/Resources/en.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json index 5f00dd68b8..4555ed36b1 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json @@ -218,6 +218,7 @@ "CaptchaCodeErrorMessage" : "The answer you entered for the CAPTCHA was not correct. Please try again", "CaptchaCodeMissingMessage": "The captcha code is missing!", "UnAllowedExternalUrlMessage": "You included an unallowed external URL. Please try again without the external URL.", - "URL": "URL" + "URL": "URL", + "PopularTags": "Popular Tags" } } \ No newline at end of file From af496d6a1ac250c9c7aca6ff357f0762e8efe1f3 Mon Sep 17 00:00:00 2001 From: Salih Date: Thu, 13 Jul 2023 15:25:52 +0300 Subject: [PATCH 04/19] Update tr.json --- .../Volo/CmsKit/Localization/Resources/tr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json index f654bd3010..ff1ab72ae2 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json @@ -214,6 +214,7 @@ "Feature:TagEnableDescription": "Cmskit etiket sistemi", "DeleteBlogPostMessage": "Blog silinecek. Emin misiniz?", "CaptchaCode": "Captcha kodu", - "CommentTextRequired": "Yorum zorunlu" + "CommentTextRequired": "Yorum zorunlu", + "PopularTags": "Popüler Etiketler" } } From 4c430b4648f5dc74294ae3e21448ada58790fd91 Mon Sep 17 00:00:00 2001 From: Salih Date: Thu, 13 Jul 2023 15:35:08 +0300 Subject: [PATCH 05/19] Update MongoTagRepository.cs --- .../CmsKit/MongoDB/Tags/MongoTagRepository.cs | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs index 49bf7fad14..de1dde3181 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs @@ -3,6 +3,7 @@ using MongoDB.Driver; using MongoDB.Driver.Linq; using System; using System.Collections.Generic; +using System.Linq; using System.Threading; using System.Threading.Tasks; using Volo.Abp; @@ -84,8 +85,25 @@ public class MongoTagRepository : MongoDbRepository> GetPopularTagsAsync(string entityType, int maxCount, CancellationToken cancellationToken = default) { - //TODO: Implement this method - throw new NotImplementedException(); + var tags = await (await GetMongoQueryableAsync(cancellationToken)) + .Where(x => x.EntityType == entityType) + .Select(x => new { x.Id, x.Name }) + .ToListAsync(cancellationToken: GetCancellationToken(cancellationToken)); + + var tagIds = tags.Select(x => x.Id); + + var entityTagCounts = await (await GetMongoQueryableAsync(cancellationToken)) + .Where(q => tagIds.Contains(q.TagId)) + .GroupBy(q => q.TagId) + .Select(q => new { TagId = q.Key, Count = q.Count() }) + .OrderByDescending(q => q.Count) + .Take(maxCount) + .ToListAsync(cancellationToken: GetCancellationToken(cancellationToken)); + + return (from entityTagId in entityTagCounts + let tag = tags.FirstOrDefault(x => x.Id == entityTagId.TagId) + where tag != null + select new PopularTag(tag.Id, tag.Name, entityTagId.Count)).ToList(); } From dfa91fef44bdfc8f85468a69bf1217f22853edfb Mon Sep 17 00:00:00 2001 From: Salih Date: Fri, 14 Jul 2023 10:23:24 +0300 Subject: [PATCH 06/19] regenerate client proxies --- .../BlogPostPublicClientProxy.Generated.cs | 10 +- .../Blogs}/BlogPostPublicClientProxy.cs | 2 +- .../CommentPublicClientProxy.Generated.cs | 8 +- .../Comments}/CommentPublicClientProxy.cs | 2 +- ...obalResourcePublicClientProxy.Generated.cs | 8 +- .../GlobalResourcePublicClientProxy.cs | 2 +- .../MenuItemPublicClientProxy.Generated.cs | 11 +- .../Menus}/MenuItemPublicClientProxy.cs | 2 +- .../PagesPublicClientProxy.Generated.cs | 10 +- .../Public/Pages}/PagesPublicClientProxy.cs | 2 +- .../RatingPublicClientProxy.Generated.cs | 9 +- .../Ratings}/RatingPublicClientProxy.cs | 2 +- .../ReactionPublicClientProxy.Generated.cs | 8 +- .../Reactions}/ReactionPublicClientProxy.cs | 2 +- .../Tags}/TagPublicClientProxy.Generated.cs | 18 +- .../Public/Tags}/TagPublicClientProxy.cs | 2 +- .../ClientProxies/cms-kit-generate-proxy.json | 581 +++++++++++++++++- 17 files changed, 633 insertions(+), 46 deletions(-) rename modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/{ => Volo/CmsKit/Public/Blogs}/BlogPostPublicClientProxy.Generated.cs (96%) rename modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/{ => Volo/CmsKit/Public/Blogs}/BlogPostPublicClientProxy.cs (77%) rename modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/{ => Volo/CmsKit/Public/Comments}/CommentPublicClientProxy.Generated.cs (95%) rename modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/{ => Volo/CmsKit/Public/Comments}/CommentPublicClientProxy.cs (76%) rename modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/{ => Volo/CmsKit/Public/GlobalResources}/GlobalResourcePublicClientProxy.Generated.cs (91%) rename modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/{ => Volo/CmsKit/Public/GlobalResources}/GlobalResourcePublicClientProxy.cs (75%) rename modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/{ => Volo/CmsKit/Public/Menus}/MenuItemPublicClientProxy.Generated.cs (94%) rename modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/{ => Volo/CmsKit/Public/Menus}/MenuItemPublicClientProxy.cs (77%) rename modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/{ => Volo/CmsKit/Public/Pages}/PagesPublicClientProxy.Generated.cs (92%) rename modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/{ => Volo/CmsKit/Public/Pages}/PagesPublicClientProxy.cs (76%) rename modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/{ => Volo/CmsKit/Public/Ratings}/RatingPublicClientProxy.Generated.cs (96%) rename modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/{ => Volo/CmsKit/Public/Ratings}/RatingPublicClientProxy.cs (76%) rename modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/{ => Volo/CmsKit/Public/Reactions}/ReactionPublicClientProxy.Generated.cs (94%) rename modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/{ => Volo/CmsKit/Public/Reactions}/ReactionPublicClientProxy.cs (75%) rename modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/{ => Volo/CmsKit/Public/Tags}/TagPublicClientProxy.Generated.cs (70%) rename modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/{ => Volo/CmsKit/Public/Tags}/TagPublicClientProxy.cs (76%) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/BlogPostPublicClientProxy.Generated.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Blogs/BlogPostPublicClientProxy.Generated.cs similarity index 96% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/BlogPostPublicClientProxy.Generated.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Blogs/BlogPostPublicClientProxy.Generated.cs index 9fc813e899..f269125676 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/BlogPostPublicClientProxy.Generated.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Blogs/BlogPostPublicClientProxy.Generated.cs @@ -1,17 +1,19 @@ // This file is automatically generated by ABP framework to use MVC Controllers from CSharp using System; +using System.Collections.Generic; using System.Threading.Tasks; +using Volo.Abp; using Volo.Abp.Application.Dtos; -using Volo.Abp.Http.Client; -using Volo.Abp.Http.Modeling; using Volo.Abp.DependencyInjection; +using Volo.Abp.Http.Client; using Volo.Abp.Http.Client.ClientProxying; -using Volo.CmsKit.Public.Blogs; +using Volo.Abp.Http.Modeling; using Volo.CmsKit.Contents; +using Volo.CmsKit.Public.Blogs; using Volo.CmsKit.Users; // ReSharper disable once CheckNamespace -namespace Volo.CmsKit.Public.Blogs.ClientProxies; +namespace Volo.CmsKit.Public.Blogs; [Dependency(ReplaceServices = true)] [ExposeServices(typeof(IBlogPostPublicAppService), typeof(BlogPostPublicClientProxy))] diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/BlogPostPublicClientProxy.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Blogs/BlogPostPublicClientProxy.cs similarity index 77% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/BlogPostPublicClientProxy.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Blogs/BlogPostPublicClientProxy.cs index ea09b5fdd0..02dc4b4548 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/BlogPostPublicClientProxy.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Blogs/BlogPostPublicClientProxy.cs @@ -1,6 +1,6 @@ // This file is part of BlogPostPublicClientProxy, you can customize it here // ReSharper disable once CheckNamespace -namespace Volo.CmsKit.Public.Blogs.ClientProxies; +namespace Volo.CmsKit.Public.Blogs; public partial class BlogPostPublicClientProxy { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/CommentPublicClientProxy.Generated.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Comments/CommentPublicClientProxy.Generated.cs similarity index 95% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/CommentPublicClientProxy.Generated.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Comments/CommentPublicClientProxy.Generated.cs index b7b1afc59c..ad798edea3 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/CommentPublicClientProxy.Generated.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Comments/CommentPublicClientProxy.Generated.cs @@ -1,15 +1,17 @@ // This file is automatically generated by ABP framework to use MVC Controllers from CSharp using System; +using System.Collections.Generic; using System.Threading.Tasks; +using Volo.Abp; using Volo.Abp.Application.Dtos; -using Volo.Abp.Http.Client; -using Volo.Abp.Http.Modeling; using Volo.Abp.DependencyInjection; +using Volo.Abp.Http.Client; using Volo.Abp.Http.Client.ClientProxying; +using Volo.Abp.Http.Modeling; using Volo.CmsKit.Public.Comments; // ReSharper disable once CheckNamespace -namespace Volo.CmsKit.Public.Comments.ClientProxies; +namespace Volo.CmsKit.Public.Comments; [Dependency(ReplaceServices = true)] [ExposeServices(typeof(ICommentPublicAppService), typeof(CommentPublicClientProxy))] diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/CommentPublicClientProxy.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Comments/CommentPublicClientProxy.cs similarity index 76% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/CommentPublicClientProxy.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Comments/CommentPublicClientProxy.cs index 826d4c0fb2..391b85cfd8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/CommentPublicClientProxy.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Comments/CommentPublicClientProxy.cs @@ -1,6 +1,6 @@ // This file is part of CommentPublicClientProxy, you can customize it here // ReSharper disable once CheckNamespace -namespace Volo.CmsKit.Public.Comments.ClientProxies; +namespace Volo.CmsKit.Public.Comments; public partial class CommentPublicClientProxy { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/GlobalResourcePublicClientProxy.Generated.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/GlobalResources/GlobalResourcePublicClientProxy.Generated.cs similarity index 91% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/GlobalResourcePublicClientProxy.Generated.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/GlobalResources/GlobalResourcePublicClientProxy.Generated.cs index d7354b9e87..17dc35b537 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/GlobalResourcePublicClientProxy.Generated.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/GlobalResources/GlobalResourcePublicClientProxy.Generated.cs @@ -1,15 +1,17 @@ // This file is automatically generated by ABP framework to use MVC Controllers from CSharp using System; +using System.Collections.Generic; using System.Threading.Tasks; +using Volo.Abp; using Volo.Abp.Application.Dtos; -using Volo.Abp.Http.Client; -using Volo.Abp.Http.Modeling; using Volo.Abp.DependencyInjection; +using Volo.Abp.Http.Client; using Volo.Abp.Http.Client.ClientProxying; +using Volo.Abp.Http.Modeling; using Volo.CmsKit.Public.GlobalResources; // ReSharper disable once CheckNamespace -namespace Volo.CmsKit.Public.GlobalResources.ClientProxies; +namespace Volo.CmsKit.Public.GlobalResources; [Dependency(ReplaceServices = true)] [ExposeServices(typeof(IGlobalResourcePublicAppService), typeof(GlobalResourcePublicClientProxy))] diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/GlobalResourcePublicClientProxy.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/GlobalResources/GlobalResourcePublicClientProxy.cs similarity index 75% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/GlobalResourcePublicClientProxy.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/GlobalResources/GlobalResourcePublicClientProxy.cs index 76549aec1e..3503866077 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/GlobalResourcePublicClientProxy.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/GlobalResources/GlobalResourcePublicClientProxy.cs @@ -1,6 +1,6 @@ // This file is part of GlobalResourcePublicClientProxy, you can customize it here // ReSharper disable once CheckNamespace -namespace Volo.CmsKit.Public.GlobalResources.ClientProxies; +namespace Volo.CmsKit.Public.GlobalResources; public partial class GlobalResourcePublicClientProxy { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/MenuItemPublicClientProxy.Generated.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Menus/MenuItemPublicClientProxy.Generated.cs similarity index 94% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/MenuItemPublicClientProxy.Generated.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Menus/MenuItemPublicClientProxy.Generated.cs index 5c9ba5769d..ed518f1152 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/MenuItemPublicClientProxy.Generated.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Menus/MenuItemPublicClientProxy.Generated.cs @@ -1,17 +1,18 @@ // This file is automatically generated by ABP framework to use MVC Controllers from CSharp using System; +using System.Collections.Generic; using System.Threading.Tasks; +using Volo.Abp; using Volo.Abp.Application.Dtos; -using Volo.Abp.Http.Client; -using Volo.Abp.Http.Modeling; using Volo.Abp.DependencyInjection; +using Volo.Abp.Http.Client; using Volo.Abp.Http.Client.ClientProxying; -using Volo.CmsKit.Public.Menus; -using System.Collections.Generic; +using Volo.Abp.Http.Modeling; using Volo.CmsKit.Menus; +using Volo.CmsKit.Public.Menus; // ReSharper disable once CheckNamespace -namespace Volo.CmsKit.Public.Menus.ClientProxies; +namespace Volo.CmsKit.Public.Menus; [Dependency(ReplaceServices = true)] [ExposeServices(typeof(IMenuItemPublicAppService), typeof(MenuItemPublicClientProxy))] diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/MenuItemPublicClientProxy.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Menus/MenuItemPublicClientProxy.cs similarity index 77% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/MenuItemPublicClientProxy.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Menus/MenuItemPublicClientProxy.cs index f08a3be274..8dcbb1d0e4 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/MenuItemPublicClientProxy.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Menus/MenuItemPublicClientProxy.cs @@ -1,6 +1,6 @@ // This file is part of MenuItemPublicClientProxy, you can customize it here // ReSharper disable once CheckNamespace -namespace Volo.CmsKit.Public.Menus.ClientProxies; +namespace Volo.CmsKit.Public.Menus; public partial class MenuItemPublicClientProxy { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/PagesPublicClientProxy.Generated.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Pages/PagesPublicClientProxy.Generated.cs similarity index 92% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/PagesPublicClientProxy.Generated.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Pages/PagesPublicClientProxy.Generated.cs index 2ae4e790a6..6a7df3e4e2 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/PagesPublicClientProxy.Generated.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Pages/PagesPublicClientProxy.Generated.cs @@ -1,16 +1,18 @@ // This file is automatically generated by ABP framework to use MVC Controllers from CSharp using System; +using System.Collections.Generic; using System.Threading.Tasks; +using Volo.Abp; using Volo.Abp.Application.Dtos; -using Volo.Abp.Http.Client; -using Volo.Abp.Http.Modeling; using Volo.Abp.DependencyInjection; +using Volo.Abp.Http.Client; using Volo.Abp.Http.Client.ClientProxying; -using Volo.CmsKit.Public.Pages; +using Volo.Abp.Http.Modeling; using Volo.CmsKit.Contents; +using Volo.CmsKit.Public.Pages; // ReSharper disable once CheckNamespace -namespace Volo.CmsKit.Public.Pages.ClientProxies; +namespace Volo.CmsKit.Public.Pages; [Dependency(ReplaceServices = true)] [ExposeServices(typeof(IPagePublicAppService), typeof(PagesPublicClientProxy))] diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/PagesPublicClientProxy.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Pages/PagesPublicClientProxy.cs similarity index 76% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/PagesPublicClientProxy.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Pages/PagesPublicClientProxy.cs index 3a735babc6..ab25d2a4ee 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/PagesPublicClientProxy.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Pages/PagesPublicClientProxy.cs @@ -1,6 +1,6 @@ // This file is part of PagesPublicClientProxy, you can customize it here // ReSharper disable once CheckNamespace -namespace Volo.CmsKit.Public.Pages.ClientProxies; +namespace Volo.CmsKit.Public.Pages; public partial class PagesPublicClientProxy { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/RatingPublicClientProxy.Generated.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Ratings/RatingPublicClientProxy.Generated.cs similarity index 96% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/RatingPublicClientProxy.Generated.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Ratings/RatingPublicClientProxy.Generated.cs index 583d86a282..5d72b7e98e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/RatingPublicClientProxy.Generated.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Ratings/RatingPublicClientProxy.Generated.cs @@ -1,16 +1,17 @@ // This file is automatically generated by ABP framework to use MVC Controllers from CSharp using System; +using System.Collections.Generic; using System.Threading.Tasks; +using Volo.Abp; using Volo.Abp.Application.Dtos; -using Volo.Abp.Http.Client; -using Volo.Abp.Http.Modeling; using Volo.Abp.DependencyInjection; +using Volo.Abp.Http.Client; using Volo.Abp.Http.Client.ClientProxying; +using Volo.Abp.Http.Modeling; using Volo.CmsKit.Public.Ratings; -using System.Collections.Generic; // ReSharper disable once CheckNamespace -namespace Volo.CmsKit.Public.Ratings.ClientProxies; +namespace Volo.CmsKit.Public.Ratings; [Dependency(ReplaceServices = true)] [ExposeServices(typeof(IRatingPublicAppService), typeof(RatingPublicClientProxy))] diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/RatingPublicClientProxy.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Ratings/RatingPublicClientProxy.cs similarity index 76% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/RatingPublicClientProxy.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Ratings/RatingPublicClientProxy.cs index 6a4609f568..ae04e16b90 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/RatingPublicClientProxy.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Ratings/RatingPublicClientProxy.cs @@ -1,6 +1,6 @@ // This file is part of RatingPublicClientProxy, you can customize it here // ReSharper disable once CheckNamespace -namespace Volo.CmsKit.Public.Ratings.ClientProxies; +namespace Volo.CmsKit.Public.Ratings; public partial class RatingPublicClientProxy { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/ReactionPublicClientProxy.Generated.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Reactions/ReactionPublicClientProxy.Generated.cs similarity index 94% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/ReactionPublicClientProxy.Generated.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Reactions/ReactionPublicClientProxy.Generated.cs index b656f785c3..df3b1e2099 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/ReactionPublicClientProxy.Generated.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Reactions/ReactionPublicClientProxy.Generated.cs @@ -1,15 +1,17 @@ // This file is automatically generated by ABP framework to use MVC Controllers from CSharp using System; +using System.Collections.Generic; using System.Threading.Tasks; +using Volo.Abp; using Volo.Abp.Application.Dtos; -using Volo.Abp.Http.Client; -using Volo.Abp.Http.Modeling; using Volo.Abp.DependencyInjection; +using Volo.Abp.Http.Client; using Volo.Abp.Http.Client.ClientProxying; +using Volo.Abp.Http.Modeling; using Volo.CmsKit.Public.Reactions; // ReSharper disable once CheckNamespace -namespace Volo.CmsKit.Public.Reactions.ClientProxies; +namespace Volo.CmsKit.Public.Reactions; [Dependency(ReplaceServices = true)] [ExposeServices(typeof(IReactionPublicAppService), typeof(ReactionPublicClientProxy))] diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/ReactionPublicClientProxy.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Reactions/ReactionPublicClientProxy.cs similarity index 75% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/ReactionPublicClientProxy.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Reactions/ReactionPublicClientProxy.cs index b351daadb3..bb3aa0c9a6 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/ReactionPublicClientProxy.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Reactions/ReactionPublicClientProxy.cs @@ -1,6 +1,6 @@ // This file is part of ReactionPublicClientProxy, you can customize it here // ReSharper disable once CheckNamespace -namespace Volo.CmsKit.Public.Reactions.ClientProxies; +namespace Volo.CmsKit.Public.Reactions; public partial class ReactionPublicClientProxy { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/TagPublicClientProxy.Generated.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Tags/TagPublicClientProxy.Generated.cs similarity index 70% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/TagPublicClientProxy.Generated.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Tags/TagPublicClientProxy.Generated.cs index 8be40aaf1d..cb29fbbffb 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/TagPublicClientProxy.Generated.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Tags/TagPublicClientProxy.Generated.cs @@ -1,16 +1,17 @@ // This file is automatically generated by ABP framework to use MVC Controllers from CSharp using System; +using System.Collections.Generic; using System.Threading.Tasks; +using Volo.Abp; using Volo.Abp.Application.Dtos; -using Volo.Abp.Http.Client; -using Volo.Abp.Http.Modeling; using Volo.Abp.DependencyInjection; +using Volo.Abp.Http.Client; using Volo.Abp.Http.Client.ClientProxying; +using Volo.Abp.Http.Modeling; using Volo.CmsKit.Tags; -using System.Collections.Generic; // ReSharper disable once CheckNamespace -namespace Volo.CmsKit.Public.Tags.ClientProxies; +namespace Volo.CmsKit.Public.Tags; [Dependency(ReplaceServices = true)] [ExposeServices(typeof(ITagAppService), typeof(TagPublicClientProxy))] @@ -24,4 +25,13 @@ public partial class TagPublicClientProxy : ClientProxyBase, ITa { typeof(string), entityId } }); } + + public virtual async Task> GetPopularTagsAsync(string entityType, int maxCount) + { + return await RequestAsync>(nameof(GetPopularTagsAsync), new ClientProxyRequestTypeValue + { + { typeof(string), entityType }, + { typeof(int), maxCount } + }); + } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/TagPublicClientProxy.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Tags/TagPublicClientProxy.cs similarity index 76% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/TagPublicClientProxy.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Tags/TagPublicClientProxy.cs index c1fa0d9ae4..d17d9dac00 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/TagPublicClientProxy.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/Volo/CmsKit/Public/Tags/TagPublicClientProxy.cs @@ -1,6 +1,6 @@ // This file is part of TagPublicClientProxy, you can customize it here // ReSharper disable once CheckNamespace -namespace Volo.CmsKit.Public.Tags.ClientProxies; +namespace Volo.CmsKit.Public.Tags; public partial class TagPublicClientProxy { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/cms-kit-generate-proxy.json b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/cms-kit-generate-proxy.json index d5c6133c40..bfde04ba1d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/cms-kit-generate-proxy.json +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/cms-kit-generate-proxy.json @@ -8,11 +8,65 @@ "controllerName": "TagPublic", "controllerGroupName": "TagPublic", "isRemoteService": true, + "isIntegrationService": false, "apiVersion": null, "type": "Volo.CmsKit.Public.Tags.TagPublicController", "interfaces": [ { - "type": "Volo.CmsKit.Tags.ITagAppService" + "type": "Volo.CmsKit.Tags.ITagAppService", + "name": "ITagAppService", + "methods": [ + { + "name": "GetAllRelatedTagsAsync", + "parametersOnMethod": [ + { + "name": "entityType", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "entityId", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.CmsKit.Tags.TagDto]" + } + }, + { + "name": "GetPopularTagsAsync", + "parametersOnMethod": [ + { + "name": "entityType", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "maxCount", + "typeAsString": "System.Int32, System.Private.CoreLib", + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.CmsKit.Tags.PopularTagDto]" + } + } + ] } ], "actions": { @@ -72,6 +126,65 @@ }, "allowAnonymous": null, "implementFrom": "Volo.CmsKit.Tags.ITagAppService" + }, + "GetPopularTagsAsyncByEntityTypeAndMaxCount": { + "uniqueName": "GetPopularTagsAsyncByEntityTypeAndMaxCount", + "name": "GetPopularTagsAsync", + "httpMethod": "GET", + "url": "api/cms-kit-public/tags/popular/{entityType}/{maxCount}", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "entityType", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "maxCount", + "typeAsString": "System.Int32, System.Private.CoreLib", + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "entityType", + "name": "entityType", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + }, + { + "nameOnMethod": "maxCount", + "name": "maxCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [ + "IntRouteConstraint" + ], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.CmsKit.Tags.PopularTagDto]" + }, + "allowAnonymous": null, + "implementFrom": "Volo.CmsKit.Tags.ITagAppService" } } }, @@ -79,11 +192,106 @@ "controllerName": "ReactionPublic", "controllerGroupName": "ReactionPublic", "isRemoteService": true, + "isIntegrationService": false, "apiVersion": null, "type": "Volo.CmsKit.Public.Reactions.ReactionPublicController", "interfaces": [ { - "type": "Volo.CmsKit.Public.Reactions.IReactionPublicAppService" + "type": "Volo.CmsKit.Public.Reactions.IReactionPublicAppService", + "name": "IReactionPublicAppService", + "methods": [ + { + "name": "GetForSelectionAsync", + "parametersOnMethod": [ + { + "name": "entityType", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "entityId", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + }, + { + "name": "CreateAsync", + "parametersOnMethod": [ + { + "name": "entityType", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "entityId", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "reaction", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "DeleteAsync", + "parametersOnMethod": [ + { + "name": "entityType", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "entityId", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "reaction", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] } ], "actions": { @@ -304,11 +512,98 @@ "controllerName": "RatingPublic", "controllerGroupName": "RatingPublic", "isRemoteService": true, + "isIntegrationService": false, "apiVersion": null, "type": "Volo.CmsKit.Public.Ratings.RatingPublicController", "interfaces": [ { - "type": "Volo.CmsKit.Public.Ratings.IRatingPublicAppService" + "type": "Volo.CmsKit.Public.Ratings.IRatingPublicAppService", + "name": "IRatingPublicAppService", + "methods": [ + { + "name": "CreateAsync", + "parametersOnMethod": [ + { + "name": "entityType", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "entityId", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.CmsKit.Public.Ratings.CreateUpdateRatingInput, Volo.CmsKit.Public.Application.Contracts", + "type": "Volo.CmsKit.Public.Ratings.CreateUpdateRatingInput", + "typeSimple": "Volo.CmsKit.Public.Ratings.CreateUpdateRatingInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.CmsKit.Public.Ratings.RatingDto", + "typeSimple": "Volo.CmsKit.Public.Ratings.RatingDto" + } + }, + { + "name": "DeleteAsync", + "parametersOnMethod": [ + { + "name": "entityType", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "entityId", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "GetGroupedStarCountsAsync", + "parametersOnMethod": [ + { + "name": "entityType", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "entityId", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.CmsKit.Public.Ratings.RatingWithStarCountDto]" + } + } + ] } ], "actions": { @@ -509,11 +804,40 @@ "controllerName": "PagesPublic", "controllerGroupName": "PagesPublic", "isRemoteService": true, + "isIntegrationService": false, "apiVersion": null, "type": "Volo.CmsKit.Public.Pages.PagesPublicController", "interfaces": [ { - "type": "Volo.CmsKit.Public.Pages.IPagePublicAppService" + "type": "Volo.CmsKit.Public.Pages.IPagePublicAppService", + "name": "IPagePublicAppService", + "methods": [ + { + "name": "FindBySlugAsync", + "parametersOnMethod": [ + { + "name": "slug", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.CmsKit.Contents.PageDto", + "typeSimple": "Volo.CmsKit.Contents.PageDto" + } + }, + { + "name": "FindDefaultHomePageAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "Volo.CmsKit.Contents.PageDto", + "typeSimple": "Volo.CmsKit.Contents.PageDto" + } + } + ] } ], "actions": { @@ -575,11 +899,23 @@ "controllerName": "MenuItemPublic", "controllerGroupName": "MenuItemPublic", "isRemoteService": true, + "isIntegrationService": false, "apiVersion": null, "type": "Volo.CmsKit.Public.Menus.MenuItemPublicController", "interfaces": [ { - "type": "Volo.CmsKit.Public.Menus.IMenuItemPublicAppService" + "type": "Volo.CmsKit.Public.Menus.IMenuItemPublicAppService", + "name": "IMenuItemPublicAppService", + "methods": [ + { + "name": "GetListAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.CmsKit.Menus.MenuItemDto]" + } + } + ] } ], "actions": { @@ -604,11 +940,31 @@ "controllerName": "GlobalResourcePublic", "controllerGroupName": "GlobalResourcePublic", "isRemoteService": true, + "isIntegrationService": false, "apiVersion": null, "type": "Volo.CmsKit.Public.GlobalResources.GlobalResourcePublicController", "interfaces": [ { - "type": "Volo.CmsKit.Public.GlobalResources.IGlobalResourcePublicAppService" + "type": "Volo.CmsKit.Public.GlobalResources.IGlobalResourcePublicAppService", + "name": "IGlobalResourcePublicAppService", + "methods": [ + { + "name": "GetGlobalScriptAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "Volo.CmsKit.Public.GlobalResources.GlobalResourceDto", + "typeSimple": "Volo.CmsKit.Public.GlobalResources.GlobalResourceDto" + } + }, + { + "name": "GetGlobalStyleAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "Volo.CmsKit.Public.GlobalResources.GlobalResourceDto", + "typeSimple": "Volo.CmsKit.Public.GlobalResources.GlobalResourceDto" + } + } + ] } ], "actions": { @@ -648,11 +1004,115 @@ "controllerName": "CommentPublic", "controllerGroupName": "CommentPublic", "isRemoteService": true, + "isIntegrationService": false, "apiVersion": null, "type": "Volo.CmsKit.Public.Comments.CommentPublicController", "interfaces": [ { - "type": "Volo.CmsKit.Public.Comments.ICommentPublicAppService" + "type": "Volo.CmsKit.Public.Comments.ICommentPublicAppService", + "name": "ICommentPublicAppService", + "methods": [ + { + "name": "GetListAsync", + "parametersOnMethod": [ + { + "name": "entityType", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "entityId", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + }, + { + "name": "CreateAsync", + "parametersOnMethod": [ + { + "name": "entityType", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "entityId", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.CmsKit.Public.Comments.CreateCommentInput, Volo.CmsKit.Public.Application.Contracts", + "type": "Volo.CmsKit.Public.Comments.CreateCommentInput", + "typeSimple": "Volo.CmsKit.Public.Comments.CreateCommentInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.CmsKit.Public.Comments.CommentDto", + "typeSimple": "Volo.CmsKit.Public.Comments.CommentDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.CmsKit.Public.Comments.UpdateCommentInput, Volo.CmsKit.Public.Application.Contracts", + "type": "Volo.CmsKit.Public.Comments.UpdateCommentInput", + "typeSimple": "Volo.CmsKit.Public.Comments.UpdateCommentInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.CmsKit.Public.Comments.CommentDto", + "typeSimple": "Volo.CmsKit.Public.Comments.CommentDto" + } + }, + { + "name": "DeleteAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] } ], "actions": { @@ -890,11 +1350,116 @@ "controllerName": "BlogPostPublic", "controllerGroupName": "BlogPostPublic", "isRemoteService": true, + "isIntegrationService": false, "apiVersion": null, "type": "Volo.CmsKit.Public.Blogs.BlogPostPublicController", "interfaces": [ { - "type": "Volo.CmsKit.Public.Blogs.IBlogPostPublicAppService" + "type": "Volo.CmsKit.Public.Blogs.IBlogPostPublicAppService", + "name": "IBlogPostPublicAppService", + "methods": [ + { + "name": "GetListAsync", + "parametersOnMethod": [ + { + "name": "blogSlug", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.CmsKit.Public.Blogs.BlogPostGetListInput, Volo.CmsKit.Public.Application.Contracts", + "type": "Volo.CmsKit.Public.Blogs.BlogPostGetListInput", + "typeSimple": "Volo.CmsKit.Public.Blogs.BlogPostGetListInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + } + }, + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "blogSlug", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "blogPostSlug", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.CmsKit.Contents.BlogPostCommonDto", + "typeSimple": "Volo.CmsKit.Contents.BlogPostCommonDto" + } + }, + { + "name": "GetAuthorsHasBlogPostsAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.CmsKit.Public.Blogs.BlogPostFilteredPagedAndSortedResultRequestDto, Volo.CmsKit.Public.Application.Contracts", + "type": "Volo.CmsKit.Public.Blogs.BlogPostFilteredPagedAndSortedResultRequestDto", + "typeSimple": "Volo.CmsKit.Public.Blogs.BlogPostFilteredPagedAndSortedResultRequestDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + } + }, + { + "name": "GetAuthorHasBlogPostAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.CmsKit.Users.CmsUserDto", + "typeSimple": "Volo.CmsKit.Users.CmsUserDto" + } + }, + { + "name": "DeleteAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] } ], "actions": { From 9f420db9a2be5f7fba62d06521e35375f6ddf04e Mon Sep 17 00:00:00 2001 From: Salih Date: Fri, 14 Jul 2023 10:55:43 +0300 Subject: [PATCH 07/19] Refactor --- .../CmsKit/Shared/Components/PopularTags/Default.cshtml | 4 ++-- .../Components/PopularTags/PopularTagsViewComponent.cs | 7 +++---- .../Pages/CmsKit/Shared/Components/Tags/Default.cshtml | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml index 0946744aaa..eb67129d8c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml @@ -10,7 +10,7 @@
@foreach (var tag in Model.Tags) { - if (Model.UrlFactory == null) + if (Model.UrlFormat.IsNullOrWhiteSpace()) { @tag.Name @@ -18,7 +18,7 @@ } else { - + @tag.Name diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/PopularTagsViewComponent.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/PopularTagsViewComponent.cs index 465805642b..1a766ae452 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/PopularTagsViewComponent.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/PopularTagsViewComponent.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.Uow; using Volo.CmsKit.Tags; namespace Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.PopularTags; @@ -17,12 +16,12 @@ public class PopularTagsViewComponent : AbpViewComponent _tagAppService = tagAppService; } - public async Task InvokeAsync(string entityType, int maxCount, Func urlFactory = null) + public async Task InvokeAsync(string entityType, int maxCount, string urlFormat) { var model = new PopularTagsViewModel { Tags = await _tagAppService.GetPopularTagsAsync(entityType, maxCount), - UrlFactory = urlFactory + UrlFormat = urlFormat }; return View("~/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml", model); } @@ -30,6 +29,6 @@ public class PopularTagsViewComponent : AbpViewComponent public class PopularTagsViewModel { public List Tags { get; set; } - public Func UrlFactory { get; set; } + public string UrlFormat { get; set; } } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Tags/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Tags/Default.cshtml index c8b588debc..e9567b8b3e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Tags/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Tags/Default.cshtml @@ -16,7 +16,7 @@ } else { - var formattedUrl = Model.UrlFormat.Replace("{TagId}", tag.Id.ToString()); + var formattedUrl = Model.UrlFormat.Replace("{TagId}", tag.Id.ToString()).Replace("{TagName}", tag.Name); @tag.Name } } From 1fbbd707913f1df67947c92ab922039811dd44b4 Mon Sep 17 00:00:00 2001 From: Salih Date: Fri, 14 Jul 2023 10:57:55 +0300 Subject: [PATCH 08/19] Update TagPublicAppService_Tests.cs --- .../Tags/TagPublicAppService_Tests.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Tags/TagPublicAppService_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Tags/TagPublicAppService_Tests.cs index 7e177aebe3..74fd80e12b 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Tags/TagPublicAppService_Tests.cs +++ b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Tags/TagPublicAppService_Tests.cs @@ -43,4 +43,13 @@ public class TagPublicAppService_Tests : CmsKitApplicationTestBase list.ShouldBeEmpty(); } + + [Fact] + public async Task GetPopularTagsAsync() + { + var list = await _tagAppService.GetPopularTagsAsync(_cmsKitTestData.Content_1_EntityType, 2); + + list.ShouldNotBeEmpty(); + list.Count.ShouldBe(2); + } } From 8c216e01f4dfa01f6a4c735c5098506eaea759d0 Mon Sep 17 00:00:00 2001 From: Salih Date: Fri, 14 Jul 2023 11:06:14 +0300 Subject: [PATCH 09/19] Add Virtual keyword --- .../Volo/CmsKit/Tags/TagAppService.cs | 2 +- .../Volo/CmsKit/Tags/EfCoreTagRepository.cs | 2 +- .../Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs | 2 +- .../Shared/Components/PopularTags/PopularTagsViewComponent.cs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Tags/TagAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Tags/TagAppService.cs index 718b6a318a..0d6e749c12 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Tags/TagAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Tags/TagAppService.cs @@ -25,7 +25,7 @@ public class TagAppService : CmsKitAppServiceBase, ITagAppService return ObjectMapper.Map, List>(entities); } - public async Task> GetPopularTagsAsync(string entityType, int maxCount) + public virtual async Task> GetPopularTagsAsync(string entityType, int maxCount) { return ObjectMapper.Map, List>( await TagRepository.GetPopularTagsAsync( diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Tags/EfCoreTagRepository.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Tags/EfCoreTagRepository.cs index c2e5aacd7b..95417ff0bc 100644 --- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Tags/EfCoreTagRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Tags/EfCoreTagRepository.cs @@ -80,7 +80,7 @@ public class EfCoreTagRepository : EfCoreRepository return await query.ToListAsync(cancellationToken: GetCancellationToken(cancellationToken)); } - public async Task> GetPopularTagsAsync( + public virtual async Task> GetPopularTagsAsync( [NotNull] string entityType, int maxCount, CancellationToken cancellationToken = default) diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs index de1dde3181..50e5b427e9 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs @@ -83,7 +83,7 @@ public class MongoTagRepository : MongoDbRepository> GetPopularTagsAsync(string entityType, int maxCount, CancellationToken cancellationToken = default) + public virtual async Task> GetPopularTagsAsync(string entityType, int maxCount, CancellationToken cancellationToken = default) { var tags = await (await GetMongoQueryableAsync(cancellationToken)) .Where(x => x.EntityType == entityType) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/PopularTagsViewComponent.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/PopularTagsViewComponent.cs index 1a766ae452..c12def65e8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/PopularTagsViewComponent.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/PopularTagsViewComponent.cs @@ -16,7 +16,7 @@ public class PopularTagsViewComponent : AbpViewComponent _tagAppService = tagAppService; } - public async Task InvokeAsync(string entityType, int maxCount, string urlFormat) + public virtual async Task InvokeAsync(string entityType, int maxCount, string urlFormat) { var model = new PopularTagsViewModel { From b5636b1684739e88d8222e0c23f87373eece8ef8 Mon Sep 17 00:00:00 2001 From: Salih Date: Fri, 14 Jul 2023 12:04:33 +0300 Subject: [PATCH 10/19] Update Tags.md --- docs/en/Modules/Cms-Kit/Tags.md | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/docs/en/Modules/Cms-Kit/Tags.md b/docs/en/Modules/Cms-Kit/Tags.md index 8f91bc67c7..b785dbdb4d 100644 --- a/docs/en/Modules/Cms-Kit/Tags.md +++ b/docs/en/Modules/Cms-Kit/Tags.md @@ -45,11 +45,27 @@ The tag system provides a tag [widget](../../UI/AspNetCore/Widgets.md) to displa @await Component.InvokeAsync(typeof(TagViewComponent), new { entityType = "Product", - entityId = "..." + entityId = "...", + urlFormat = "/products?tagId={TagId}&tagName={TagName}" }) ``` -`entityType` was explained in the previous section. `entityId` should be the unique id of the product, in this example. If you have a Product entity, you can use its Id here. +`entityType` was explained in the previous section. `entityId` should be the unique id of the product, in this example. If you have a Product entity, you can use its Id here. `urlFormat` is the format of the URL that will be generated for each tag. You can use the `{TagId}` and `{TagName}` placeholders to generate the URL. For example, the above URL format will generate URLs like `/products?tagId=1&tagName=tag1`. + +## The Popular Tags Widget + +The tag system provides a popular tags [widget](../../UI/AspNetCore/Widgets.md) to display popular tags of a resource that was configured for tagging. You can simply place the widget on a page like below: + +```csharp +@await Component.InvokeAsync(typeof(PopularTagsViewComponent), new +{ + entityType = "Product", + urlFormat = "/products?tagId={TagId}&tagName={TagName}", + maxCount = 10 +}) +``` + +`entityType` was explained in the previous section. `urlFormat` was explained in the previous section. `maxCount` is the maximum number of tags to be displayed. ## User Interface From 7a576284c5c5536887418ceb7bbe04ea2c6cd5f4 Mon Sep 17 00:00:00 2001 From: Salih Date: Mon, 17 Jul 2023 09:38:45 +0300 Subject: [PATCH 11/19] Update Default.cshtml --- .../Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml index eb67129d8c..f040515b52 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml @@ -12,14 +12,14 @@ { if (Model.UrlFormat.IsNullOrWhiteSpace()) { - + @tag.Name } else { - + @tag.Name From 50c658bac46a650c0c1f988b0da030f021eb410e Mon Sep 17 00:00:00 2001 From: Salih Date: Mon, 17 Jul 2023 09:41:07 +0300 Subject: [PATCH 12/19] Refactor --- .../CmsKit/Shared/Components/PopularTags/Default.cshtml | 4 ++-- .../Components/PopularTags/PopularTagsViewComponent.cs | 9 +++++++-- .../CmsKit/Shared/Components/PopularTags/default.css | 4 ++++ 3 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/default.css diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml index f040515b52..8e34c45f43 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/Default.cshtml @@ -12,14 +12,14 @@ { if (Model.UrlFormat.IsNullOrWhiteSpace()) { - + @tag.Name } else { - + @tag.Name diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/PopularTagsViewComponent.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/PopularTagsViewComponent.cs index c12def65e8..f3dc84a832 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/PopularTagsViewComponent.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/PopularTagsViewComponent.cs @@ -1,12 +1,17 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc.UI.Widgets; using Volo.CmsKit.Tags; namespace Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.PopularTags; +[Widget( + StyleFiles = new[] + { + "/Pages/CmsKit/Shared/Components/PopularTags/default.css" + })] public class PopularTagsViewComponent : AbpViewComponent { private readonly ITagAppService _tagAppService; diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/default.css b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/default.css new file mode 100644 index 0000000000..23fbefbecc --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/PopularTags/default.css @@ -0,0 +1,4 @@ +.cmskit-tag { + background: #eeedf7; + color: #766bc8 +} \ No newline at end of file From d4d8193d54f44ff20430b8257992a694b4b5ffec Mon Sep 17 00:00:00 2001 From: Salih Date: Tue, 18 Jul 2023 10:41:44 +0300 Subject: [PATCH 13/19] Update en.json --- .../Commercial/Localization/Resources/en.json | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index 07a030ff47..a3dec870c8 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -904,6 +904,32 @@ "DoesTheSubscriptionRenewAutomatically": "Does the subscription renew automatically?", "DoesTheSubscriptionRenewAutomaticallyExplanation": "The ABP Commercial does not have an auto-renewal billing model. Therefore your subscription will not be automatically renewed at the end of your license period. If you want to continue to have the benefits of ABP Commercial, you need to manually renew it at the organization management page. If you have multiple organizations, click the \"Manage\" button at your expiring organization and then click the \"Extend Now\" button to renew your license. You may also want to take a look at the What Happens When My License Ends? section.", "ExtraQuestionCreditsFaqTitle": "Can I purchase extra support question credits?", - "ExtraQuestionCreditsFaqExplanation": "Yes, you can. To buy extra question credits, send an e-mail to info@abp.io with your organization's name. Here's the price list for the extra question credits:
  • 50 questions pack $999
  • 25 questions pack $625
  • 15 questions pack $450
" + "ExtraQuestionCreditsFaqExplanation": "Yes, you can. To buy extra question credits, send an e-mail to info@abp.io with your organization's name. Here's the price list for the extra question credits:
  • 50 questions pack $999
  • 25 questions pack $625
  • 15 questions pack $450
", + "AlreadyBetaTester": "You have already joined the beta tester program.", + "AbpStudioForAbpDevelopers": "ABP Studio for ABP Developers", + "AbpStudioForAbpDevelopers_Description1": "ABP Studio is a cross-platform desktop application for ABP developers.", + "AbpStudioForAbpDevelopers_Description2": "It is well integrated to the ABP Framework and aims to provide a comfortable development environment for you by automating things, providing insights about your solution, making develop, run and deploy your solutions much easier.", + "CreateNewSolutions": "Create New Solutions", + "CreateNewSolutions_Description1": "You can create from simple applications to modular monolith or microservice solutions easily with a lot of options. You get a full production-ready base software solution for your business.", + "ArchitectYourSolutions": "Architect Your Solutions", + "ArchitectYourSolutions_Description1": "Build monolith-modular and microservice solution structures easier by creating modules or services and establishing relations between them. You can also install or uninstall pre-built application modules.", + "ExploreYourSolution": "Explore Your Solution", + "ExploreYourSolution_Description1": "ABP Studio shows a high-level view of components in your solution and the modules your solution depends on. You can explore entities, services, HTTP APIs and much more without needing to open your codebase.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze": "Run Multi-Application or Microservice Solutions in a Breeze", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description1": "Run one, multiple or all services with a single click. In this way, it is very easy to stop a service, run it in Visual Studio to test or debug.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description2": "See a list of services, view real-time HTTP Request and exception counts for each service.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description3": "See all details of all HTTP requests coming to any service.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description4": "Explore exception details as real-time in any service, easily filter and search.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description5": "Show the application logs, filter by log level or search by text..", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description6": "Browse the UI of your application without leaving the solution runner.", + "IntegrateToYourKubernetesCluster": "Integrate to your Kubernetes Cluster", + "IntegrateToYourKubernetesCluster_Description1": "Connect your local development environment to a local or remote Kubernetes cluster, where that cluster already runs your microservice solution.", + "IntegrateToYourKubernetesCluster_Description2": "Access any service in Kubernetes with their service name as DNS, just like they are running in your local computer.", + "IntegrateToYourKubernetesCluster_Description3": "Intercept any service in that cluster, so all the traffic to the intercepted service is automatically redirected to your servicethat is running in your local machine. When your service needs to use any service in Kubernetes, the traffic is redirected back to the cluster, just like your local service is running inside the Kubernetes.", + "GetInformed": "Get Informed", + "Studio_GetInformed_Description1": "Leave your contact information to get informed and try it first when ABP Studio has been launched.", + "Studio_GetInformed_Description2": "Planned preview release date:
Q3 of 2023.", + "ThankYou!": "Thank you!", + "YouJoinedTheBetaTesterProgram": "You joined the ABP Studio beta tester program." } } From 034a6c13ae2e830001021ee159a6c8b8f4ceb62b Mon Sep 17 00:00:00 2001 From: Salih Date: Wed, 19 Jul 2023 12:42:37 +0300 Subject: [PATCH 14/19] Update en.json --- .../AbpIoLocalization/Base/Localization/Resources/en.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json index 6788a4d224..21f666c413 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json @@ -217,6 +217,7 @@ "ReleaseNotes": "Release Notes", "DetailedChangeNotes" : "Detailed Change Notes", "SeeTrainings": "See Trainings", - "NoContent": "No content" + "NoContent": "No content", + "ABPStudioBeta": "ABP Studio BETA" } } From f3f92886a6cf0af6e6fda0402792d99ac6b991ae Mon Sep 17 00:00:00 2001 From: Salih Date: Wed, 19 Jul 2023 15:29:45 +0300 Subject: [PATCH 15/19] Update en.json --- .../AbpIoLocalization/Base/Localization/Resources/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json index 21f666c413..9c5b7a6a78 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json @@ -218,6 +218,6 @@ "DetailedChangeNotes" : "Detailed Change Notes", "SeeTrainings": "See Trainings", "NoContent": "No content", - "ABPStudioBeta": "ABP Studio BETA" + "ABPStudioBeta": "ABP Studio BETA" } } From 44899bafd5a3d2bd5a846f33240b2595f715c4da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alper=20Ebi=C3=A7o=C4=9Flu?= <9526587+ebicoglu@users.noreply.github.com> Date: Wed, 19 Jul 2023 17:12:20 +0300 Subject: [PATCH 16/19] Update Tags.md --- docs/en/Modules/Cms-Kit/Tags.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/en/Modules/Cms-Kit/Tags.md b/docs/en/Modules/Cms-Kit/Tags.md index b785dbdb4d..ed61b8d2be 100644 --- a/docs/en/Modules/Cms-Kit/Tags.md +++ b/docs/en/Modules/Cms-Kit/Tags.md @@ -32,14 +32,14 @@ Configure(options => `TagEntityTypeDefiniton` properties: - `EntityType`: Name of the entity type. -- `DisplayName`: Display name of the entity type. You can use a user friendly display name to show entity type definition on the admin website. +- `DisplayName`: The display name of the entity type. You can use a user-friendly display name to show entity type definition on the admin website. - `CreatePolicies`: List of policy/permission names allowing users to create tags under the entity type. - `UpdatePolicies`: List of policy/permission names allowing users to update tags under the entity type. - `DeletePolicies`: List of policy/permission names allowing users to delete tags under the entity type. ## The Tag Widget -The tag system provides a tag [widget](../../UI/AspNetCore/Widgets.md) to display associated tags of a resource that was configured for tagging. You can simply place the widget on a page like below: +The tag system provides a tag [widget](../../UI/AspNetCore/Widgets.md) to display associated tags of a resource that was configured for tagging. You can simply place the widget on a page like the one below: ```csharp @await Component.InvokeAsync(typeof(TagViewComponent), new @@ -50,7 +50,7 @@ The tag system provides a tag [widget](../../UI/AspNetCore/Widgets.md) to displa }) ``` -`entityType` was explained in the previous section. `entityId` should be the unique id of the product, in this example. If you have a Product entity, you can use its Id here. `urlFormat` is the format of the URL that will be generated for each tag. You can use the `{TagId}` and `{TagName}` placeholders to generate the URL. For example, the above URL format will generate URLs like `/products?tagId=1&tagName=tag1`. +`entityType` was explained in the previous section. In this example, the `entityId` should be the unique id of the product. If you have a `Product` entity, you can use its Id here. `urlFormat` is the string format of the URL which will be generated for each tag. You can use the `{TagId}` and `{TagName}` placeholders to populate the URL. For example, the above URL format will populate URLs like `/products?tagId=1&tagName=tag1`. ## The Popular Tags Widget @@ -111,7 +111,7 @@ An entity tag represents a connection between the tag and the tagged entity. This module follows the [Repository Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Repositories) guide. -Following custom repositories are defined for this feature: +The following custom repositories are defined for this feature: - `ITagRepository` - `IEntityTagRepository` @@ -122,11 +122,11 @@ This module follows the [Domain Services Best Practices & Conventions](https://d ##### Tag Manager -`TagManager` is used to perform some operations for the `Tag` aggregate root. +`TagManager` performs some operations for the `Tag` aggregate root. ##### Entity Tag Manager -`EntityTagManager` is used to perform some operations for the `EntityTag` entity. +`EntityTagManager` performs some operations for the `EntityTag` entity. ### Application layer @@ -140,7 +140,7 @@ This module follows the [Domain Services Best Practices & Conventions](https://d #### Common -##### Table / collection prefix & schema +##### Table / Collection prefix & schema All tables/collections use the `Cms` prefix by default. Set static properties on the `CmsKitDbProperties` class if you need to change the table prefix or set a schema name (if supported by your database provider). From d5a3c32774267b52ebd743684b7c7816bb8c31dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alper=20Ebi=C3=A7o=C4=9Flu?= <9526587+ebicoglu@users.noreply.github.com> Date: Wed, 19 Jul 2023 17:12:58 +0300 Subject: [PATCH 17/19] Update Tags.md --- docs/en/Modules/Cms-Kit/Tags.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Modules/Cms-Kit/Tags.md b/docs/en/Modules/Cms-Kit/Tags.md index ed61b8d2be..9f85faeff2 100644 --- a/docs/en/Modules/Cms-Kit/Tags.md +++ b/docs/en/Modules/Cms-Kit/Tags.md @@ -54,7 +54,7 @@ The tag system provides a tag [widget](../../UI/AspNetCore/Widgets.md) to displa ## The Popular Tags Widget -The tag system provides a popular tags [widget](../../UI/AspNetCore/Widgets.md) to display popular tags of a resource that was configured for tagging. You can simply place the widget on a page like below: +The tag system provides a popular tags [widget](../../UI/AspNetCore/Widgets.md) to display popular tags of a resource that was configured for tagging. You can simply place the widget on a page as below: ```csharp @await Component.InvokeAsync(typeof(PopularTagsViewComponent), new From 41204fffc3624e3ad8f3eefb9ce6dc3aa384a0b8 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 20 Jul 2023 13:46:16 +0800 Subject: [PATCH 18/19] Update OpenIddict.md --- docs/en/Modules/OpenIddict.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Modules/OpenIddict.md b/docs/en/Modules/OpenIddict.md index db13d4b452..cb9d36a30c 100644 --- a/docs/en/Modules/OpenIddict.md +++ b/docs/en/Modules/OpenIddict.md @@ -108,7 +108,7 @@ public override void PreConfigureServices(ServiceConfigurationContext context) These services contain: -- `AddAudiances()` for resource servers. +- `AddAudiences()` for resource servers. - `SetIssuer()` URI that is used to determine the actual location of the OAuth 2.0/OpenID Connect configuration document when using provider discovery. - `SetConfiguration()` to configure `OpenIdConnectConfiguration`. - `UseIntrospection()` to use introspection instead of local/direct validation. From 225a7517e3ebf25032b7b5f7cf7dbd5d290a089a Mon Sep 17 00:00:00 2001 From: Engincan VESKE Date: Thu, 20 Jul 2023 10:59:40 +0300 Subject: [PATCH 19/19] Update en.json --- .../AbpIoLocalization/Commercial/Localization/Resources/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index 56a89e2cc6..593e006144 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -928,7 +928,7 @@ "IntegrateToYourKubernetesCluster_Description3": "Intercept any service in that cluster, so all the traffic to the intercepted service is automatically redirected to your servicethat is running in your local machine. When your service needs to use any service in Kubernetes, the traffic is redirected back to the cluster, just like your local service is running inside the Kubernetes.", "GetInformed": "Get Informed", "Studio_GetInformed_Description1": "Leave your contact information to get informed and try it first when ABP Studio has been launched.", - "Studio_GetInformed_Description2": "Planned preview release date:
Q3 of 2023.", + "Studio_GetInformed_Description2": "Planned preview release date: Q3 of 2023.", "ThankYou!": "Thank you!", "SendBetaRequest": "Send Beta Request", "YouJoinedTheBetaTesterProgram": "You joined the ABP Studio beta tester program.",