命名空间变更

master
xiaochanghai 1 year ago
parent 9c4f8adccb
commit 0e5b2564c9
  1. 15
      Blog.Core.Api/wwwroot/BlogCore.Data.json/BlogArticle.tsv
  2. 2
      Blog.Core.Build.bat
  3. 10
      Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEvent.cs
  4. 33
      Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEventHandler.cs
  5. 10
      Blog.Core.IServices/Blog.Core.IServices.csproj
  6. 16
      Blog.Core.IServices/IBlogArticleServices.cs
  7. 8
      Blog.Core.IServices/IPermissionServices.cs
  8. 6
      Blog.Core.Publish.Docker.Jenkins.sh
  9. 6
      Blog.Core.Publish.Docker.sh
  10. 10
      Blog.Core.Publish.Linux.sh
  11. 6
      Blog.Core.Publish.bat
  12. 12
      Blog.Core.Services/AccessTrendLogServices.cs
  13. 75
      Blog.Core.Services/BlogArticleServices.cs
  14. 15
      Blog.Core.Services/DepartmentServices.cs
  15. 15
      Blog.Core.Services/ModuleServices.cs
  16. 12
      Blog.Core.Services/OperateLogServices.cs
  17. 13
      Blog.Core.Services/TasksQzServices.cs
  18. 23
      Blog.Core.Services/WeChatSubServices.cs
  19. 15
      Blog.Core.Tasks/Blog.Core.Tasks.csproj
  20. 179
      Blog.Core.Tests/Controller_Test/BlogController_Should.cs
  21. 74
      Blog.Core.Tests/Service_Test/BlogArticleService_Should.cs
  22. 8
      CreateYourProject.bat
  23. 30
      Dockerfile
  24. 46
      README.md
  25. 0
      Tiobon.Core.Api/.config/dotnet-tools.json
  26. 1322
      Tiobon.Core.Api/Blog.Core.Model.xml
  27. 488
      Tiobon.Core.Api/Blog.Core.xml
  28. 4
      Tiobon.Core.Api/Controllers/BaseApiController.cs
  29. 136
      Tiobon.Core.Api/Controllers/BlogController.cs
  30. 10
      Tiobon.Core.Api/Controllers/DbFirst/DbFirstController.cs
  31. 40
      Tiobon.Core.Api/Controllers/DbFirst/MigrateController.cs
  32. 14
      Tiobon.Core.Api/Controllers/DepartmentController.cs
  33. 2
      Tiobon.Core.Api/Controllers/HealthCheckController.cs
  34. 6
      Tiobon.Core.Api/Controllers/ImgController.cs
  35. 16
      Tiobon.Core.Api/Controllers/LoginController.cs
  36. 10
      Tiobon.Core.Api/Controllers/ModuleController.cs
  37. 18
      Tiobon.Core.Api/Controllers/MonitorController.cs
  38. 8
      Tiobon.Core.Api/Controllers/NacosController.cs
  39. 8
      Tiobon.Core.Api/Controllers/PayController.cs
  40. 20
      Tiobon.Core.Api/Controllers/PermissionController.cs
  41. 10
      Tiobon.Core.Api/Controllers/RoleController.cs
  42. 6
      Tiobon.Core.Api/Controllers/SignalRTestController.cs
  43. 10
      Tiobon.Core.Api/Controllers/SplitDemoController.cs
  44. 8
      Tiobon.Core.Api/Controllers/Systems/CacheManageController.cs
  45. 16
      Tiobon.Core.Api/Controllers/Systems/DataBaseController.cs
  46. 10
      Tiobon.Core.Api/Controllers/Systems/DynamicCodeFirstController.cs
  47. 16
      Tiobon.Core.Api/Controllers/TasksQzController.cs
  48. 12
      Tiobon.Core.Api/Controllers/Tenant/TenantByDbController.cs
  49. 12
      Tiobon.Core.Api/Controllers/Tenant/TenantByIdController.cs
  50. 12
      Tiobon.Core.Api/Controllers/Tenant/TenantByTableController.cs
  51. 10
      Tiobon.Core.Api/Controllers/Tenant/TenantManagerController.cs
  52. 8
      Tiobon.Core.Api/Controllers/TopicController.cs
  53. 10
      Tiobon.Core.Api/Controllers/TopicDetailController.cs
  54. 12
      Tiobon.Core.Api/Controllers/TransactionController.cs
  55. 18
      Tiobon.Core.Api/Controllers/UserController.cs
  56. 10
      Tiobon.Core.Api/Controllers/UserRoleController.cs
  57. 94
      Tiobon.Core.Api/Controllers/ValuesController.cs
  58. 8
      Tiobon.Core.Api/Controllers/WeChatCompanyController.cs
  59. 8
      Tiobon.Core.Api/Controllers/WeChatConfigController.cs
  60. 8
      Tiobon.Core.Api/Controllers/WeChatController.cs
  61. 8
      Tiobon.Core.Api/Controllers/WeChatPushLogController.cs
  62. 8
      Tiobon.Core.Api/Controllers/WeChatSubController.cs
  63. 6
      Tiobon.Core.Api/Controllers/v1/ApbController.cs
  64. 6
      Tiobon.Core.Api/Controllers/v2/ApbController.cs
  65. 2
      Tiobon.Core.Api/Dockerfile
  66. 2
      Tiobon.Core.Api/Filter/AutofacPropertityModuleReg.cs
  67. 4
      Tiobon.Core.Api/Filter/CustomRouteAttribute.cs
  68. 2
      Tiobon.Core.Api/Filter/GlobalAuthorizeFilter.cs
  69. 12
      Tiobon.Core.Api/Filter/GlobalExceptionFilter.cs
  70. 2
      Tiobon.Core.Api/Filter/GlobalRoutePrefixFilter.cs
  71. 12
      Tiobon.Core.Api/Filter/UseServiceDIAttribute.cs
  72. 2
      Tiobon.Core.Api/Filter/UserRegisterVo.cs
  73. 24
      Tiobon.Core.Api/Program.cs
  74. 4
      Tiobon.Core.Api/Program.five.cs
  75. 2
      Tiobon.Core.Api/Properties/launchSettings.json
  76. 0
      Tiobon.Core.Api/StopContainerImg.sh
  77. 38
      Tiobon.Core.Api/Tiobon.Core.Api.csproj
  78. 3402
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  79. 1588
      Tiobon.Core.Api/Tiobon.Core.xml
  80. 2
      Tiobon.Core.Api/appsettings.Development.json
  81. 2
      Tiobon.Core.Api/appsettings.apollo.json
  82. 60
      Tiobon.Core.Api/appsettings.json
  83. 0
      Tiobon.Core.Api/index.html
  84. 2
      Tiobon.Core.Api/skyapm.json
  85. 4
      Tiobon.Core.Api/web.config
  86. 0
      Tiobon.Core.Api/wwwroot/BlogCore.Data.excel/Department.xlsx
  87. 0
      Tiobon.Core.Api/wwwroot/BlogCore.Data.excel/Modules.xlsx
  88. 0
      Tiobon.Core.Api/wwwroot/BlogCore.Data.excel/Permission.xlsx
  89. 0
      Tiobon.Core.Api/wwwroot/BlogCore.Data.excel/Role.xlsx
  90. 0
      Tiobon.Core.Api/wwwroot/BlogCore.Data.excel/RoleModulePermission.xlsx
  91. 0
      Tiobon.Core.Api/wwwroot/BlogCore.Data.excel/SysUserInfo.xlsx
  92. 0
      Tiobon.Core.Api/wwwroot/BlogCore.Data.excel/UserRole.xlsx
  93. 15
      Tiobon.Core.Api/wwwroot/BlogCore.Data.json/BlogArticle.tsv
  94. 0
      Tiobon.Core.Api/wwwroot/BlogCore.Data.json/Department.tsv
  95. 20
      Tiobon.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv
  96. 20
      Tiobon.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv
  97. 2
      Tiobon.Core.Api/wwwroot/BlogCore.Data.json/Role.tsv
  98. 452
      Tiobon.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv
  99. 4
      Tiobon.Core.Api/wwwroot/BlogCore.Data.json/TasksQz.tsv
  100. 0
      Tiobon.Core.Api/wwwroot/BlogCore.Data.json/Topic.tsv
  101. Some files were not shown because too many files have changed in this diff Show More

@ -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": " <p>问题:</p><h1><a href=\"https://www.cnblogs.com/yipeng-yu/p/6210380.html\">The requested page cannot be accessed because the related configuration data for the page is invalid.</a></h1><p>HTTP Error 500.19 - Internal Server Error The requested page cannot be accessed because the related configuration data for the page is invalid.</p><p>Detailed Error Information:</p><p>Module IIS Web Core</p><p>Notification Unknown</p><p>Handler Not yet determined</p><p>Error Code 0x80070003</p><p>Config Error Cannot read configuration file</p><p>Config File \\?\\D:\\Projects\\...\\web.config</p><p>Requested URL http:// localhost:8080/</p><p>Physical Path</p><p>Logon Method Not yet determined</p><p>Logon User Not yet determined</p><p>Request Tracing Directory C:\\Users\\...\\TraceLogFiles\\</p><p>Config Source:</p><p>Answer:</p><p>1,find the site's application pools</p><p>2,\"Advanced Settings\" ==&gt; Indentity ==&gt;&nbsp; Custom account</p><p><br></p><p><br></p>",
"btraffic": 127,
"bcommentNum": 1,
"bUpdateTime": "\/Date(1546272000000+0800)\/",
"bCreateTime": "\/Date(1546272000000+0800)\/",
"bRemark": null,
"IsDeleted": 0
}
]
unable to load file from head commit

@ -11,7 +11,7 @@ taskkill /f /pid %n%
dotnet build
cd Blog.Core.Api
cd Tiobon.Core.Api

@ -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;
}
}

