diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/BlogArticle.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/BlogArticle.tsv
deleted file mode 100644
index b6969787..00000000
--- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/BlogArticle.tsv
+++ /dev/null
@@ -1,15 +0,0 @@
-[
- {
- "bID": 1,
- "bsubmitter": "admin",
- "btitle": "测试数据:IIS new add website ,some wrong:The requested page cannot be accessed because the related configuration data for the page is invalid.",
- "bcategory": "技术博文",
- "bcontent": "
问题:
HTTP Error 500.19 - Internal Server Error The requested page cannot be accessed because the related configuration data for the page is invalid.
Detailed Error Information:
Module IIS Web Core
Notification Unknown
Handler Not yet determined
Error Code 0x80070003
Config Error Cannot read configuration file
Config File \\?\\D:\\Projects\\...\\web.config
Requested URL http:// localhost:8080/
Physical Path
Logon Method Not yet determined
Logon User Not yet determined
Request Tracing Directory C:\\Users\\...\\TraceLogFiles\\
Config Source:
Answer:
1,find the site's application pools
2,\"Advanced Settings\" ==> Indentity ==> Custom account
",
- "btraffic": 127,
- "bcommentNum": 1,
- "bUpdateTime": "\/Date(1546272000000+0800)\/",
- "bCreateTime": "\/Date(1546272000000+0800)\/",
- "bRemark": null,
- "IsDeleted": 0
- }
-]
diff --git a/Blog.Core.Build.bat b/Blog.Core.Build.bat
index 7d614aa4..99261cb8 100644
--- a/Blog.Core.Build.bat
+++ b/Blog.Core.Build.bat
@@ -11,7 +11,7 @@ taskkill /f /pid %n%
dotnet build
-cd Blog.Core.Api
+cd Tiobon.Core.Api
diff --git a/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEvent.cs b/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEvent.cs
deleted file mode 100644
index f84842d6..00000000
--- a/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEvent.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace Blog.Core.EventBus.EventHandling
-{
- public class BlogQueryIntegrationEvent : IntegrationEvent
- {
- public string BlogId { get; private set; }
-
- public BlogQueryIntegrationEvent(string blogid)
- => BlogId = blogid;
- }
-}
diff --git a/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEventHandler.cs b/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEventHandler.cs
deleted file mode 100644
index 4e6384c2..00000000
--- a/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEventHandler.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using Blog.Core.Common;
-using Blog.Core.EventBus.EventHandling;
-using Blog.Core.IServices;
-using Microsoft.Extensions.Logging;
-using System;
-using System.Threading.Tasks;
-
-namespace Blog.Core.EventBus
-{
- public class BlogQueryIntegrationEventHandler : IIntegrationEventHandler
- {
- private readonly IBlogArticleServices _blogArticleServices;
- private readonly ILogger _logger;
-
- public BlogQueryIntegrationEventHandler(
- IBlogArticleServices blogArticleServices,
- ILogger logger)
- {
- _blogArticleServices = blogArticleServices;
- _logger = logger ?? throw new ArgumentNullException(nameof(logger));
- }
-
- public async Task Handle(BlogQueryIntegrationEvent @event)
- {
- _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, "Blog.Core", @event);
-
- ConsoleHelper.WriteSuccessLine($"----- Handling integration event: {@event.Id} at Blog.Core - ({@event})");
-
- await _blogArticleServices.QueryById(@event.BlogId.ToString());
- }
-
- }
-}
diff --git a/Blog.Core.IServices/Blog.Core.IServices.csproj b/Blog.Core.IServices/Blog.Core.IServices.csproj
deleted file mode 100644
index 20e8e658..00000000
--- a/Blog.Core.IServices/Blog.Core.IServices.csproj
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/Blog.Core.IServices/IBlogArticleServices.cs b/Blog.Core.IServices/IBlogArticleServices.cs
deleted file mode 100644
index a38826fb..00000000
--- a/Blog.Core.IServices/IBlogArticleServices.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using Blog.Core.IServices.BASE;
-using Blog.Core.Model.Models;
-using Blog.Core.Model.ViewModels;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-
-namespace Blog.Core.IServices
-{
- public interface IBlogArticleServices :IBaseServices
- {
- Task> GetBlogs();
- Task GetBlogDetails(long id);
-
- }
-
-}
diff --git a/Blog.Core.IServices/IPermissionServices.cs b/Blog.Core.IServices/IPermissionServices.cs
deleted file mode 100644
index add45dba..00000000
--- a/Blog.Core.IServices/IPermissionServices.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-using Blog.Core.IServices.BASE;
-using Blog.Core.Model.Models;
-namespace Blog.Core.IServices
-{
- public partial interface IPermissionServices : IBaseServices
- {
- }
-}
\ No newline at end of file
diff --git a/Blog.Core.Publish.Docker.Jenkins.sh b/Blog.Core.Publish.Docker.Jenkins.sh
index d82c2d2f..09747fad 100644
--- a/Blog.Core.Publish.Docker.Jenkins.sh
+++ b/Blog.Core.Publish.Docker.Jenkins.sh
@@ -1,13 +1,13 @@
dotnet restore
dotnet build
-cd Blog.Core.Api
+cd Tiobon.Core.Api
dotnet publish
echo "Successfully!!!! ^ please see the file ."
cd bin/Debug/net7.0/publish/
#rm -f appsettings.json
-#\cp -rf /var/jenkins_home/workspace/SecurityConfig/Blog.Core/appsettings.json appsettings.json
+#\cp -rf /var/jenkins_home/workspace/SecurityConfig/Tiobon.Core/appsettings.json appsettings.json
#docker stop apkcontainer
#docker rm apkcontainer
@@ -17,4 +17,4 @@ chmod 777 StopContainerImg.sh
./StopContainerImg.sh apkcontainer laozhangisphi/apkimg
docker build -t laozhangisphi/apkimg .
-docker run --name=apkcontainer -d -v /data/blogcore/appsettings.json:/app/appsettings.json -v /data/blogcore/Log/:/app/Log -v /etc/localtime:/etc/localtime -it -p 9291:9291 laozhangisphi/apkimg
\ No newline at end of file
+docker run --name=apkcontainer -d -v /data/Tioboncore/appsettings.json:/app/appsettings.json -v /data/Tioboncore/Log/:/app/Log -v /etc/localtime:/etc/localtime -it -p 9291:9291 laozhangisphi/apkimg
\ No newline at end of file
diff --git a/Blog.Core.Publish.Docker.sh b/Blog.Core.Publish.Docker.sh
index eadc23c4..2592f890 100644
--- a/Blog.Core.Publish.Docker.sh
+++ b/Blog.Core.Publish.Docker.sh
@@ -5,11 +5,11 @@ docker rm apkcontainer
# 删除镜像
docker rmi laozhangisphi/apkimg
# 切换目录
-cd /home/Blog.Core
+cd /home/Tiobon.Core
# 发布项目
-./Blog.Core.Publish.Linux.sh
+./Tiobon.Core.Publish.Linux.sh
# 进入目录
-cd /home/Blog.Core/.PublishFiles
+cd /home/Tiobon.Core/.PublishFiles
# 编译镜像
docker build -t laozhangisphi/apkimg .
# 生成容器
diff --git a/Blog.Core.Publish.Linux.sh b/Blog.Core.Publish.Linux.sh
index 7599f204..8d1bad1d 100644
--- a/Blog.Core.Publish.Linux.sh
+++ b/Blog.Core.Publish.Linux.sh
@@ -1,9 +1,9 @@
find .PublishFiles/ -type f -and ! -path '*/wwwroot/images/*' ! -name 'appsettings.*' |xargs rm -rf
dotnet build;
-rm -rf /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles;
-dotnet publish -o /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles;
-rm -rf /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles/WMBlog.db;
-# cp -r /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles ./;
-awk 'BEGIN { cmd="cp -ri /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles ./"; print "n" |cmd; }'
+rm -rf /home/Tiobon.Core/Tiobon.Core.Api/bin/Debug/.PublishFiles;
+dotnet publish -o /home/Tiobon.Core/Tiobon.Core.Api/bin/Debug/.PublishFiles;
+rm -rf /home/Tiobon.Core/Tiobon.Core.Api/bin/Debug/.PublishFiles/WMTiobon.db;
+# cp -r /home/Tiobon.Core/Tiobon.Core.Api/bin/Debug/.PublishFiles ./;
+awk 'BEGIN { cmd="cp -ri /home/Tiobon.Core/Tiobon.Core.Api/bin/Debug/.PublishFiles ./"; print "n" |cmd; }'
echo "Successfully!!!! ^ please see the file .PublishFiles";
\ No newline at end of file
diff --git a/Blog.Core.Publish.bat b/Blog.Core.Publish.bat
index cebbbf58..cfe49e73 100644
--- a/Blog.Core.Publish.bat
+++ b/Blog.Core.Publish.bat
@@ -6,13 +6,13 @@ dotnet restore
dotnet build
-cd Blog.Core.Api
+cd Tiobon.Core.Api
-dotnet publish -o ..\Blog.Core.Api\bin\Debug\net7.0\
+dotnet publish -o ..\Tiobon.Core.Api\bin\Debug\net7.0\
md ..\.PublishFiles
-xcopy ..\Blog.Core.Api\bin\Debug\net7.0\*.* ..\.PublishFiles\ /s /e
+xcopy ..\Tiobon.Core.Api\bin\Debug\net7.0\*.* ..\.PublishFiles\ /s /e
echo "Successfully!!!! ^ please see the file .PublishFiles"
diff --git a/Blog.Core.Services/AccessTrendLogServices.cs b/Blog.Core.Services/AccessTrendLogServices.cs
deleted file mode 100644
index ee9ee378..00000000
--- a/Blog.Core.Services/AccessTrendLogServices.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using Blog.Core.IRepository.Base;
-using Blog.Core.IServices;
-using Blog.Core.Model.Models;
-using Blog.Core.Services.BASE;
-
-namespace Blog.Core.Services
-{
- public partial class AccessTrendLogServices : BaseServices, IAccessTrendLogServices
- {
-
- }
-}
diff --git a/Blog.Core.Services/BlogArticleServices.cs b/Blog.Core.Services/BlogArticleServices.cs
deleted file mode 100644
index 67ea2b9e..00000000
--- a/Blog.Core.Services/BlogArticleServices.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-using AutoMapper;
-using Blog.Core.Common;
-using Blog.Core.IRepository.Base;
-using Blog.Core.IServices;
-using Blog.Core.Model.Models;
-using Blog.Core.Model.ViewModels;
-using Blog.Core.Services.BASE;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-
-namespace Blog.Core.Services
-{
- public class BlogArticleServices : BaseServices, IBlogArticleServices
- {
- IMapper _mapper;
- public BlogArticleServices(IMapper mapper)
- {
- this._mapper = mapper;
- }
- ///
- /// 获取视图博客详情信息
- ///
- ///
- ///
- public async Task GetBlogDetails(long id)
- {
- // 此处想获取上一条下一条数据,因此将全部数据list出来,有好的想法请提出
- //var bloglist = await base.Query(a => a.IsDeleted==false, a => a.bID);
- var blogArticle = (await base.Query(a => a.bID == id && a.bcategory == "技术博文")).FirstOrDefault();
-
- BlogViewModels models = null;
-
- if (blogArticle != null)
- {
- models = _mapper.Map(blogArticle);
-
- //要取下一篇和上一篇,以当前id开始,按id排序后top(2),而不用取出所有记录
- //这样在记录很多的时候也不会有多大影响
- var nextBlogs = await base.Query(a => a.bID >= id && a.IsDeleted == false && a.bcategory == "技术博文", 2, "bID");
- if (nextBlogs.Count == 2)
- {
- models.next = nextBlogs[1].btitle;
- models.nextID = nextBlogs[1].bID;
- }
- var prevBlogs = await base.Query(a => a.bID <= id && a.IsDeleted == false && a.bcategory == "技术博文", 2, "bID desc");
- if (prevBlogs.Count == 2)
- {
- models.previous = prevBlogs[1].btitle;
- models.previousID = prevBlogs[1].bID;
- }
-
- blogArticle.btraffic += 1;
- await base.Update(blogArticle, new List { "btraffic" });
- }
-
- return models;
-
- }
-
-
- ///
- /// 获取博客列表
- ///
- ///
- [Caching(AbsoluteExpiration = 10)]
- public async Task> GetBlogs()
- {
- var bloglist = await base.Query(a => a.bID > 0, a => a.bID);
-
- return bloglist;
-
- }
- }
-}
diff --git a/Blog.Core.Services/DepartmentServices.cs b/Blog.Core.Services/DepartmentServices.cs
deleted file mode 100644
index 954d0ca7..00000000
--- a/Blog.Core.Services/DepartmentServices.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using Blog.Core.IServices;
-using Blog.Core.Model.Models;
-using Blog.Core.Services.BASE;
-using Blog.Core.IRepository.Base;
-
-namespace Blog.Core.Services
-{
- ///
- /// DepartmentServices
- ///
- public class DepartmentServices : BaseServices, IDepartmentServices
- {
-
- }
-}
\ No newline at end of file
diff --git a/Blog.Core.Services/ModuleServices.cs b/Blog.Core.Services/ModuleServices.cs
deleted file mode 100644
index c27a63e8..00000000
--- a/Blog.Core.Services/ModuleServices.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using Blog.Core.IRepository.Base;
-using Blog.Core.IServices;
-using Blog.Core.Model.Models;
-using Blog.Core.Services.BASE;
-
-namespace Blog.Core.Services
-{
- ///
- /// ModuleServices
- ///
- public class ModuleServices : BaseServices, IModuleServices
- {
-
- }
-}
diff --git a/Blog.Core.Services/OperateLogServices.cs b/Blog.Core.Services/OperateLogServices.cs
deleted file mode 100644
index 6527ba95..00000000
--- a/Blog.Core.Services/OperateLogServices.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using Blog.Core.IRepository.Base;
-using Blog.Core.IServices;
-using Blog.Core.Model.Models;
-using Blog.Core.Services.BASE;
-
-namespace Blog.Core.Services
-{
- public partial class OperateLogServices : BaseServices, IOperateLogServices
- {
-
- }
-}
diff --git a/Blog.Core.Services/TasksQzServices.cs b/Blog.Core.Services/TasksQzServices.cs
deleted file mode 100644
index 68560a20..00000000
--- a/Blog.Core.Services/TasksQzServices.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using Blog.Core.IRepository.Base;
-using Blog.Core.IServices;
-using Blog.Core.Model.Models;
-using Blog.Core.Services.BASE;
-
-namespace Blog.Core.Services
-{
- public partial class TasksQzServices : BaseServices, ITasksQzServices
- {
-
- }
-}
-
\ No newline at end of file
diff --git a/Blog.Core.Services/WeChatSubServices.cs b/Blog.Core.Services/WeChatSubServices.cs
deleted file mode 100644
index 7f66dd29..00000000
--- a/Blog.Core.Services/WeChatSubServices.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using Blog.Core.Common;
-using Blog.Core.Common.Helper;
-using Blog.Core.IRepository.Base;
-using Blog.Core.IServices;
-using Blog.Core.Model;
-using Blog.Core.Model.Models;
-using Blog.Core.Model.ViewModels;
-using Blog.Core.Services.BASE;
-using Microsoft.Extensions.Logging;
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-
-namespace Blog.Core.Services
-{
- ///
- /// WeChatSubServices
- ///
- public class WeChatSubServices : BaseServices, IWeChatSubServices
- {
-
- }
-}
\ No newline at end of file
diff --git a/Blog.Core.Tasks/Blog.Core.Tasks.csproj b/Blog.Core.Tasks/Blog.Core.Tasks.csproj
deleted file mode 100644
index abc0d331..00000000
--- a/Blog.Core.Tasks/Blog.Core.Tasks.csproj
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Blog.Core.Tests/Controller_Test/BlogController_Should.cs b/Blog.Core.Tests/Controller_Test/BlogController_Should.cs
deleted file mode 100644
index 59d42ae0..00000000
--- a/Blog.Core.Tests/Controller_Test/BlogController_Should.cs
+++ /dev/null
@@ -1,179 +0,0 @@
-using Autofac;
-using Blog.Core.Controllers;
-using Blog.Core.IServices;
-using Blog.Core.Model;
-using Blog.Core.Model.Models;
-using Blog.Core.Model.ViewModels;
-using Microsoft.Extensions.Logging;
-using Moq;
-using System;
-using System.Collections.Generic;
-using Xunit;
-
-namespace Blog.Core.Tests
-{
- public class BlogController_Should
- {
- Mock mockBlogSev = new Mock();
- Mock> mockLogger = new Mock>();
- BlogController blogController;
-
- private IBlogArticleServices blogArticleServices;
- DI_Test dI_Test = new DI_Test();
-
-
-
- public BlogController_Should()
- {
- mockBlogSev.Setup(r => r.Query());
-
- var container = dI_Test.DICollections();
- blogArticleServices = container.Resolve();
- blogController = new BlogController(mockLogger.Object);
- blogController._blogArticleServices = blogArticleServices;
- }
-
- [Fact]
- public void TestEntity()
- {
- BlogArticle blogArticle = new BlogArticle();
-
- Assert.True(blogArticle.bID >= 0);
- }
-
- [Fact]
- public async void Get_Blog_Page_Test()
- {
- MessageModel> blogs = await blogController.Get(1, 1, "技术博文", "");
- Assert.NotNull(blogs);
- Assert.NotNull(blogs.response);
- Assert.True(blogs.response.dataCount >= 0);
- }
-
- [Fact]
- public async void Get_Blog_Test()
- {
- MessageModel blogVo = await blogController.Get(1.ObjToLong());
-
- Assert.NotNull(blogVo);
- }
-
- [Fact]
- public async void Get_Blog_For_Nuxt_Test()
- {
- MessageModel blogVo = await blogController.DetailNuxtNoPer(1);
-
- Assert.NotNull(blogVo);
- }
-
- [Fact]
- public async void Get_Go_Url_Test()
- {
- object urlAction = await blogController.GoUrl(1);
-
- Assert.NotNull(urlAction);
- }
-
- [Fact]
- public async void Get_Blog_By_Type_For_MVP_Test()
- {
- MessageModel> blogs = await blogController.GetBlogsByTypesForMVP("技术博文");
-
- Assert.NotNull(blogs);
- Assert.True(blogs.success);
- Assert.NotNull(blogs.response);
- Assert.True(blogs.response.Count >= 0);
- }
-
- [Fact]
- public async void Get_Blog_By_Id_For_MVP_Test()
- {
- MessageModel blog = await blogController.GetBlogByIdForMVP(1);
-
- Assert.NotNull(blog);
- Assert.True(blog.success);
- Assert.NotNull(blog.response);
- }
-
- [Fact]
- public async void PostTest()
- {
- BlogArticle blogArticle = new BlogArticle()
- {
- bCreateTime = DateTime.Now,
- bUpdateTime = DateTime.Now,
- btitle = "xuint :test controller addEntity",
- bcontent = "xuint :test controller addEntity. this is content.this is content."
- };
-
- var res = await blogController.Post(blogArticle);
-
- Assert.True(res.success);
-
- var data = res.response;
-
- Assert.NotNull(data);
- }
-
- [Fact]
- public async void Post_Insert_For_MVP_Test()
- {
- BlogArticle blogArticle = new BlogArticle()
- {
- bCreateTime = DateTime.Now,
- bUpdateTime = DateTime.Now,
- btitle = "xuint :test controller addEntity",
- bcontent = "xuint :test controller addEntity. this is content.this is content."
- };
-
- var res = await blogController.AddForMVP(blogArticle);
-
- Assert.True(res.success);
-
- var data = res.response;
-
- Assert.NotNull(data);
- }
-
- [Fact]
- public async void Put_Test()
- {
- BlogArticle blogArticle = new BlogArticle()
- {
- bID = 1,
- bCreateTime = DateTime.Now,
- bUpdateTime = DateTime.Now,
- btitle = "xuint put :test controller addEntity",
- bcontent = "xuint put :test controller addEntity. this is content.this is content."
- };
-
- var res = await blogController.Put(blogArticle);
-
- Assert.True(res.success);
-
- var data = res.response;
-
- Assert.NotNull(data);
- }
-
- [Fact]
- public async void Delete_Test()
- {
- var res = await blogController.Delete(99);
-
- Assert.False(res.success);
-
- var data = res.response;
-
- Assert.Null(data);
- }
-
- [Fact]
- public async void Apache_Update_Test()
- {
- var res = await blogController.ApacheTestUpdate();
-
- Assert.True(res.success);
- }
- }
-}
diff --git a/Blog.Core.Tests/Service_Test/BlogArticleService_Should.cs b/Blog.Core.Tests/Service_Test/BlogArticleService_Should.cs
deleted file mode 100644
index df16d174..00000000
--- a/Blog.Core.Tests/Service_Test/BlogArticleService_Should.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-using Blog.Core.IServices;
-using Blog.Core.Model.Models;
-using Xunit;
-using System;
-using System.Linq;
-using Autofac;
-
-namespace Blog.Core.Tests
-{
- public class BlogArticleService_Should
- {
-
- private IBlogArticleServices blogArticleServices;
- DI_Test dI_Test = new DI_Test();
-
-
- public BlogArticleService_Should()
- {
- //mockBlogRep.Setup(r => r.Query());
-
- var container = dI_Test.DICollections();
-
- blogArticleServices = container.Resolve();
-
- }
-
-
- [Fact]
- public void BlogArticleServices_Test()
- {
- Assert.NotNull(blogArticleServices);
- }
-
-
- [Fact]
- public async void Get_Blogs_Test()
- {
- var data = await blogArticleServices.GetBlogs();
-
- Assert.True(data.Any());
- }
-
- [Fact]
- public async void Add_Blog_Test()
- {
- BlogArticle blogArticle = new BlogArticle()
- {
- bCreateTime = DateTime.Now,
- bUpdateTime = DateTime.Now,
- btitle = "xuint test title",
- bcontent = "xuint test content",
- bsubmitter = "xuint test submitter",
- };
-
- var BId = await blogArticleServices.Add(blogArticle);
-
- Assert.True(BId > 0);
- }
-
- [Fact]
- public async void Delete_Blog_Test()
- {
- Add_Blog_Test();
-
- var deleteModel = (await blogArticleServices.Query(d => d.btitle == "xuint test title")).FirstOrDefault();
-
- Assert.NotNull(deleteModel);
-
- var IsDel = await blogArticleServices.Delete(deleteModel);
-
- Assert.True(IsDel);
- }
- }
-}
diff --git a/CreateYourProject.bat b/CreateYourProject.bat
index 9f8dcc22..088d65ef 100644
--- a/CreateYourProject.bat
+++ b/CreateYourProject.bat
@@ -3,22 +3,22 @@ echo "if u install template error,pls connect QQ:3143422472"
color 3
-dotnet new -i Blog.Core.Webapi.Template
+dotnet new -i Tiobon.Core.Webapi.Template
-set /p OP=Please set your project name(for example:BlogMicService):
+set /p OP=Please set your project name(for example:TiobonMicService):
md .1YourProject
cd .1YourProject
-dotnet new blogcoretpl -n %OP%
+dotnet new Tioboncoretpl -n %OP%
cd ../
echo "Create Successfully!!!! ^ please see the folder .1YourProject"
-dotnet new -u Blog.Core.Webapi.Template
+dotnet new -u Tiobon.Core.Webapi.Template
echo "Delete Template Successfully"
diff --git a/Dockerfile b/Dockerfile
index 15ba36e5..9662d22a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -13,28 +13,28 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
-COPY ["Blog.Core.Api/Blog.Core.Api.csproj", "Blog.Core.Api/"]
-COPY ["Blog.Core.Extensions/Blog.Core.Extensions.csproj", "Blog.Core.Extensions/"]
-COPY ["Blog.Core.EventBus/Blog.Core.EventBus.csproj", "Blog.Core.EventBus/"]
-COPY ["Blog.Core.Common/Blog.Core.Common.csproj", "Blog.Core.Common/"]
-COPY ["Blog.Core.Model/Blog.Core.Model.csproj", "Blog.Core.Model/"]
-COPY ["Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj", "Blog.Core.Serilog.Es/"]
+COPY ["Tiobon.Core.Api/Tiobon.Core.Api.csproj", "Tiobon.Core.Api/"]
+COPY ["Tiobon.Core.Extensions/Tiobon.Core.Extensions.csproj", "Tiobon.Core.Extensions/"]
+COPY ["Tiobon.Core.EventBus/Tiobon.Core.EventBus.csproj", "Tiobon.Core.EventBus/"]
+COPY ["Tiobon.Core.Common/Tiobon.Core.Common.csproj", "Tiobon.Core.Common/"]
+COPY ["Tiobon.Core.Model/Tiobon.Core.Model.csproj", "Tiobon.Core.Model/"]
+COPY ["Tiobon.Core.Serilog.Es/Tiobon.Core.Serilog.Es.csproj", "Tiobon.Core.Serilog.Es/"]
COPY ["Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj", "Ocelot.Provider.Nacos/"]
-COPY ["Blog.Core.Services/Blog.Core.Services.csproj", "Blog.Core.Services/"]
-COPY ["Blog.Core.IServices/Blog.Core.IServices.csproj", "Blog.Core.IServices/"]
-COPY ["Blog.Core.Repository/Blog.Core.Repository.csproj", "Blog.Core.Repository/"]
-COPY ["Blog.Core.Tasks/Blog.Core.Tasks.csproj", "Blog.Core.Tasks/"]
+COPY ["Tiobon.Core.Services/Tiobon.Core.Services.csproj", "Tiobon.Core.Services/"]
+COPY ["Tiobon.Core.IServices/Tiobon.Core.IServices.csproj", "Tiobon.Core.IServices/"]
+COPY ["Tiobon.Core.Repository/Tiobon.Core.Repository.csproj", "Tiobon.Core.Repository/"]
+COPY ["Tiobon.Core.Tasks/Tiobon.Core.Tasks.csproj", "Tiobon.Core.Tasks/"]
COPY ["build", "build/"]
-RUN dotnet restore "Blog.Core.Api/Blog.Core.Api.csproj"
+RUN dotnet restore "Tiobon.Core.Api/Tiobon.Core.Api.csproj"
COPY . .
-WORKDIR "/src/Blog.Core.Api"
-RUN dotnet build "Blog.Core.Api.csproj" -c Release -o /app/build
+WORKDIR "/src/Tiobon.Core.Api"
+RUN dotnet build "Tiobon.Core.Api.csproj" -c Release -o /app/build
FROM build AS publish
-RUN dotnet publish "Blog.Core.Api.csproj" -c Release -o /app/publish /p:UseAppHost=false
+RUN dotnet publish "Tiobon.Core.Api.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
EXPOSE 9291
-ENTRYPOINT ["dotnet", "Blog.Core.Api.dll"]
+ENTRYPOINT ["dotnet", "Tiobon.Core.Api.dll"]
diff --git a/README.md b/README.md
index df9f989d..d8341a0a 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
-# Blog.Core
+# Tiobon.Core
[English](README-en.md) | 简体中文
-[](#) [](https://github.com/anjoy8/Blog.Core/actions) [](https://dev.azure.com/laozhangisphi/anjoy8/_build?definitionId=1) [](https://codecov.io/gh/anjoy8/Blog.Core) [](https://github.com/anjoy8/Blog.Core/blob/master/LICENSE) [](https://github.com/boennemann/badges) [](https://github.com/boennemann/badges/fork) [](https://www.cnblogs.com/laozhang-is-phi/)
+[](#) [](https://github.com/anjoy8/Tiobon.Core/actions) [](https://dev.azure.com/laozhangisphi/anjoy8/_build?definitionId=1) [](https://codecov.io/gh/anjoy8/Tiobon.Core) [](https://github.com/anjoy8/Tiobon.Core/blob/master/LICENSE) [](https://github.com/boennemann/badges) [](https://github.com/boennemann/badges/fork) [](https://www.cnTiobons.com/laozhang-is-phi/)
@@ -20,14 +20,14 @@
-------------------------------
-Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x + RBAC】权限框架。
+Tiobon.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x + RBAC】权限框架。
其他版本看具体分支吧🎉
官网:http://apk.neters.club/.doc/
---------------------
-**已被近100家公司所使用(🐱🚀):[点击查看列表](https://github.com/anjoy8/Blog.Core/issues/75)** 欢迎盖楼,留下公司真实名字的,可得定制化指导服务。
+**已被近100家公司所使用(🐱🚀):[点击查看列表](https://github.com/anjoy8/Tiobon.Core/issues/75)** 欢迎盖楼,留下公司真实名字的,可得定制化指导服务。
同时如果企业有付费咨询,欢迎联系老张(QQ:3143422472)。
@@ -38,7 +38,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x
如果搭配负载,效果更好。
1、A~CoderDong:
-应用场景:使用Blog.Core为基础骨架开发,搭建Client监控类守护进程项目,To C 客户群,
+应用场景:使用Tiobon.Core为基础骨架开发,搭建Client监控类守护进程项目,To C 客户群,
并发情况:目前压测并发5k正常8秒处理完,并发10k可15秒处理完毕,异常不会丢失。
生产配置:一台服务器(Linux环境 + 至强8核的16G内存 + mysql数据库 + 3台Nginx负载)
@@ -50,7 +50,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x
## 给个星星! ⭐️
如果你喜欢这个项目或者它帮助你, 请给 Star~
-如果你的项目中借鉴了本项目,请稍微说明下[https://github.com/anjoy8/Blog.Core/issues/75](https://github.com/anjoy8/Blog.Core/issues/75),开源不易✨。
+如果你的项目中借鉴了本项目,请稍微说明下[https://github.com/anjoy8/Tiobon.Core/issues/75](https://github.com/anjoy8/Tiobon.Core/issues/75),开源不易✨。
@@ -66,7 +66,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x
- [x] 增加用户黑名单功能(必须配置Redis);
- [x] 增加岗位功能(单独建表),配合部门使用;
- [ ] 后期优化站内通知功能,其实目前已经有SignalR来实现消息推送了,可以直接用;
-- [ ] 前端`Blog.Admin.Pro`使用`AntDesignVue`框架(设计中,未完全实现);
+- [ ] 前端`Tiobon.Admin.Pro`使用`AntDesignVue`框架(设计中,未完全实现);
- [x] 铁粉奖励:如果参与上述功能和其他付费功能开发,可半价获取商业授权;
@@ -86,8 +86,8 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x
- [x] 设计并支持按钮级别的RBAC权限控制,同时支持一键同步接口和菜单 🎶;
- [x] 支持 T4 代码模板,自动生成每层代码;
- [x] 或使用 DbFirst 一键创建自己项目的四层文件(支持多库);
-- [x] 封装`Blog.Core.Webapi.Template`项目模板,一键重建自己的项目 ✨;
-- [x] 搭配多个前端案例供参考和借鉴:Blog.Vue、Blog.Admin、Nuxt.tbug、Blog.Mvp.Blazor ✨;
+- [x] 封装`Tiobon.Core.Webapi.Template`项目模板,一键重建自己的项目 ✨;
+- [x] 搭配多个前端案例供参考和借鉴:Tiobon.Vue、Tiobon.Admin、Nuxt.tbug、Tiobon.Mvp.Blazor ✨;
- [x] 统一集成 IdentityServer4 认证 ✨;
- [x] 统一实现多租户;
- [x] 实现分表案例,支持分表的增删改查哈分页查询,具体查看SplitDemoController.cs;
@@ -115,7 +115,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x
- [x] 新增 - ES 搜索配置;
- [x] 新增 - Apollo 配置;
- [x] 新增 Kafka 消息队列,并配合实现EventBus ✨;
-- [x] 新增 微信公众号管理,并集成到Blog.Admin后台 ✨;
+- [x] 新增 微信公众号管理,并集成到Tiobon.Admin后台 ✨;
- [x] 新增 - 数据部门权限;
- [x] 新增 - Serilog 集成日志数据持久化到数据库;
- [x] 新增 - 多租户模式(单表,多表,多库三种模式);
@@ -132,7 +132,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x
### 核心业务模块
#### 框架采用泛型仓储模式,以下几层为核心层,不可删除
-`Blog.Core.Api`、`Blog.Core.Common`、`Blog.Core.IServices`、`Blog.Core.Model`、`Blog.Core.Repository`、`Blog.Core.Services`、`Blog.Core.Tasks`、`Blog.Core.Serilog`
+`Tiobon.Core.Api`、`Tiobon.Core.Common`、`Tiobon.Core.IServices`、`Tiobon.Core.Model`、`Tiobon.Core.Repository`、`Tiobon.Core.Services`、`Tiobon.Core.Tasks`、`Tiobon.Core.Serilog`
其他代码分层是支撑层,如果自己业务涉及不到,可以删除。
#### API接口层主要是基于RBAC的基于按钮级别的角色授权逻辑,以下几个Controller,不可删除
@@ -154,15 +154,15 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x
## 贡献者们
-Thanks goes to these wonderful people ([✨](https://github.com/anjoy8/Blog.Core/graphs/contributors)):(排名暂时按提交顺序)
+Thanks goes to these wonderful people ([✨](https://github.com/anjoy8/Tiobon.Core/graphs/contributors)):(排名暂时按提交顺序)
-
-
+
+
-This project follows the [all-contributors](https://github.com/anjoy8/Blog.Core/graphs/contributors) specification.
+This project follows the [all-contributors](https://github.com/anjoy8/Tiobon.Core/graphs/contributors) specification.
Contributions of any kind are welcome!
@@ -201,8 +201,8 @@ Contributions of any kind are welcome!
|个人博客Vue版本|tBug项目Nuxt版本|VueAdmin权限管理后台|
|-|-|-|
-|[https://github.com/anjoy8/Blog.Vue](https://github.com/anjoy8/Blog.Vue)|[https://github.com/anjoy8/Nuxt.tBug](https://github.com/anjoy8/Nuxt.tBug)|[https://github.com/anjoy8/Blog.Admin](https://github.com/anjoy8/Blog.Admin)|
-|[http://vueblog.neters.club](http://vueblog.neters.club)|[http://tibug.neters.club](http://tibug.neters.club)|[http://vueadmin.neters.club](http://vueadmin.neters.club)|
+|[https://github.com/anjoy8/Tiobon.Vue](https://github.com/anjoy8/Tiobon.Vue)|[https://github.com/anjoy8/Nuxt.tBug](https://github.com/anjoy8/Nuxt.tBug)|[https://github.com/anjoy8/Tiobon.Admin](https://github.com/anjoy8/Tiobon.Admin)|
+|[http://vueTiobon.neters.club](http://vueTiobon.neters.club)|[http://tibug.neters.club](http://tibug.neters.club)|[http://vueadmin.neters.club](http://vueadmin.neters.club)|
@@ -222,10 +222,10 @@ Contributions of any kind are welcome!
| Package | NuGet Stable | Downloads |
| ------- | -------- | ------- |
-| [Blog.Core.Webapi.Template](https://www.nuget.org/packages/Blog.Core.Webapi.Template/) | [](https://www.nuget.org/packages/Blog.Core.Webapi.Template/) | [](https://www.nuget.org/packages/Blog.Core.Webapi.Template/) |
+| [Tiobon.Core.Webapi.Template](https://www.nuget.org/packages/Tiobon.Core.Webapi.Template/) | [](https://www.nuget.org/packages/Tiobon.Core.Webapi.Template/) | [](https://www.nuget.org/packages/Tiobon.Core.Webapi.Template/) |
-关于如何使用,点击这里:https://www.cnblogs.com/laozhang-is-phi/p/10205495.html
+关于如何使用,点击这里:https://www.cnTiobons.com/laozhang-is-phi/p/10205495.html
@@ -236,8 +236,8 @@ Contributions of any kind are welcome!
|单层项目|简单仓储框架|仓储+服务+接口|DDD框架|
|-|-|-|-|
|CURD+Seed|CURD+Seed+DI|CURD+Seed+DI+AOP等|DDD+EFCore+DI+EventBus等|
-|[NetCore-Sugar-Demo](https://github.com/anjoy8/NetCore-Sugar-Demo)|[Blog.SplRepository.Demo](https://github.com/anjoy8/Blog.SplRepository.Demo)|[Blog.Core](https://github.com/anjoy8/Blog.Core)|[ChristDDD](https://github.com/anjoy8/ChristDDD)|
-| -|[Blog-EFCore-Sqlite](https://github.com/anjoy8/Blog-EFCore-Sqlite)|- | -|
+|[NetCore-Sugar-Demo](https://github.com/anjoy8/NetCore-Sugar-Demo)|[Tiobon.SplRepository.Demo](https://github.com/anjoy8/Tiobon.SplRepository.Demo)|[Tiobon.Core](https://github.com/anjoy8/Tiobon.Core)|[ChristDDD](https://github.com/anjoy8/ChristDDD)|
+| -|[Tiobon-EFCore-Sqlite](https://github.com/anjoy8/Tiobon-EFCore-Sqlite)|- | -|
@@ -260,7 +260,7 @@ Contributions of any kind are welcome!
*****************************************************
### 文章+视频+直播
-博客园:https://www.cnblogs.com/laozhang-is-phi/
+博客园:https://www.cnTiobons.com/laozhang-is-phi/
Bilibili:https://space.bilibili.com/387802716
@@ -272,7 +272,7 @@ Contributions of any kind are welcome!
-如果你感觉看着这整个项目比较费劲,我单抽出来了几个子Demo,方便学习,项目地址 :[https://github.com/anjoy8/BlogArti](https://github.com/anjoy8/BlogArti)
+如果你感觉看着这整个项目比较费劲,我单抽出来了几个子Demo,方便学习,项目地址 :[https://github.com/anjoy8/TiobonArti](https://github.com/anjoy8/TiobonArti)
diff --git a/Blog.Core.Api/.config/dotnet-tools.json b/Tiobon.Core.Api/.config/dotnet-tools.json
similarity index 100%
rename from Blog.Core.Api/.config/dotnet-tools.json
rename to Tiobon.Core.Api/.config/dotnet-tools.json
diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Tiobon.Core.Api/Blog.Core.Model.xml
similarity index 56%
rename from Blog.Core.Api/Blog.Core.Model.xml
rename to Tiobon.Core.Api/Blog.Core.Model.xml
index 8de49a7b..b162395e 100644
--- a/Blog.Core.Api/Blog.Core.Model.xml
+++ b/Tiobon.Core.Api/Blog.Core.Model.xml
@@ -1,149 +1,149 @@
- Blog.Core.Model
+ Tiobon.Core.Model
-
+
无任何权限
-
+
自定义权限
-
+
本部门
-
+
本部门及以下
-
+
仅自己
-
+
所有
-
+
以下model 来自ids4项目,多库模式,为了调取ids4数据
角色表
-
+
排序
-
+
是否激活
-
+
创建ID
-
+
创建者
-
+
创建时间
-
+
修改ID
-
+
修改者
-
+
修改时间
-
+
以下model 来自ids4项目,多库模式,为了调取ids4数据
用户表
-
+
这是爱
-
+
id
-
+
姓名
-
+
年龄
-
+
通用返回信息类
-
+
状态码
-
+
操作是否成功
-
+
返回信息
-
+
开发者信息
-
+
返回数据集合
-
+
返回成功
消息
-
+
返回成功
@@ -151,14 +151,14 @@
数据
-
+
返回失败
消息
-
+
返回失败
@@ -166,7 +166,7 @@
数据
-
+
返回消息
@@ -175,723 +175,723 @@
数据
-
+
状态码
-
+
操作是否成功
-
+
返回信息
-
+
返回数据集合
-
+
用户访问趋势日志
-
+
用户
-
+
次数
-
+
更新时间
-
+
广告图片
-
+
广告标题
-
+
广告链接
-
+
备注
-
+
创建时间
-
+
博客文章
-
+
主键
这里之所以没用RootEntity,是想保持和之前的数据库一致,主键是bID,不是Id
-
+
创建人
-
+
- 标题blog
+ 标题Tiobon
-
+
类别
-
+
内容
-
+
访问量
-
+
评论数量
-
+
修改时间
-
+
创建时间
-
+
备注
-
+
逻辑删除
-
+
评论
-
+
博客文章 评论
-
+
部门表
-
+
Desc:部门关系编码
Default:
Nullable:True
-
+
Desc:部门名称
Default:
Nullable:True
-
+
Desc:负责人
Default:
Nullable:True
-
+
Desc:排序
Default:
Nullable:True
-
+
Desc:部门状态(0正常 1停用)
Default:0
Nullable:True
-
+
Desc:删除标志(0代表存在 2代表删除)
Default:0
Nullable:True
-
+
Desc:创建者
Default:
Nullable:True
-
+
Desc:创建时间
Default:
Nullable:True
-
+
Desc:更新者
Default:
Nullable:True
-
+
Desc:更新时间
Default:
Nullable:True
-
+
用户团队表
-
+
ID
-
+
HttpContext.TraceIdentifier 事件链路ID(获取或设置一个唯一标识符,用于在跟踪日志中表示此请求。)
-
+
时间
-
+
线程
-
+
等级
-
+
记录器
-
+
日志类型
-
+
数据类型
-
+
错误信息
-
+
异常
-
+
博客ID
-
+
创建时间
-
+
手机
-
+
qq
-
+
留言内容
-
+
ip地址
-
+
是否显示在前台,0否1是
-
+
接口API地址信息表
-
+
获取或设置是否禁用,逻辑上的删除,非物理删除
-
+
名称
-
+
菜单链接地址
-
+
区域名称
-
+
控制器名称
-
+
Action名称
-
+
图标
-
+
菜单编号
-
+
排序
-
+
/描述
-
+
是否是右侧菜单
-
+
是否激活
-
+
创建ID
-
+
创建者
-
+
创建时间
-
+
修改ID
-
+
修改者
-
+
修改时间
-
+
日志记录
-
+
获取或设置是否禁用,逻辑上的删除,非物理删除
-
+
区域名
-
+
区域控制器名
-
+
Action名称
-
+
IP地址
-
+
描述
-
+
登录时间
-
+
登录名称
-
+
用户ID
-
+
密码库表
-
+
获取或设置是否禁用,逻辑上的删除,非物理删除
-
+
路由菜单表
-
+
菜单执行Action名
-
+
菜单显示名(如用户页、编辑(按钮)、删除(按钮))
-
+
是否是按钮
-
+
是否是隐藏菜单
-
+
是否keepAlive
-
+
按钮事件
-
+
排序
-
+
菜单图标
-
+
菜单描述
-
+
激活状态
-
+
创建ID
-
+
创建者
-
+
创建时间
-
+
修改ID
-
+
修改者
-
+
修改时间
-
+
获取或设置是否禁用,逻辑上的删除,非物理删除
-
+
角色表
-
+
获取或设置是否禁用,逻辑上的删除,非物理删除
-
+
角色名
-
+
描述
-
+
排序
-
+
自定义权限的部门ids
-
+
权限范围
-1 无任何权限;1 自定义权限;2 本部门;3 本部门及以下;4 仅自己;9 全部;
-
+
是否激活
-
+
创建ID
-
+
创建者
-
+
创建时间
-
+
修改ID
-
+
修改者
-
+
修改时间
-
+
按钮跟权限关联表
-
+
获取或设置是否禁用,逻辑上的删除,非物理删除
-
+
创建ID
-
+
创建者
-
+
创建时间
-
+
修改ID
-
+
修改者
-
+
修改时间
-
+
状态
中立字段,某些表可使用某些表不使用
-
+
中立字段,某些表可使用某些表不使用
逻辑上的删除,非物理删除
例如:单据删除并非直接删除
-
+
中立字段
是否内置数据
-
+
创建ID
-
+
创建者
-
+
创建时间
-
+
修改ID
-
+
更新者
-
+
修改日期
-
+
数据版本
-
+
软删除 过滤器
-
+
系统租户表
根据TenantType 分为两种方案:
@@ -904,1592 +904,1592 @@
使用租户Id方案,无需配置分库的连接
-
+
名称
-
+
租户类型
-
+
数据库/租户标识 不可重复
使用Id方案,可无需配置
-
+
主机
使用Id方案,可无需配置
-
+
数据库类型
使用Id方案,可无需配置
-
+
数据库连接
使用Id方案,可无需配置
-
+
状态
-
+
备注
-
+
用户信息表
-
+
登录账号
-
+
登录密码
-
+
真实姓名
-
+
状态
-
+
部门
-
+
备注
-
+
创建时间
-
+
更新时间
-
+
关键业务修改时间
-
+
最后异常时间
-
+
错误次数
-
+
登录账号
-
+
租户Id
-
+
任务日志表
-
+
任务ID
-
+
任务耗时
-
+
执行结果(0-失败 1-成功)
-
+
运行时间
-
+
结束时间
-
+
执行参数
-
+
异常信息
-
+
异常堆栈
-
+
创建ID
-
+
创建者
-
+
创建时间
-
+
修改ID
-
+
修改者
-
+
修改时间
-
+
任务名称
-
+
任务分组
-
+
任务计划表
-
+
任务名称
-
+
任务分组
-
+
任务运行时间表达式
-
+
任务所在DLL对应的程序集名称
-
+
任务所在类
-
+
任务描述
-
+
执行次数
-
+
开始时间
-
+
结束时间
-
+
触发器类型(0、simple 1、cron)
-
+