@ -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<BlogQueryIntegrationEvent>
{
private readonly IBlogArticleServices _blogArticleServices;
private readonly ILogger<BlogQueryIntegrationEventHandler> _logger;
public BlogQueryIntegrationEventHandler(
IBlogArticleServices blogArticleServices,
ILogger<BlogQueryIntegrationEventHandler> 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());
}
}
}

@ -1,10 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\build\common.targets" />
<ItemGroup>
<ProjectReference Include="..\Blog.Core.Common\Blog.Core.Common.csproj" />
<ProjectReference Include="..\Blog.Core.Model\Blog.Core.Model.csproj" />
</ItemGroup>
</Project>

@ -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<BlogArticle>
{
Task<List<BlogArticle>> GetBlogs();
Task<BlogViewModels> GetBlogDetails(long id);
}
}

@ -1,8 +0,0 @@
using Blog.Core.IServices.BASE;
using Blog.Core.Model.Models;
namespace Blog.Core.IServices
{
public partial interface IPermissionServices : IBaseServices<Permission>
{
}
}

@ -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
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

@ -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 .
# 生成容器

@ -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";

@ -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"

@ -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<AccessTrendLog>, IAccessTrendLogServices
{
}
}

@ -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<BlogArticle>, IBlogArticleServices
{
IMapper _mapper;
public BlogArticleServices(IMapper mapper)
{
this._mapper = mapper;
}
/// <summary>
/// 获取视图博客详情信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public async Task<BlogViewModels> 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<BlogViewModels>(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<string> { "btraffic" });
}
return models;
}
/// <summary>
/// 获取博客列表
/// </summary>
/// <returns></returns>
[Caching(AbsoluteExpiration = 10)]
public async Task<List<BlogArticle>> GetBlogs()
{
var bloglist = await base.Query(a => a.bID > 0, a => a.bID);
return bloglist;
}
}
}

@ -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
{
/// <summary>
/// DepartmentServices
/// </summary>
public class DepartmentServices : BaseServices<Department>, IDepartmentServices
{
}
}

@ -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
{
/// <summary>
/// ModuleServices
/// </summary>
public class ModuleServices : BaseServices<Modules>, IModuleServices
{
}
}

@ -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<OperateLog>, IOperateLogServices
{
}
}

@ -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<TasksQz>, ITasksQzServices
{
}
}

@ -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
{
/// <summary>
/// WeChatSubServices
/// </summary>
public class WeChatSubServices : BaseServices<WeChatSub>, IWeChatSubServices
{
}
}

@ -1,15 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\build\common.targets" />
<ItemGroup>
<PackageReference Include="Quartz" Version="3.7.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Blog.Core.Common\Blog.Core.Common.csproj" />
<ProjectReference Include="..\Blog.Core.IServices\Blog.Core.IServices.csproj" />
<ProjectReference Include="..\Blog.Core.Repository\Blog.Core.Repository.csproj" />
</ItemGroup>
</Project>

@ -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<IBlogArticleServices> mockBlogSev = new Mock<IBlogArticleServices>();
Mock<ILogger<BlogController>> mockLogger = new Mock<ILogger<BlogController>>();
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<IBlogArticleServices>();
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<PageModel<BlogArticle>> 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<BlogViewModels> blogVo = await blogController.Get(1.ObjToLong());
Assert.NotNull(blogVo);
}
[Fact]
public async void Get_Blog_For_Nuxt_Test()
{
MessageModel<BlogViewModels> 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<List<BlogArticle>> 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<BlogArticle> 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);
}
}
}

@ -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<IBlogArticleServices>();
}
[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);
}
}
}

@ -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"

@ -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"]

@ -1,10 +1,10 @@
<img align="right" height="50px" src="http://apk.neters.club/logocore.png">
# Blog.Core
# Tiobon.Core
[English](README-en.md) | 简体中文
[![sdk](https://img.shields.io/badge/sdk-6.0.1-d.svg)](#) [![Build status](https://github.com/anjoy8/blog.core/workflows/.NET%20Core/badge.svg)](https://github.com/anjoy8/Blog.Core/actions) [![Build Status](https://dev.azure.com/laozhangisphi/anjoy8/_apis/build/status/anjoy8.Blog.Core?branchName=master)](https://dev.azure.com/laozhangisphi/anjoy8/_build?definitionId=1) [![codecov](https://codecov.io/gh/anjoy8/Blog.Core/branch/master/graph/badge.svg)](https://codecov.io/gh/anjoy8/Blog.Core) [![License MIT](https://img.shields.io/badge/license-Apache-blue.svg?style=flat-square)](https://github.com/anjoy8/Blog.Core/blob/master/LICENSE) [![star this repo](http://githubbadges.com/star.svg?user=anjoy8&repo=blog.core&style=flat)](https://github.com/boennemann/badges) [![fork this repo](http://githubbadges.com/fork.svg?user=anjoy8&repo=blog.core&style=flat)](https://github.com/boennemann/badges/fork) [![博客园](https://img.shields.io/badge/博客园-老张的哲学-brightgreen.svg)](https://www.cnblogs.com/laozhang-is-phi/)
[![sdk](https://img.shields.io/badge/sdk-6.0.1-d.svg)](#) [![Build status](https://github.com/anjoy8/Tiobon.core/workflows/.NET%20Core/badge.svg)](https://github.com/anjoy8/Tiobon.Core/actions) [![Build Status](https://dev.azure.com/laozhangisphi/anjoy8/_apis/build/status/anjoy8.Tiobon.Core?branchName=master)](https://dev.azure.com/laozhangisphi/anjoy8/_build?definitionId=1) [![codecov](https://codecov.io/gh/anjoy8/Tiobon.Core/branch/master/graph/badge.svg)](https://codecov.io/gh/anjoy8/Tiobon.Core) [![License MIT](https://img.shields.io/badge/license-Apache-blue.svg?style=flat-square)](https://github.com/anjoy8/Tiobon.Core/blob/master/LICENSE) [![star this repo](http://githubbadges.com/star.svg?user=anjoy8&repo=Tiobon.core&style=flat)](https://github.com/boennemann/badges) [![fork this repo](http://githubbadges.com/fork.svg?user=anjoy8&repo=Tiobon.core&style=flat)](https://github.com/boennemann/badges/fork) [![博客园](https://img.shields.io/badge/博客园-老张的哲学-brightgreen.svg)](https://www.cnTiobons.com/laozhang-is-phi/)
&nbsp;
@ -20,14 +20,14 @@
</div>
-------------------------------
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)):(排名暂时按提交顺序)
<a href="https://github.com/anjoy8/blog.core/graphs/contributors">
<img src="https://contrib.rocks/image?repo=anjoy8/blog.core" />
<a href="https://github.com/anjoy8/Tiobon.core/graphs/contributors">
<img src="https://contrib.rocks/image?repo=anjoy8/Tiobon.core" />
</a>
<!-- prettier-ignore-end -->
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!
&nbsp;
@ -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/) | [![Blog.Core.Webapi.Template](https://img.shields.io/nuget/v/Blog.Core.Webapi.Template.svg)](https://www.nuget.org/packages/Blog.Core.Webapi.Template/) | [![Blog.Core.Webapi.Template](https://img.shields.io/nuget/dt/Blog.Core.Webapi.Template.svg)](https://www.nuget.org/packages/Blog.Core.Webapi.Template/) |
| [Tiobon.Core.Webapi.Template](https://www.nuget.org/packages/Tiobon.Core.Webapi.Template/) | [![Tiobon.Core.Webapi.Template](https://img.shields.io/nuget/v/Tiobon.Core.Webapi.Template.svg)](https://www.nuget.org/packages/Tiobon.Core.Webapi.Template/) | [![Tiobon.Core.Webapi.Template](https://img.shields.io/nuget/dt/Tiobon.Core.Webapi.Template.svg)](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
&nbsp;
&nbsp;
@ -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)|- | -|
&nbsp;
@ -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!
&nbsp;
如果你感觉看着这整个项目比较费劲,我单抽出来了几个子Demo,方便学习,项目地址 :[https://github.com/anjoy8/BlogArti](https://github.com/anjoy8/BlogArti)
如果你感觉看着这整个项目比较费劲,我单抽出来了几个子Demo,方便学习,项目地址 :[https://github.com/anjoy8/TiobonArti](https://github.com/anjoy8/TiobonArti)

@ -1,8 +1,8 @@
using Blog.Core.Model;
using Tiobon.Core.Model;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
public class BaseApiController : Controller
{

@ -1,35 +1,35 @@
using System.Linq.Expressions;
using System.Text.RegularExpressions;
using Blog.Core.Common.Helper;
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Blog.Core.Model.ViewModels;
using Blog.Core.SwaggerHelper;
using Tiobon.Core.Common.Helper;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Model.ViewModels;
using Tiobon.Core.SwaggerHelper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Serilog;
using StackExchange.Profiling;
using static Blog.Core.Extensions.CustomApiVersion;
using static Tiobon.Core.Extensions.CustomApiVersion;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// 博客管理
/// </summary>
[Produces("application/json")]
[Route("api/Blog")]
public class BlogController : BaseApiController
[Route("api/Tiobon")]
public class TiobonController : BaseApiController
{
public IBlogArticleServices _blogArticleServices { get; set; }
private readonly ILogger<BlogController> _logger;
public ITiobonArticleServices _TiobonArticleServices { get; set; }
private readonly ILogger<TiobonController> _logger;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="logger"></param>
///
public BlogController(ILogger<BlogController> logger)
public TiobonController(ILogger<TiobonController> logger)
{
_logger = logger;
}
@ -44,7 +44,7 @@ namespace Blog.Core.Controllers
/// <param name="key"></param>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<PageModel<BlogArticle>>> Get(int id, int page = 1, string bcategory = "技术博文", string key = "")
public async Task<MessageModel<PageModel<TiobonArticle>>> Get(int id, int page = 1, string bcategory = "技术博文", string key = "")
{
int intPageSize = 6;
if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key))
@ -52,13 +52,13 @@ namespace Blog.Core.Controllers
key = "";
}
Expression<Func<BlogArticle, bool>> whereExpression = a => (a.bcategory == bcategory && a.IsDeleted == false) && ((a.btitle != null && a.btitle.Contains(key)) || (a.bcontent != null && a.bcontent.Contains(key)));
Expression<Func<TiobonArticle, bool>> whereExpression = a => (a.bcategory == bcategory && a.IsDeleted == false) && ((a.btitle != null && a.btitle.Contains(key)) || (a.bcontent != null && a.bcontent.Contains(key)));
var pageModelBlog = await _blogArticleServices.QueryPage(whereExpression, page, intPageSize, " bID desc ");
var pageModelTiobon = await _TiobonArticleServices.QueryPage(whereExpression, page, intPageSize, " bID desc ");
using (MiniProfiler.Current.Step("获取成功后,开始处理最终数据"))
{
foreach (var item in pageModelBlog.data)
foreach (var item in pageModelTiobon.data)
{
if (!string.IsNullOrEmpty(item.bcontent))
{
@ -72,7 +72,7 @@ namespace Blog.Core.Controllers
}
}
return SuccessPage(pageModelBlog);
return SuccessPage(pageModelTiobon);
}
@ -82,11 +82,11 @@ namespace Blog.Core.Controllers
/// <param name="id"></param>
/// <returns></returns>
[HttpGet("{id}")]
//[Authorize(Policy = "Scope_BlogModule_Policy")]
//[Authorize(Policy = "Scope_TiobonModule_Policy")]
[Authorize]
public async Task<MessageModel<BlogViewModels>> Get(long id)
public async Task<MessageModel<TiobonViewModels>> Get(long id)
{
return Success(await _blogArticleServices.GetBlogDetails(id));
return Success(await _TiobonArticleServices.GetTiobonDetails(id));
}
@ -97,25 +97,25 @@ namespace Blog.Core.Controllers
/// <returns></returns>
[HttpGet]
[Route("DetailNuxtNoPer")]
public async Task<MessageModel<BlogViewModels>> DetailNuxtNoPer(long id)
public async Task<MessageModel<TiobonViewModels>> DetailNuxtNoPer(long id)
{
_logger.LogInformation("xxxxxxxxxxxxxxxxxxx");
Log.Information("yyyyyyyyyyyyyyyyy");
return Success(await _blogArticleServices.GetBlogDetails(id));
return Success(await _TiobonArticleServices.GetTiobonDetails(id));
}
[HttpGet]
[Route("GoUrl")]
public async Task<IActionResult> GoUrl(long id = 0)
{
var response = await _blogArticleServices.QueryById(id);
var response = await _TiobonArticleServices.QueryById(id);
if (response != null && response.bsubmitter.IsNotEmptyOrNull())
{
string Url = @"^http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?$";
if (Regex.IsMatch(response.bsubmitter, Url))
{
response.btraffic += 1;
await _blogArticleServices.Update(response);
await _TiobonArticleServices.Update(response);
return Redirect(response.bsubmitter);
}
@ -125,26 +125,26 @@ namespace Blog.Core.Controllers
}
[HttpGet]
[Route("GetBlogsByTypesForMVP")]
public async Task<MessageModel<List<BlogArticle>>> GetBlogsByTypesForMVP(string types = "", int id = 0)
[Route("GetTiobonsByTypesForMVP")]
public async Task<MessageModel<List<TiobonArticle>>> GetTiobonsByTypesForMVP(string types = "", int id = 0)
{
if (types.IsNotEmptyOrNull())
{
var blogs = await _blogArticleServices.Query(d => d.bcategory != null && types.Contains(d.bcategory) && d.IsDeleted == false, d => d.bID, false);
return Success(blogs);
var Tiobons = await _TiobonArticleServices.Query(d => d.bcategory != null && types.Contains(d.bcategory) && d.IsDeleted == false, d => d.bID, false);
return Success(Tiobons);
}
return Success(new List<BlogArticle>() { });
return Success(new List<TiobonArticle>() { });
}
[HttpGet]
[Route("GetBlogByIdForMVP")]
public async Task<MessageModel<BlogArticle>> GetBlogByIdForMVP(long id = 0)
[Route("GetTiobonByIdForMVP")]
public async Task<MessageModel<TiobonArticle>> GetTiobonByIdForMVP(long id = 0)
{
if (id > 0)
{
return Success(await _blogArticleServices.QueryById(id));
return Success(await _TiobonArticleServices.QueryById(id));
}
return Success(new BlogArticle());
return Success(new TiobonArticle());
}
/// <summary>
@ -155,11 +155,11 @@ namespace Blog.Core.Controllers
////MVC自带特性 对 api 进行组管理
//[ApiExplorerSettings(GroupName = "v2")]
////路径 如果以 / 开头,表示绝对路径,反之相对 controller 的想u地路径
//[Route("/api/v2/blog/Blogtest")]
//[Route("/api/v2/Tiobon/Tiobontest")]
//和上边的版本控制以及路由地址都是一样的
[CustomRoute(ApiVersions.V2, "Blogtest")]
public MessageModel<string> V2_Blogtest()
[CustomRoute(ApiVersions.V2, "Tiobontest")]
public MessageModel<string> V2_Tiobontest()
{
return Success<string>("我是第二版的博客信息");
}
@ -167,21 +167,21 @@ namespace Blog.Core.Controllers
/// <summary>
/// 添加博客【无权限】
/// </summary>
/// <param name="blogArticle"></param>
/// <param name="TiobonArticle"></param>
/// <returns></returns>
[HttpPost]
//[Authorize(Policy = "Scope_BlogModule_Policy")]
//[Authorize(Policy = "Scope_TiobonModule_Policy")]
[Authorize]
public async Task<MessageModel<string>> Post([FromBody] BlogArticle blogArticle)
public async Task<MessageModel<string>> Post([FromBody] TiobonArticle TiobonArticle)
{
if (blogArticle.btitle.Length > 5 && blogArticle.bcontent.Length > 50)
if (TiobonArticle.btitle.Length > 5 && TiobonArticle.bcontent.Length > 50)
{
blogArticle.bCreateTime = DateTime.Now;
blogArticle.bUpdateTime = DateTime.Now;
blogArticle.IsDeleted = false;
blogArticle.bcategory = "技术博文";
var id = (await _blogArticleServices.Add(blogArticle));
TiobonArticle.bCreateTime = DateTime.Now;
TiobonArticle.bUpdateTime = DateTime.Now;
TiobonArticle.IsDeleted = false;
TiobonArticle.bcategory = "技术博文";
var id = (await _TiobonArticleServices.Add(TiobonArticle));
return id > 0 ? Success<string>(id.ObjToString()) : Failed("添加失败");
}
else
@ -194,45 +194,45 @@ namespace Blog.Core.Controllers
/// <summary>
///
/// </summary>
/// <param name="blogArticle"></param>
/// <param name="TiobonArticle"></param>
/// <returns></returns>
[HttpPost]
[Route("AddForMVP")]
[Authorize(Permissions.Name)]
public async Task<MessageModel<string>> AddForMVP([FromBody] BlogArticle blogArticle)
public async Task<MessageModel<string>> AddForMVP([FromBody] TiobonArticle TiobonArticle)
{
blogArticle.bCreateTime = DateTime.Now;
blogArticle.bUpdateTime = DateTime.Now;
blogArticle.IsDeleted = false;
var id = (await _blogArticleServices.Add(blogArticle));
TiobonArticle.bCreateTime = DateTime.Now;
TiobonArticle.bUpdateTime = DateTime.Now;
TiobonArticle.IsDeleted = false;
var id = (await _TiobonArticleServices.Add(TiobonArticle));
return id > 0 ? Success<string>(id.ObjToString()) : Failed("添加失败");
}
/// <summary>
/// 更新博客信息
/// </summary>
/// <param name="BlogArticle"></param>
/// <param name="TiobonArticle"></param>
/// <returns></returns>
// PUT: api/User/5
[HttpPut]
[Route("Update")]
[Authorize(Permissions.Name)]
public async Task<MessageModel<string>> Put([FromBody] BlogArticle BlogArticle)
public async Task<MessageModel<string>> Put([FromBody] TiobonArticle TiobonArticle)
{
if (BlogArticle != null && BlogArticle.bID > 0)
if (TiobonArticle != null && TiobonArticle.bID > 0)
{
var model = await _blogArticleServices.QueryById(BlogArticle.bID);
var model = await _TiobonArticleServices.QueryById(TiobonArticle.bID);
if (model != null)
{
model.btitle = BlogArticle.btitle;
model.bcategory = BlogArticle.bcategory;
model.bsubmitter = BlogArticle.bsubmitter;
model.bcontent = BlogArticle.bcontent;
model.btraffic = BlogArticle.btraffic;
model.btitle = TiobonArticle.btitle;
model.bcategory = TiobonArticle.bcategory;
model.bsubmitter = TiobonArticle.bsubmitter;
model.bcontent = TiobonArticle.bcontent;
model.btraffic = TiobonArticle.btraffic;
if (await _blogArticleServices.Update(model))
if (await _TiobonArticleServices.Update(model))
{
return Success<string>(BlogArticle?.bID.ObjToString());
return Success<string>(TiobonArticle?.bID.ObjToString());
}
}
}
@ -253,13 +253,13 @@ namespace Blog.Core.Controllers
{
if (id > 0)
{
var blogArticle = await _blogArticleServices.QueryById(id);
if (blogArticle == null)
var TiobonArticle = await _TiobonArticleServices.QueryById(id);
if (TiobonArticle == null)
{
return Failed("查询无数据");
}
blogArticle.IsDeleted = true;
return await _blogArticleServices.Update(blogArticle) ? Success(blogArticle?.bID.ObjToString(), "删除成功") : Failed("删除失败");
TiobonArticle.IsDeleted = true;
return await _TiobonArticleServices.Update(TiobonArticle) ? Success(TiobonArticle?.bID.ObjToString(), "删除成功") : Failed("删除失败");
}
return Failed("入参无效");
}
@ -272,7 +272,7 @@ namespace Blog.Core.Controllers
[Route("ApacheTestUpdate")]
public async Task<MessageModel<bool>> ApacheTestUpdate()
{
return Success(await _blogArticleServices.Update(new { bsubmitter = $"laozhang{DateTime.Now.Millisecond}", bID = 1 }), "更新成功");
return Success(await _TiobonArticleServices.Update(new { bsubmitter = $"laozhang{DateTime.Now.Millisecond}", bID = 1 }), "更新成功");
}
}
}

@ -1,14 +1,14 @@
using Blog.Core.Common;
using Blog.Core.Common.DB;
using Blog.Core.Common.Seed;
using Blog.Core.Model;
using Tiobon.Core.Common;
using Tiobon.Core.Common.DB;
using Tiobon.Core.Common.Seed;
using Tiobon.Core.Model;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Hosting;
using SqlSugar;
using System.Linq;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]

@ -1,7 +1,7 @@
using Blog.Core.Common.Helper;
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Tiobon.Core.Common.Helper;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
using Microsoft.AspNetCore.Hosting;
@ -14,9 +14,9 @@ using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Blog.Core.Repository.UnitOfWorks;
using Tiobon.Core.Repository.UnitOfWorks;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
@ -175,28 +175,28 @@ namespace Blog.Core.Controllers
// 取出数据,序列化,自己可以处理判空
var SysUserInfoJson = JsonConvert.SerializeObject(await _sysUserInfoServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "SysUserInfo.tsv"), SysUserInfoJson, Encoding.UTF8);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "TiobonCore.Data.json", "SysUserInfo.tsv"), SysUserInfoJson, Encoding.UTF8);
var DepartmentJson = JsonConvert.SerializeObject(await _departmentServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "Department.tsv"), DepartmentJson, Encoding.UTF8);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "TiobonCore.Data.json", "Department.tsv"), DepartmentJson, Encoding.UTF8);
var rolesJson = JsonConvert.SerializeObject(await _roleServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "Role.tsv"), rolesJson, Encoding.UTF8);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "TiobonCore.Data.json", "Role.tsv"), rolesJson, Encoding.UTF8);
var UserRoleJson = JsonConvert.SerializeObject(await _userRoleServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "UserRole.tsv"), UserRoleJson, Encoding.UTF8);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "TiobonCore.Data.json", "UserRole.tsv"), UserRoleJson, Encoding.UTF8);
var permissionsJson = JsonConvert.SerializeObject(await _permissionServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "Permission.tsv"), permissionsJson, Encoding.UTF8);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "TiobonCore.Data.json", "Permission.tsv"), permissionsJson, Encoding.UTF8);
var modulesJson = JsonConvert.SerializeObject(await _moduleServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "Modules.tsv"), modulesJson, Encoding.UTF8);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "TiobonCore.Data.json", "Modules.tsv"), modulesJson, Encoding.UTF8);
var rmpsJson = JsonConvert.SerializeObject(await _roleModulePermissionServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "RoleModulePermission.tsv"), rmpsJson, Encoding.UTF8);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "TiobonCore.Data.json", "RoleModulePermission.tsv"), rmpsJson, Encoding.UTF8);
@ -233,31 +233,31 @@ namespace Blog.Core.Controllers
IExporter exporter = new ExcelExporter();
var SysUserInfoList = await _sysUserInfoServices.Query(d => d.IsDeleted == false);
var result = await exporter.ExportAsByteArray(SysUserInfoList);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.excel", "SysUserInfo.xlsx"), result);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "TiobonCore.Data.excel", "SysUserInfo.xlsx"), result);
var DepartmentList = await _departmentServices.Query(d => d.IsDeleted == false);
var DepartmentResult = await exporter.ExportAsByteArray(DepartmentList);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.excel", "Department.xlsx"), DepartmentResult);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "TiobonCore.Data.excel", "Department.xlsx"), DepartmentResult);
var RoleList = await _roleServices.Query(d => d.IsDeleted == false);
var RoleResult = await exporter.ExportAsByteArray(RoleList);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.excel", "Role.xlsx"), RoleResult);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "TiobonCore.Data.excel", "Role.xlsx"), RoleResult);
var UserRoleList = await _userRoleServices.Query(d => d.IsDeleted == false);
var UserRoleResult = await exporter.ExportAsByteArray(UserRoleList);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.excel", "UserRole.xlsx"), UserRoleResult);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "TiobonCore.Data.excel", "UserRole.xlsx"), UserRoleResult);
var PermissionList = await _permissionServices.Query(d => d.IsDeleted == false);
var PermissionResult = await exporter.ExportAsByteArray(PermissionList);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.excel", "Permission.xlsx"), PermissionResult);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "TiobonCore.Data.excel", "Permission.xlsx"), PermissionResult);
var ModulesList = await _moduleServices.Query(d => d.IsDeleted == false);
var ModulesResult = await exporter.ExportAsByteArray(ModulesList);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.excel", "Modules.xlsx"), ModulesResult);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "TiobonCore.Data.excel", "Modules.xlsx"), ModulesResult);
var RoleModulePermissionList = await _roleModulePermissionServices.Query(d => d.IsDeleted == false);
var RoleModulePermissionResult = await exporter.ExportAsByteArray(RoleModulePermissionList);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.excel", "RoleModulePermission.xlsx"), RoleModulePermissionResult);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "TiobonCore.Data.excel", "RoleModulePermission.xlsx"), RoleModulePermissionResult);
data.success = true;

@ -1,15 +1,15 @@
using Blog.Core.Common.Helper;
using Blog.Core.Controllers;
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Tiobon.Core.Common.Helper;
using Tiobon.Core.Controllers;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using System.Linq.Expressions;
using System.Text;
namespace Blog.Core.Api.Controllers
namespace Tiobon.Core.Api.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
@ -198,7 +198,7 @@ namespace Blog.Core.Api.Controllers
};
var rolesJson = JsonConvert.SerializeObject(await _departmentServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "Department_New.tsv"), rolesJson, Encoding.UTF8);
FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "TiobonCore.Data.json", "Department_New.tsv"), rolesJson, Encoding.UTF8);
data.success = true;
data.msg = "生成成功!";

@ -1,6 +1,6 @@
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// 健康检查

@ -1,9 +1,9 @@
using Blog.Core.Model;
using Blog.Core.Model.ViewModels;
using Tiobon.Core.Model;
using Tiobon.Core.Model.ViewModels;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// 图片管理

@ -1,18 +1,18 @@
using Blog.Core.AuthHelper;
using Blog.Core.AuthHelper.OverWrite;
using Blog.Core.Common.Helper;
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.ViewModels;
using Tiobon.Core.AuthHelper;
using Tiobon.Core.AuthHelper.OverWrite;
using Tiobon.Core.Common.Helper;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.ViewModels;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using Blog.Core.Common.Swagger;
using Tiobon.Core.Common.Swagger;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// 登录管理【无权限】

@ -1,12 +1,12 @@
using System.Linq.Expressions;
using Blog.Core.Common.HttpContextUser;
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Tiobon.Core.Common.HttpContextUser;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// 接口管理

@ -1,10 +1,10 @@
using Blog.Core.Common;
using Blog.Core.Common.Helper;
using Blog.Core.Common.LogHelper;
using Blog.Core.Hubs;
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.ViewModels;
using Tiobon.Core.Common;
using Tiobon.Core.Common.Helper;
using Tiobon.Core.Common.LogHelper;
using Tiobon.Core.Hubs;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.ViewModels;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.SignalR;
@ -12,9 +12,9 @@ using Newtonsoft.Json;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;
using Blog.Core.Extensions.Middlewares;
using Tiobon.Core.Extensions.Middlewares;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
[Route("api/[Controller]/[action]")]
[ApiController]

@ -1,11 +1,11 @@
using Blog.Core.Common.Helper;
using Blog.Core.Controllers;
using Blog.Core.Model;
using Tiobon.Core.Common.Helper;
using Tiobon.Core.Controllers;
using Tiobon.Core.Model;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Nacos.V2;
namespace Blog.Core.Api.Controllers
namespace Tiobon.Core.Api.Controllers
{
/// <summary>
/// 服务管理

@ -1,10 +1,10 @@
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.ViewModels;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.ViewModels;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// 建行聚合支付类

@ -1,19 +1,19 @@
using Blog.Core.AuthHelper;
using Blog.Core.AuthHelper.OverWrite;
using Blog.Core.Common;
using Blog.Core.Common.Helper;
using Blog.Core.Common.HttpContextUser;
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Blog.Core.Repository.UnitOfWorks;
using Tiobon.Core.AuthHelper;
using Tiobon.Core.AuthHelper.OverWrite;
using Tiobon.Core.Common;
using Tiobon.Core.Common.Helper;
using Tiobon.Core.Common.HttpContextUser;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Repository.UnitOfWorks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Security.Claims;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// 菜单管理

@ -1,11 +1,11 @@
using Blog.Core.Common.HttpContextUser;
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Tiobon.Core.Common.HttpContextUser;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// 角色管理

@ -1,10 +1,10 @@
using Blog.Core.Controllers;
using Blog.Core.Hubs;
using Tiobon.Core.Controllers;
using Tiobon.Core.Hubs;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.SignalR;
namespace Blog.Core.Api.Controllers;
namespace Tiobon.Core.Api.Controllers;
/// <summary>
/// SignalR测试

@ -1,12 +1,12 @@
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Blog.Core.Repository.UnitOfWorks;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Repository.UnitOfWorks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Linq.Expressions;
namespace Blog.Core.Api.Controllers
namespace Tiobon.Core.Api.Controllers
{
/// <summary>
/// 分表demo

@ -1,10 +1,10 @@
using Blog.Core.Common.Caches;
using Blog.Core.Controllers;
using Blog.Core.Model;
using Tiobon.Core.Common.Caches;
using Tiobon.Core.Controllers;
using Tiobon.Core.Model;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Api.Controllers.Systems;
namespace Tiobon.Core.Api.Controllers.Systems;
/// <summary>
/// 缓存管理

@ -1,17 +1,17 @@
using System.Diagnostics.CodeAnalysis;
using Blog.Core.Common;
using Blog.Core.Common.DB;
using Blog.Core.Controllers;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Blog.Core.Model.Systems.DataBase;
using Blog.Core.Model.Tenants;
using Tiobon.Core.Common;
using Tiobon.Core.Common.DB;
using Tiobon.Core.Controllers;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Model.Systems.DataBase;
using Tiobon.Core.Model.Tenants;
using Mapster;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace Blog.Core.Api.Controllers.Systems;
namespace Tiobon.Core.Api.Controllers.Systems;
/// <summary>
/// 数据库管理

@ -1,14 +1,14 @@
using Blog.Core.Common.DB.Extension;
using Blog.Core.Controllers;
using Blog.Core.Model;
using Blog.Core.Model.Models.RootTkey;
using Tiobon.Core.Common.DB.Extension;
using Tiobon.Core.Controllers;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models.RootTkey;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using NetTaste;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
using SqlSugar;
namespace Blog.Core.Api.Controllers.Systems;
namespace Tiobon.Core.Api.Controllers.Systems;
/// <summary>
/// 动态建表 CURD

@ -1,16 +1,16 @@
using System.Linq.Expressions;
using System.Reflection;
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Blog.Core.Model.ViewModels;
using Blog.Core.Repository.UnitOfWorks;
using Blog.Core.Tasks;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Model.ViewModels;
using Tiobon.Core.Repository.UnitOfWorks;
using Tiobon.Core.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Quartz;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
@ -492,7 +492,7 @@ namespace Blog.Core.Controllers
{
var baseType = typeof(IJob);
var path = AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory;
var referencedAssemblies = System.IO.Directory.GetFiles(path, "Blog.Core.Tasks.dll").Select(Assembly.LoadFrom).ToArray();
var referencedAssemblies = System.IO.Directory.GetFiles(path, "Tiobon.Core.Tasks.dll").Select(Assembly.LoadFrom).ToArray();
var types = referencedAssemblies
.SelectMany(a => a.DefinedTypes)
.Select(type => type.AsType())

@ -1,12 +1,12 @@
using Blog.Core.Common.HttpContextUser;
using Blog.Core.Controllers;
using Blog.Core.IServices.BASE;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Tiobon.Core.Common.HttpContextUser;
using Tiobon.Core.Controllers;
using Tiobon.Core.IServices.BASE;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Api.Controllers.Tenant;
namespace Tiobon.Core.Api.Controllers.Tenant;
/// <summary>
/// 多租户-多库方案 测试

@ -1,12 +1,12 @@
using Blog.Core.Common.HttpContextUser;
using Blog.Core.Controllers;
using Blog.Core.IServices.BASE;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Tiobon.Core.Common.HttpContextUser;
using Tiobon.Core.Controllers;
using Tiobon.Core.IServices.BASE;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Api.Controllers.Tenant;
namespace Tiobon.Core.Api.Controllers.Tenant;
/// <summary>
/// 多租户-Id方案 测试

@ -1,12 +1,12 @@
using Blog.Core.Common.HttpContextUser;
using Blog.Core.Controllers;
using Blog.Core.IServices.BASE;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Tiobon.Core.Common.HttpContextUser;
using Tiobon.Core.Controllers;
using Tiobon.Core.IServices.BASE;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Api.Controllers.Tenant;
namespace Tiobon.Core.Api.Controllers.Tenant;
/// <summary>
/// 多租户-多表方案 测试

@ -1,11 +1,11 @@
using Blog.Core.Controllers;
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Tiobon.Core.Controllers;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Api.Controllers.Tenant;
namespace Tiobon.Core.Api.Controllers.Tenant;
/// <summary>
/// 租户管理

@ -1,10 +1,10 @@
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// 类别管理【无权限】

@ -1,11 +1,11 @@
using Blog.Core.Common.Helper;
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Tiobon.Core.Common.Helper;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// Tibug 管理

@ -1,11 +1,11 @@
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Blog.Core.Repository.UnitOfWorks;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Repository.UnitOfWorks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
@ -64,7 +64,7 @@ namespace Blog.Core.Controllers
var insertGuestbook = await _guestbookServices.Add(new Guestbook()
{
username = "bbb",
blogId = 1,
TiobonId = 1,
createdate = DateTime.Now,
isshow = true
});

@ -1,16 +1,16 @@
using AutoMapper;
using Blog.Core.AuthHelper.OverWrite;
using Blog.Core.Common.Helper;
using Blog.Core.Common.HttpContextUser;
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Blog.Core.Model.ViewModels;
using Blog.Core.Repository.UnitOfWorks;
using Tiobon.Core.AuthHelper.OverWrite;
using Tiobon.Core.Common.Helper;
using Tiobon.Core.Common.HttpContextUser;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Model.ViewModels;
using Tiobon.Core.Repository.UnitOfWorks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// 用户管理

@ -1,12 +1,12 @@
using AutoMapper;
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Blog.Core.Model.ViewModels;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Model.ViewModels;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// 用户角色关系

@ -1,16 +1,16 @@
using AutoMapper;
using Blog.Core.Common;
using Blog.Core.Common.HttpContextUser;
using Blog.Core.Common.Https.HttpPolly;
using Blog.Core.Common.Option;
using Blog.Core.EventBus;
using Blog.Core.EventBus.EventHandling;
using Blog.Core.Extensions;
using Blog.Core.Filter;
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Blog.Core.Model.ViewModels;
using Tiobon.Core.Common;
using Tiobon.Core.Common.HttpContextUser;
using Tiobon.Core.Common.Https.HttpPolly;
using Tiobon.Core.Common.Option;
using Tiobon.Core.EventBus;
using Tiobon.Core.EventBus.EventHandling;
using Tiobon.Core.Extensions;
using Tiobon.Core.Filter;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Model.ViewModels;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
@ -20,7 +20,7 @@ using System.ComponentModel.DataAnnotations;
using System.Linq.Expressions;
using System.Text;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// Values控制器
@ -40,7 +40,7 @@ namespace Blog.Core.Controllers
private readonly IRoleModulePermissionServices _roleModulePermissionServices;
private readonly IUser _user;
private readonly IPasswordLibServices _passwordLibServices;
readonly IBlogArticleServices _blogArticleServices;
readonly ITiobonArticleServices _TiobonArticleServices;
private readonly IHttpPollyHelper _httpPollyHelper;
private readonly IRabbitMQPersistentConnection _persistentConnection;
private readonly SeqOptions _seqOptions;
@ -48,7 +48,7 @@ namespace Blog.Core.Controllers
/// <summary>
/// ValuesController
/// </summary>
/// <param name="blogArticleServices"></param>
/// <param name="TiobonArticleServices"></param>
/// <param name="mapper"></param>
/// <param name="advertisementServices"></param>
/// <param name="love"></param>
@ -58,7 +58,7 @@ namespace Blog.Core.Controllers
/// <param name="httpPollyHelper"></param>
/// <param name="persistentConnection"></param>
/// <param name="seqOptions"></param>
public ValuesController(IBlogArticleServices blogArticleServices
public ValuesController(ITiobonArticleServices TiobonArticleServices
, IMapper mapper
, IAdvertisementServices advertisementServices
, Love love
@ -78,9 +78,9 @@ namespace Blog.Core.Controllers
// 测试多库
_passwordLibServices = passwordLibServices;
// 测试AOP加载顺序,配合 return
_blogArticleServices = blogArticleServices;
_TiobonArticleServices = TiobonArticleServices;
// 测试redis消息队列
_blogArticleServices = blogArticleServices;
_TiobonArticleServices = TiobonArticleServices;
// httpPolly
_httpPollyHelper = httpPollyHelper;
_persistentConnection = persistentConnection;
@ -98,7 +98,7 @@ namespace Blog.Core.Controllers
{
_persistentConnection.TryConnect();
}
_persistentConnection.PublishMessage("Hello, RabbitMQ!", exchangeName: "blogcore", routingKey: "myRoutingKey");
_persistentConnection.PublishMessage("Hello, RabbitMQ!", exchangeName: "Tioboncore", routingKey: "myRoutingKey");
return Ok();
}
@ -149,9 +149,9 @@ namespace Blog.Core.Controllers
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public async Task<BlogArticle> TestSqlsugarWithCache()
public async Task<TiobonArticle> TestSqlsugarWithCache()
{
return await _blogArticleServices.QueryById("1", true);
return await _TiobonArticleServices.QueryById("1", true);
}
/// <summary>
@ -169,21 +169,21 @@ namespace Blog.Core.Controllers
* sql
*/
var queryBySql =
await _blogArticleServices.QuerySql(
"SELECT bsubmitter,btitle,bcontent,bCreateTime FROM BlogArticle WHERE bID>5");
await _TiobonArticleServices.QuerySql(
"SELECT bsubmitter,btitle,bcontent,bCreateTime FROM TiobonArticle WHERE bID>5");
/*
*
*/
var queryByColums = await _blogArticleServices
.Query<BlogViewModels>(it => new BlogViewModels() { btitle = it.btitle });
var queryByColums = await _TiobonArticleServices
.Query<TiobonViewModels>(it => new TiobonViewModels() { btitle = it.btitle });
/*
*
*/
Expression<Func<BlogArticle, bool>> registerInfoWhere = a => a.btitle == "xxx" && a.bRemark == "XXX";
var queryByColumsByMultiTerms = await _blogArticleServices
.Query<BlogArticle>(it => new BlogArticle() { btitle = it.btitle }, registerInfoWhere, "bID Desc");
Expression<Func<TiobonArticle, bool>> registerInfoWhere = a => a.btitle == "xxx" && a.bRemark == "XXX";
var queryByColumsByMultiTerms = await _TiobonArticleServices
.Query<TiobonArticle>(it => new TiobonArticle() { btitle = it.btitle }, registerInfoWhere, "bID Desc");
/*
* sql
@ -191,15 +191,15 @@ namespace Blog.Core.Controllers
* SQL参数@bID:5
* @bsubmitter:laozhang619
* @IsDeleted:False
* SQL语句UPDATE `BlogArticle` SET
* SQL语句UPDATE `TiobonArticle` SET
* `bsubmitter`=@bsubmitter,`IsDeleted`=@IsDeleted WHERE `bID`=@bID
*/
var updateSql = await _blogArticleServices.Update(new
var updateSql = await _TiobonArticleServices.Update(new
{ bsubmitter = $"laozhang{DateTime.Now.Millisecond}", IsDeleted = false, bID = 5 });
// 测试 AOP 缓存
var blogArticles = await _blogArticleServices.GetBlogs();
var TiobonArticles = await _TiobonArticleServices.GetTiobons();
// 测试多表联查
@ -222,17 +222,17 @@ namespace Blog.Core.Controllers
[HttpGet]
[AllowAnonymous]
public async Task<MessageModel<List<BlogArticle>>> Test_Aop_Cache()
public async Task<MessageModel<List<TiobonArticle>>> Test_Aop_Cache()
{
// 测试 AOP 缓存
var blogArticles = await _blogArticleServices.GetBlogs();
var TiobonArticles = await _TiobonArticleServices.GetTiobons();
if (blogArticles.Any())
if (TiobonArticles.Any())
{
return Success(blogArticles);
return Success(TiobonArticles);
}
return Failed<List<BlogArticle>>();
return Failed<List<TiobonArticle>>();
}
/// <summary>
@ -252,15 +252,15 @@ namespace Blog.Core.Controllers
/// 测试RabbitMQ事件总线
/// </summary>
/// <param name="_eventBus"></param>
/// <param name="blogId"></param>
/// <param name="TiobonId"></param>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public void EventBusTry([FromServices] IEventBus _eventBus, string blogId = "1")
public void EventBusTry([FromServices] IEventBus _eventBus, string TiobonId = "1")
{
var blogDeletedEvent = new BlogQueryIntegrationEvent(blogId);
var TiobonDeletedEvent = new TiobonQueryIntegrationEvent(TiobonId);
_eventBus.Publish(blogDeletedEvent);
_eventBus.Publish(TiobonDeletedEvent);
}
/// <summary>
@ -336,13 +336,13 @@ namespace Blog.Core.Controllers
/// <summary>
/// 测试 post 一个对象 + 独立参数
/// </summary>
/// <param name="blogArticle">model实体类参数</param>
/// <param name="TiobonArticle">model实体类参数</param>
/// <param name="id">独立参数</param>
[HttpPost]
[AllowAnonymous]
public object Post([FromBody] BlogArticle blogArticle, int id)
public object Post([FromBody] TiobonArticle TiobonArticle, int id)
{
return Ok(new { success = true, data = blogArticle, id = id });
return Ok(new { success = true, data = TiobonArticle, id = id });
}
@ -366,9 +366,9 @@ namespace Blog.Core.Controllers
[AllowAnonymous]
public async Task<object> TestMutiDBAPI()
{
// 从主库中,操作blogs
var blogs = await _blogArticleServices.Query(d => d.bID == 1);
var addBlog = await _blogArticleServices.Add(new BlogArticle() { });
// 从主库中,操作Tiobons
var Tiobons = await _TiobonArticleServices.Query(d => d.bID == 1);
var addTiobon = await _TiobonArticleServices.Add(new TiobonArticle() { });
// 从从库中,操作pwds
var pwds = await _passwordLibServices.Query(d => d.PLID > 0);
@ -376,7 +376,7 @@ namespace Blog.Core.Controllers
return new
{
blogs,
Tiobons,
pwds
};
}

@ -1,10 +1,10 @@
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// WeChatCompanyController

@ -1,10 +1,10 @@
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// WeChatConfigController

@ -1,10 +1,10 @@
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.ViewModels;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.ViewModels;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// 微信公众号管理

@ -1,10 +1,10 @@
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// WeChatPushLogController

@ -1,10 +1,10 @@
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Controllers
namespace Tiobon.Core.Controllers
{
/// <summary>
/// WeChatSubController

@ -1,9 +1,9 @@
using System.Collections.Generic;
using Blog.Core.SwaggerHelper;
using Tiobon.Core.SwaggerHelper;
using Microsoft.AspNetCore.Mvc;
using static Blog.Core.Extensions.CustomApiVersion;
using static Tiobon.Core.Extensions.CustomApiVersion;
namespace Blog.Core.Controllers.v1
namespace Tiobon.Core.Controllers.v1
{
[Route("api/[controller]")]
[ApiController]

@ -1,10 +1,10 @@
using Blog.Core.SwaggerHelper;
using Tiobon.Core.SwaggerHelper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using static Blog.Core.Extensions.CustomApiVersion;
using static Tiobon.Core.Extensions.CustomApiVersion;
namespace Blog.Core.Controllers.v2
namespace Tiobon.Core.Controllers.v2
{
[CustomRoute(ApiVersions.V2)]
//[Route("api/[controller]")]

@ -38,4 +38,4 @@ RUN echo 'Asia/Shanghai' >/etc/timezone
WORKDIR /app
COPY . .
EXPOSE 9291
ENTRYPOINT ["dotnet", "Blog.Core.Api.dll","-b","0.0.0.0"]
ENTRYPOINT ["dotnet", "Tiobon.Core.Api.dll","-b","0.0.0.0"]

@ -1,7 +1,7 @@
using Autofac;
using Microsoft.AspNetCore.Mvc;
namespace Blog.Core.Filter
namespace Tiobon.Core.Filter
{
public class AutofacPropertityModuleReg : Autofac.Module
{

@ -1,9 +1,9 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ApiExplorer;
using System;
using static Blog.Core.Extensions.CustomApiVersion;
using static Tiobon.Core.Extensions.CustomApiVersion;
namespace Blog.Core.SwaggerHelper
namespace Tiobon.Core.SwaggerHelper
{
/// <summary>
/// 自定义路由 /api/{version}/[controler]/[action]

@ -4,7 +4,7 @@ using Microsoft.AspNetCore.Mvc.Filters;
using System.Linq;
using System.Threading.Tasks;
namespace Blog.Core.Filter
namespace Tiobon.Core.Filter
{
/// <summary>
/// Summary:全局路由权限公约

@ -1,14 +1,14 @@
using Blog.Core.Common;
using Blog.Core.Common.Helper;
using Blog.Core.Common.LogHelper;
using Blog.Core.Hubs;
using Blog.Core.Model;
using Tiobon.Core.Common;
using Tiobon.Core.Common.Helper;
using Tiobon.Core.Common.LogHelper;
using Tiobon.Core.Hubs;
using Tiobon.Core.Model;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.AspNetCore.SignalR;
using StackExchange.Profiling;
namespace Blog.Core.Filter
namespace Tiobon.Core.Filter
{
/// <summary>
/// 全局异常错误日志

@ -2,7 +2,7 @@
using Microsoft.AspNetCore.Mvc.Routing;
using System.Linq;
namespace Blog.Core.Filter
namespace Tiobon.Core.Filter
{
/// <summary>
/// 全局路由前缀公约

@ -1,26 +1,26 @@
using Blog.Core.IServices;
using Tiobon.Core.IServices;
using Microsoft.AspNetCore.Mvc.Filters;
namespace Blog.Core.Filter
namespace Tiobon.Core.Filter
{
public class UseServiceDIAttribute : ActionFilterAttribute
{
protected readonly ILogger<UseServiceDIAttribute> _logger;
private readonly IBlogArticleServices _blogArticleServices;
private readonly ITiobonArticleServices _TiobonArticleServices;
private readonly string _name;
public UseServiceDIAttribute(ILogger<UseServiceDIAttribute> logger, IBlogArticleServices blogArticleServices, string Name = "")
public UseServiceDIAttribute(ILogger<UseServiceDIAttribute> logger, ITiobonArticleServices TiobonArticleServices, string Name = "")
{
_logger = logger;
_blogArticleServices = blogArticleServices;
_TiobonArticleServices = TiobonArticleServices;
_name = Name;
}
public override void OnActionExecuted(ActionExecutedContext context)
{
var dd = _blogArticleServices.Query().Result;
var dd = _TiobonArticleServices.Query().Result;
_logger.LogInformation("测试自定义服务特性");
Console.WriteLine(_name);
base.OnActionExecuted(context);

@ -1,7 +1,7 @@
using FluentValidation;
using System.Text.RegularExpressions;
namespace Blog.Core.Filter
namespace Tiobon.Core.Filter
{
public class UserRegisterVo
{

@ -3,17 +3,17 @@
using Autofac;
using Autofac.Extensions.DependencyInjection;
using Blog.Core;
using Blog.Core.Common;
using Blog.Core.Common.Core;
using Blog.Core.Common.Helper;
using Blog.Core.Extensions;
using Blog.Core.Extensions.Apollo;
using Blog.Core.Extensions.Middlewares;
using Blog.Core.Extensions.ServiceExtensions;
using Blog.Core.Filter;
using Blog.Core.Hubs;
using Blog.Core.Serilog.Utility;
using Tiobon.Core;
using Tiobon.Core.Common;
using Tiobon.Core.Common.Core;
using Tiobon.Core.Common.Helper;
using Tiobon.Core.Extensions;
using Tiobon.Core.Extensions.Apollo;
using Tiobon.Core.Extensions.Middlewares;
using Tiobon.Core.Extensions.ServiceExtensions;
using Tiobon.Core.Filter;
using Tiobon.Core.Hubs;
using Tiobon.Core.Serilog.Utility;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.AspNetCore.Server.Kestrel.Core;
@ -155,7 +155,7 @@ app.UseAllServicesMiddle(builder.Services);
app.UseSession();
app.UseSwaggerAuthorized();
app.UseSwaggerMiddle(() => Assembly.GetExecutingAssembly().GetManifestResourceStream("Blog.Core.Api.index.html"));
app.UseSwaggerMiddle(() => Assembly.GetExecutingAssembly().GetManifestResourceStream("Tiobon.Core.Api.index.html"));
app.UseCors(AppSettings.app(new string[] { "Startup", "Cors", "PolicyName" }));
DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();

@ -1,5 +1,5 @@
//using Autofac.Extensions.DependencyInjection;
//using Blog.Core.Extensions.Apollo;
//using Tiobon.Core.Extensions.Apollo;
//using Microsoft.AspNetCore.Hosting;
//using Microsoft.Extensions.Configuration;
//using Microsoft.Extensions.Hosting;
@ -8,7 +8,7 @@
//using System.IO;
// 这是asp.net5.0的写法,如果用5.0,请用本文件代码替换Program.cs代码
//namespace Blog.Core
//namespace Tiobon.Core
//{
// public class Program
// {

@ -9,7 +9,7 @@
},
"$schema": "http://json.schemastore.org/launchsettings.json",
"profiles": {
"Blog.Core": {
"Tiobon.Core": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {

@ -11,12 +11,12 @@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DocumentationFile>..\Blog.Core.Api\Blog.Core.xml</DocumentationFile>
<DocumentationFile>..\Tiobon.Core.Api\Tiobon.Core.xml</DocumentationFile>
<NoWarn>1701;1702;1591</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DocumentationFile>..\Blog.Core\Blog.Core.xml</DocumentationFile>
<DocumentationFile>..\Tiobon.Core\Tiobon.Core.xml</DocumentationFile>
<NoWarn>1701;1702;1591</NoWarn>
</PropertyGroup>
<PropertyGroup>
@ -52,9 +52,9 @@
<ItemGroup>
<None Remove="index.html" />
<None Remove="WangWu.db" />
<None Remove="WMBlog.db" />
<None Remove="WMBlogLog.db" />
<None Remove="WMBlogLog.db-journal" />
<None Remove="WMTiobon.db" />
<None Remove="WMTiobonLog.db" />
<None Remove="WMTiobonLog.db-journal" />
<None Remove="ZhaoLiu.db" />
</ItemGroup>
@ -69,19 +69,15 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Blog.Core.Extensions\Blog.Core.Extensions.csproj" />
</ItemGroup>
<ItemGroup>
<None Include="wwwroot\BlogCore.Data.json\BlogArticle.tsv" />
<None Include="wwwroot\BlogCore.Data.json\Modules.tsv" />
<None Include="wwwroot\BlogCore.Data.json\Permission.tsv" />
<None Include="wwwroot\BlogCore.Data.json\Role.tsv" />
<None Include="wwwroot\BlogCore.Data.json\RoleModulePermission.tsv" />
<None Include="wwwroot\BlogCore.Data.json\SysUserInfo.tsv" />
<None Include="wwwroot\BlogCore.Data.json\Topic.tsv" />
<None Include="wwwroot\BlogCore.Data.json\TopicDetail.tsv" />
<None Include="wwwroot\BlogCore.Data.json\UserRole.tsv" />
<None Include="wwwroot\TiobonCore.Data.json\TiobonArticle.tsv" />
<None Include="wwwroot\TiobonCore.Data.json\Modules.tsv" />
<None Include="wwwroot\TiobonCore.Data.json\Permission.tsv" />
<None Include="wwwroot\TiobonCore.Data.json\Role.tsv" />
<None Include="wwwroot\TiobonCore.Data.json\RoleModulePermission.tsv" />
<None Include="wwwroot\TiobonCore.Data.json\SysUserInfo.tsv" />
<None Include="wwwroot\TiobonCore.Data.json\Topic.tsv" />
<None Include="wwwroot\TiobonCore.Data.json\TopicDetail.tsv" />
<None Include="wwwroot\TiobonCore.Data.json\UserRole.tsv" />
</ItemGroup>
<ItemGroup>
@ -104,7 +100,11 @@
</ItemGroup>
<ItemGroup>
<Folder Include="wwwroot\BlogCore.Data.excel\" />
<Folder Include="wwwroot\TiobonCore.Data.excel\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Tiobon.Core.Extensions\Tiobon.Core.Extensions.csproj" />
</ItemGroup>
<ProjectExtensions>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -4,7 +4,7 @@
"DefaultTimeOut": 15000, //
"Namespace": "public", //
"ListenInterval": 10000, //
"ServiceName": "blog.Core.Api", //
"ServiceName": "Tiobon.Core.Api", //
"Port": "9291", //
"RegisterEnabled": true // nacos
}

@ -3,7 +3,7 @@
"Apollo": {
"Enable": false,
"Config": {
"AppId": "blog.core",
"AppId": "Tiobon.core",
"Env": "DEV",
"MetaServer": "http://localhost:8080/",
"ConfigServer": [ "http://localhost:8080/" ]

@ -33,13 +33,13 @@
"Kafka": {
"Enabled": false,
"Servers": "localhost:9092",
"Topic": "blog",
"GroupId": "blog-consumer",
"Topic": "Tiobon",
"GroupId": "Tiobon-consumer",
"NumPartitions": 3 //
},
"EventBus": {
"Enabled": false,
"SubscriptionClientName": "Blog.Core"
"SubscriptionClientName": "Tiobon.Core"
},
"AppSettings": {
"CachingAOP": {
@ -76,8 +76,8 @@
"Date": "2018-08-28",
"SeedDBEnabled": true, //
"SeedDBDataEnabled": true, //,
"Author": "Blog.Core",
"SvcName": "", // /svc/blog
"Author": "Tiobon.Core",
"SvcName": "", // /svc/Tiobon
"UseLoadTest": false
},
@ -107,11 +107,11 @@
"ConnId": "Main",
"DBType": 2,
"Enabled": true,
"Connection": "WMBlog.db", //sqlite
"Connection": "WMTiobon.db", //sqlite
"Slaves": [
{
"HitRate": 0,// 0使
"Connection": "WMBlog2.db"
"Connection": "WMTiobon2.db"
}
]
},
@ -119,11 +119,11 @@
"ConnId": "Main2",
"DBType": 2,
"Enabled": true,
"Connection": "WMBlog3.db", //sqlite
"Connection": "WMTiobon3.db", //sqlite
"Slaves": [
{
"HitRate": 0,// 0使
"Connection": "WMBlog4.db"
"Connection": "WMTiobon4.db"
}
]
},
@ -132,48 +132,48 @@
"DBType": 2,
"Enabled": true,
"HitRate": 50,
"Connection": "WMBlogLog.db" //sqlite
"Connection": "WMTiobonLog.db" //sqlite
},
{
"ConnId": "WMBLOG_MSSQL_1",
"ConnId": "WMTiobon_MSSQL_1",
"DBType": 1,
"Enabled": false,
"Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMTiobon_MSSQL_1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"ProviderName": "System.Data.SqlClient"
},
{
"ConnId": "WMBLOG_MSSQL_2",
"ConnId": "WMTiobon_MSSQL_2",
"DBType": 1,
"Enabled": false,
"Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_2;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMTiobon_MSSQL_2;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"ProviderName": "System.Data.SqlClient"
},
{
"ConnId": "WMBLOG_MYSQL",
"ConnId": "WMTiobon_MYSQL",
"DBType": 0,
"Enabled": false,
"Connection": "server=localhost;Database=blog;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;"
"Connection": "server=localhost;Database=Tiobon;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;"
},
{
"ConnId": "WMBLOG_MYSQL_2",
"ConnId": "WMTiobon_MYSQL_2",
"DBType": 0,
"Enabled": false,
"Connection": "server=localhost;Database=blogcore001;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;"
"Connection": "server=localhost;Database=Tioboncore001;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;"
},
{
"ConnId": "WMBLOG_ORACLE",
"ConnId": "WMTiobon_ORACLE",
"DBType": 3,
"Enabled": false,
"Connection": "Data Source=127.0.0.1/ops;User ID=OPS;Password=123456;Persist Security Info=True;Connection Timeout=60;"
},
{
"ConnId": "WMBLOG_DM",
"ConnId": "WMTiobon_DM",
"DBType": 5,
"Enabled": false,
"Connection": "Server=xxxxx:5236;User Id=xxxxx;PWD=xxxxx;SCHEMA=TESTDBA;"
},
{
"ConnId": "WMBLOG_KDBNDP",
"ConnId": "WMTiobon_KDBNDP",
"DBType": 6,
"Enabled": false,
"Connection": "Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1;"
@ -181,13 +181,13 @@
],
"Audience": {
"Secret": "sdfsdfsrty45634kkhllghtdgdfss345t678fs", //16+
"SecretFile": "C:\\my-file\\blog.core.audience.secret.txt", //Secret
"Issuer": "Blog.Core", //
"SecretFile": "C:\\my-file\\Tiobon.core.audience.secret.txt", //Secret
"Issuer": "Tiobon.Core", //
"Audience": "wr" //
},
"Mongo": {
"ConnectionString": "mongodb://nosql.data",
"Database": "BlogCoreDb"
"Database": "TiobonCoreDb"
},
"Startup": {
"Domain": "http://localhost:9291",
@ -201,11 +201,11 @@
"AppConfigAlert": {
"Enabled": true
},
"ApiName": "Blog.Core",
"ApiName": "Tiobon.Core",
"IdentityServer4": {
"Enabled": false, // false使jwttrue使Ids4
"AuthorizationUrl": "http://localhost:5004", //
"ApiName": "blog.core.api" //
"ApiName": "Tiobon.core.api" //
},
"Authing": {
"Enabled": false,
@ -298,7 +298,7 @@
"HttpStatusCode": 429, //
"GeneralRules": [ //api,*
{
"Endpoint": "*:/api/blog*",
"Endpoint": "*:/api/Tiobon*",
"Period": "1m",
"Limit": 20
},
@ -321,7 +321,7 @@
},
"ConsulSetting": {
"ServiceName": "BlogCoreService",
"ServiceName": "TiobonCoreService",
"ServiceIP": "localhost",
"ServicePort": "9291",
"ServiceHealthCheck": "/healthcheck",
@ -341,7 +341,7 @@
"DefaultTimeOut": 15000, //
"Namespace": "public", //
"ListenInterval": 10000, //
"ServiceName": "blog.Core.Api", //
"ServiceName": "Tiobon.Core.Api", //
"Port": "9291", //
"RegisterEnabled": true // nacos
},
@ -351,7 +351,7 @@
"ConfigsInfo": [ // elk
{
"FiedName": "applicationName",
"FiedValue": "Blog.Core.Api"
"FiedValue": "Tiobon.Core.Api"
}
]
},

@ -1,6 +1,6 @@
{
"SkyWalking": {
"ServiceName": "blog-core-api",
"ServiceName": "Tiobon-core-api",
"Namespace": "",
"HeaderVersions": [
"sw8"

@ -9,11 +9,11 @@
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" requireAccess="None" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\Blog.Core.Api.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess">
<aspNetCore processPath="dotnet" arguments=".\Tiobon.Core.Api.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" />
<environmentVariable name="ASPNETCORE_HOSTINGSTARTUPASSEMBLIES" value="SkyAPM.Agent.AspNetCore" />
<environmentVariable name="SKYWALKING__SERVICENAME" value="Blog.Core.Api" />
<environmentVariable name="SKYWALKING__SERVICENAME" value="Tiobon.Core.Api" />
</environmentVariables>
</aspNetCore>
</system.webServer>

@ -0,0 +1,15 @@
[
{
"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": " <p>问题:</p><h1><a href=\"https://www.cnTiobons.com/yipeng-yu/p/6210380.html\">The requested page cannot be accessed because the related configuration data for the page is invalid.</a></h1><p>HTTP Error 500.19 - Internal Server Error The requested page cannot be accessed because the related configuration data for the page is invalid.</p><p>Detailed Error Information:</p><p>Module IIS Web Core</p><p>Notification Unknown</p><p>Handler Not yet determined</p><p>Error Code 0x80070003</p><p>Config Error Cannot read configuration file</p><p>Config File \\?\\D:\\Projects\\...\\web.config</p><p>Requested URL http:// localhost:8080/</p><p>Physical Path</p><p>Logon Method Not yet determined</p><p>Logon User Not yet determined</p><p>Request Tracing Directory C:\\Users\\...\\TraceLogFiles\\</p><p>Config Source:</p><p>Answer:</p><p>1,find the site's application pools</p><p>2,\"Advanced Settings\" ==&gt; Indentity ==&gt;&nbsp; Custom account</p><p><br></p><p><br></p>",
"btraffic": 127,
"bcommentNum": 1,
"bUpdateTime": "\/Date(1546272000000+0800)\/",
"bCreateTime": "\/Date(1546272000000+0800)\/",
"bRemark": null,
"IsDeleted": 0
}
]
unable to load file from base commit

@ -575,7 +575,7 @@
"IsDeleted": 0,
"ParentId": null,
"Name": "获取博客",
"LinkUrl": "\/api\/Blog",
"LinkUrl": "\/api\/Tiobon",
"Area": null,
"Controller": null,
"Action": null,
@ -641,7 +641,7 @@
"IsDeleted": 1,
"ParentId": null,
"Name": "test",
"LinkUrl": "\/api\/Blog\/delete1",
"LinkUrl": "\/api\/Tiobon\/delete1",
"Area": null,
"Controller": null,
"Action": null,
@ -663,7 +663,7 @@
"IsDeleted": 1,
"ParentId": null,
"Name": "test",
"LinkUrl": "\/api\/Blog\/delete2",
"LinkUrl": "\/api\/Tiobon\/delete2",
"Area": null,
"Controller": null,
"Action": null,
@ -685,7 +685,7 @@
"IsDeleted": 0,
"ParentId": null,
"Name": "删除博客",
"LinkUrl": "\/api\/Blog\/delete",
"LinkUrl": "\/api\/Tiobon\/delete",
"Area": null,
"Controller": null,
"Action": null,
@ -1416,7 +1416,7 @@
"IsMenu": false,
"Enabled": true,
"CreateId": 12,
"CreateBy": "blogadmin",
"CreateBy": "Tiobonadmin",
"CreateTime": "2022-03-23 00:00:00",
"ModifyTime": "2022-03-23 00:00:00",
"ParentId": 0,
@ -1430,7 +1430,7 @@
"IsMenu": false,
"Enabled": true,
"CreateId": 12,
"CreateBy": "blogadmin",
"CreateBy": "Tiobonadmin",
"CreateTime": "2022-03-23 00:00:00",
"ModifyTime": "2022-03-23 00:00:00",
"ParentId": 0,
@ -1444,7 +1444,7 @@
"IsMenu": false,
"Enabled": true,
"CreateId": 12,
"CreateBy": "blogadmin",
"CreateBy": "Tiobonadmin",
"CreateTime": "2022-03-23 00:00:00",
"ModifyTime": "2022-03-23 00:00:00",
"ParentId": 0,
@ -1458,7 +1458,7 @@
"IsMenu": false,
"Enabled": true,
"CreateId": 12,
"CreateBy": "blogadmin",
"CreateBy": "Tiobonadmin",
"CreateTime": "2022-03-23 00:00:00",
"ModifyTime": "2022-03-23 00:00:00",
"ParentId": 0,
@ -1472,7 +1472,7 @@
"IsMenu": false,
"Enabled": true,
"CreateId": 12,
"CreateBy": "blogadmin",
"CreateBy": "Tiobonadmin",
"CreateTime": "2022-03-23 00:00:00",
"ModifyTime": "2022-03-23 00:00:00",
"ParentId": 0,
@ -1486,7 +1486,7 @@
"IsMenu": false,
"Enabled": true,
"CreateId": 12,
"CreateBy": "blogadmin",
"CreateBy": "Tiobonadmin",
"CreateTime": "2022-03-23 00:00:00",
"ModifyTime": "2022-03-23 00:00:00",
"ParentId": 0,
unable to load file from base commit

@ -859,7 +859,7 @@
"IsHide": 0
},
{
"Code": "\/Blog\/Blogs",
"Code": "\/Tiobon\/Tiobons",
"Name": "博客",
"IsButton": 0,
"Pid": 29,
@ -1340,7 +1340,7 @@
"IsHide": 0
},
{
"Code": "\/Blog\/Detail\/:id",
"Code": "\/Tiobon\/Detail\/:id",
"Name": "博客详情",
"IsButton": 0,
"Pid": 29,
@ -1471,7 +1471,7 @@
"Enabled": 1,
"CreateId": 12,
"CreateBy": "后台总管理员",
"Func": "getBlogs",
"Func": "getTiobons",
"CreateTime": "\/Date(1546272000000+0800)\/",
"ModifyId": null,
"ModifyBy": null,
@ -2356,7 +2356,7 @@
"Description": "",
"Enabled": true,
"CreateId": 12,
"CreateBy": "blogadmin",
"CreateBy": "Tiobonadmin",
"CreateTime": "2022-03-23 00:00:00",
"ModifyTime": "2022-03-23 00:00:00",
"IsDeleted": false,
@ -2382,7 +2382,7 @@
"Description": "",
"Enabled": true,
"CreateId": 12,
"CreateBy": "blogadmin",
"CreateBy": "Tiobonadmin",
"CreateTime": "2022-03-23 00:00:00",
"ModifyTime": "2022-03-23 00:00:00",
"IsDeleted": false,
@ -2409,7 +2409,7 @@
"Description": "",
"Enabled": true,
"CreateId": 12,
"CreateBy": "blogadmin",
"CreateBy": "Tiobonadmin",
"CreateTime": "2022-03-23 00:00:00",
"ModifyTime": "2022-03-23 00:00:00",
"IsDeleted": false,
@ -2436,7 +2436,7 @@
"Description": "",
"Enabled": true,
"CreateId": 12,
"CreateBy": "blogadmin",
"CreateBy": "Tiobonadmin",
"CreateTime": "2022-03-23 00:00:00",
"ModifyTime": "2022-03-23 00:00:00",
"IsDeleted": false,
@ -2463,7 +2463,7 @@
"Description": "",
"Enabled": true,
"CreateId": 12,
"CreateBy": "blogadmin",
"CreateBy": "Tiobonadmin",
"CreateTime": "2022-03-23 00:00:00",
"ModifyTime": "2022-03-23 00:00:00",
"IsDeleted": false,
@ -2490,7 +2490,7 @@
"Description": "",
"Enabled": true,
"CreateId": 12,
"CreateBy": "blogadmin",
"CreateBy": "Tiobonadmin",
"CreateTime": "2022-03-23 00:00:00",
"ModifyTime": "2022-03-23 00:00:00",
"IsDeleted": false,
@ -2516,7 +2516,7 @@
"Description": "",
"Enabled": true,
"CreateId": 12,
"CreateBy": "blogadmin",
"CreateBy": "Tiobonadmin",
"CreateTime": "2022-03-23 00:00:00",
"ModifyTime": "2022-03-23 00:00:00",
"IsDeleted": false,
unable to load file from base commit

@ -48,7 +48,7 @@
"OrderSort": 0,
"Enabled": 1,
"CreateId": 23,
"CreateBy": "blogadmin",
"CreateBy": "Tiobonadmin",
"CreateTime": "\/Date(1546272000000+0800)\/",
"ModifyId": null,
"ModifyBy": null,
unable to load file from base commit

@ -4,8 +4,8 @@
"JobGroup": "博客测试组",
"TriggerType": 1,
"Cron": "0 */5 * * * ?",
"AssemblyName": "Blog.Core.Tasks",
"ClassName": "Job_Blogs_Quartz",
"AssemblyName": "Tiobon.Core.Tasks",
"ClassName": "Job_Tiobons_Quartz",
"Remark": "",
"RunTimes": 0,
"BeginTime": "\/Date(1546272000000+0800)\/",
unable to load file from base commit

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save