暂存
@ -8,14 +8,14 @@ ENV ASPNETCORE_ENVIRONMENT=Production
|
|||||||
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
|
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
COPY . .
|
COPY . .
|
||||||
WORKDIR "/host/JiShe.ServicePro.HttpApi.Host"
|
WORKDIR "/host/JiShe.IoT.HttpApi.Host"
|
||||||
RUN dotnet build "JiShe.ServicePro.HttpApi.Host.csproj" -c Release -o /app/build
|
RUN dotnet build "JiShe.IoT.HttpApi.Host.csproj" -c Release -o /app/build
|
||||||
|
|
||||||
FROM build AS publish
|
FROM build AS publish
|
||||||
RUN dotnet publish "JiShe.ServicePro.HttpApi.Host.csproj" -c Release -o /app/publish /p:UseAppHost=false
|
RUN dotnet publish "JiShe.IoT.HttpApi.Host.csproj" -c Release -o /app/publish /p:UseAppHost=false
|
||||||
|
|
||||||
FROM base AS final
|
FROM base AS final
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY --from=publish /app/publish .
|
COPY --from=publish /app/publish .
|
||||||
ENTRYPOINT ["dotnet", "JiShe.ServicePro.HttpApi.Host.dll"]
|
ENTRYPOINT ["dotnet", "JiShe.IoT.HttpApi.Host.dll"]
|
||||||
|
|
||||||
|
|||||||
@ -2,55 +2,55 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
|||||||
# Visual Studio Version 17
|
# Visual Studio Version 17
|
||||||
VisualStudioVersion = 17.0.31410.414
|
VisualStudioVersion = 17.0.31410.414
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.Domain", "src\JiShe.ServicePro.Domain\JiShe.ServicePro.Domain.csproj", "{554AD327-6DBA-4F8F-96F8-81CE7A0C863F}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.Domain", "src\JiShe.IoT.Domain\JiShe.IoT.Domain.csproj", "{554AD327-6DBA-4F8F-96F8-81CE7A0C863F}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.Application", "src\JiShe.ServicePro.Application\JiShe.ServicePro.Application.csproj", "{1A94A50E-06DC-43C1-80B5-B662820EC3EB}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.Application", "src\JiShe.IoT.Application\JiShe.IoT.Application.csproj", "{1A94A50E-06DC-43C1-80B5-B662820EC3EB}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.EntityFrameworkCore", "src\JiShe.ServicePro.EntityFrameworkCore\JiShe.ServicePro.EntityFrameworkCore.csproj", "{C956DD76-69C8-4A9C-83EA-D17DF83340FD}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.EntityFrameworkCore", "src\JiShe.IoT.EntityFrameworkCore\JiShe.IoT.EntityFrameworkCore.csproj", "{C956DD76-69C8-4A9C-83EA-D17DF83340FD}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CA9AC87F-097E-4F15-8393-4BC07735A5B0}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CA9AC87F-097E-4F15-8393-4BC07735A5B0}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{04DBDB01-70F4-4E06-B468-8F87850B22BE}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{04DBDB01-70F4-4E06-B468-8F87850B22BE}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.Application.Tests", "test\JiShe.ServicePro.Application.Tests\JiShe.ServicePro.Application.Tests.csproj", "{50B2631D-129C-47B3-A587-029CCD6099BC}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.Application.Tests", "test\JiShe.IoT.Application.Tests\JiShe.IoT.Application.Tests.csproj", "{50B2631D-129C-47B3-A587-029CCD6099BC}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.Domain.Shared", "src\JiShe.ServicePro.Domain.Shared\JiShe.ServicePro.Domain.Shared.csproj", "{42F719ED-8413-4895-B5B4-5AB56079BC66}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.Domain.Shared", "src\JiShe.IoT.Domain.Shared\JiShe.IoT.Domain.Shared.csproj", "{42F719ED-8413-4895-B5B4-5AB56079BC66}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.Application.Contracts", "src\JiShe.ServicePro.Application.Contracts\JiShe.ServicePro.Application.Contracts.csproj", "{520659C8-C734-4298-A3DA-B539DB9DFC0B}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.Application.Contracts", "src\JiShe.IoT.Application.Contracts\JiShe.IoT.Application.Contracts.csproj", "{520659C8-C734-4298-A3DA-B539DB9DFC0B}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.HttpApi", "src\JiShe.ServicePro.HttpApi\JiShe.ServicePro.HttpApi.csproj", "{4164BDF7-F527-4E85-9CE6-E3C2D7426A27}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.HttpApi", "src\JiShe.IoT.HttpApi\JiShe.IoT.HttpApi.csproj", "{4164BDF7-F527-4E85-9CE6-E3C2D7426A27}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.HttpApi.Client", "src\JiShe.ServicePro.HttpApi.Client\JiShe.ServicePro.HttpApi.Client.csproj", "{3B5A0094-670D-4BB1-BFDD-61B88A8773DC}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.HttpApi.Client", "src\JiShe.IoT.HttpApi.Client\JiShe.IoT.HttpApi.Client.csproj", "{3B5A0094-670D-4BB1-BFDD-61B88A8773DC}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.EntityFrameworkCore.Tests", "test\JiShe.ServicePro.EntityFrameworkCore.Tests\JiShe.ServicePro.EntityFrameworkCore.Tests.csproj", "{1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.EntityFrameworkCore.Tests", "test\JiShe.IoT.EntityFrameworkCore.Tests\JiShe.IoT.EntityFrameworkCore.Tests.csproj", "{1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.TestBase", "test\JiShe.ServicePro.TestBase\JiShe.ServicePro.TestBase.csproj", "{91853F21-9CD9-4132-BC29-A7D5D84FFFE7}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.TestBase", "test\JiShe.IoT.TestBase\JiShe.IoT.TestBase.csproj", "{91853F21-9CD9-4132-BC29-A7D5D84FFFE7}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.Domain.Tests", "test\JiShe.ServicePro.Domain.Tests\JiShe.ServicePro.Domain.Tests.csproj", "{E512F4D9-9375-480F-A2F6-A46509F9D824}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.Domain.Tests", "test\JiShe.IoT.Domain.Tests\JiShe.IoT.Domain.Tests.csproj", "{E512F4D9-9375-480F-A2F6-A46509F9D824}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.HttpApi.Client.ConsoleTestApp", "test\JiShe.ServicePro.HttpApi.Client.ConsoleTestApp\JiShe.ServicePro.HttpApi.Client.ConsoleTestApp.csproj", "{EF480016-9127-4916-8735-D2466BDBC582}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.HttpApi.Client.ConsoleTestApp", "test\JiShe.IoT.HttpApi.Client.ConsoleTestApp\JiShe.IoT.HttpApi.Client.ConsoleTestApp.csproj", "{EF480016-9127-4916-8735-D2466BDBC582}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.DbMigrator", "src\JiShe.ServicePro.DbMigrator\JiShe.ServicePro.DbMigrator.csproj", "{AA94D832-1CCC-4715-95A9-A483F23A1A5D}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.DbMigrator", "src\JiShe.IoT.DbMigrator\JiShe.IoT.DbMigrator.csproj", "{AA94D832-1CCC-4715-95A9-A483F23A1A5D}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "0.Solution Items", "0.Solution Items", "{2C4A6DB8-8D9E-42E6-B7C3-1EDB7B3DE22E}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "0.Solution Items", "0.Solution Items", "{2C4A6DB8-8D9E-42E6-B7C3-1EDB7B3DE22E}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
NuGet.Config = NuGet.Config
|
||||||
Directory.Build.Microsoft.targets = Directory.Build.Microsoft.targets
|
Directory.Build.Microsoft.targets = Directory.Build.Microsoft.targets
|
||||||
Directory.Build.JiShe.targets = Directory.Build.JiShe.targets
|
|
||||||
Directory.Build.targets = Directory.Build.targets
|
Directory.Build.targets = Directory.Build.targets
|
||||||
Directory.Build.Volo.targets = Directory.Build.Volo.targets
|
Directory.Build.Volo.targets = Directory.Build.Volo.targets
|
||||||
|
Directory.Build.Lion.targets = Directory.Build.Lion.targets
|
||||||
Dockerfile = Dockerfile
|
Dockerfile = Dockerfile
|
||||||
NuGet.Config = NuGet.Config
|
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{8C1B8C6C-C518-4290-B070-622CCA6004DA}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{8C1B8C6C-C518-4290-B070-622CCA6004DA}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.HttpApi.Host", "host\JiShe.ServicePro.HttpApi.Host\JiShe.ServicePro.HttpApi.Host.csproj", "{FB20372D-6C96-4733-9AAC-12522F15CAA6}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.HttpApi.Host", "host\JiShe.IoT.HttpApi.Host\JiShe.IoT.HttpApi.Host.csproj", "{FB20372D-6C96-4733-9AAC-12522F15CAA6}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.FreeSqlRepository", "src\JiShe.ServicePro.FreeSqlRepository\JiShe.ServicePro.FreeSqlRepository.csproj", "{27C7A0E6-4C2E-4AFF-9DE7-1F526DDC0D18}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.FreeSqlRepository", "src\JiShe.IoT.FreeSqlRepository\JiShe.IoT.FreeSqlRepository.csproj", "{27C7A0E6-4C2E-4AFF-9DE7-1F526DDC0D18}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gateways", "gateways", "{81A8FF2E-DE2E-479D-A209-EDA81C2AF08A}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gateways", "gateways", "{81A8FF2E-DE2E-479D-A209-EDA81C2AF08A}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.WebGateway", "gateways\JiShe.ServicePro.WebGateway\JiShe.ServicePro.WebGateway.csproj", "{F1D46EE1-13D5-4227-80DC-066DEB0E4FD1}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.IoT.WebGateway", "gateways\JiShe.IoT.WebGateway\JiShe.IoT.WebGateway.csproj", "{F1D46EE1-13D5-4227-80DC-066DEB0E4FD1}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@ -17,6 +17,6 @@ ENV TZ=Asia/Shanghai
|
|||||||
# 设置环境变量
|
# 设置环境变量
|
||||||
ENV ASPNETCORE_ENVIRONMENT=Production
|
ENV ASPNETCORE_ENVIRONMENT=Production
|
||||||
|
|
||||||
ENTRYPOINT ["dotnet", "JiShe.ServicePro.WebGateway.dll"]
|
ENTRYPOINT ["dotnet", "JiShe.IoT.WebGateway.dll"]
|
||||||
|
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "http://json.schemastore.org/launchsettings.json",
|
"$schema": "http://json.schemastore.org/launchsettings.json",
|
||||||
"profiles": {
|
"profiles": {
|
||||||
"JiShe.ServicePro.WebGateway": {
|
"JiShe.IoT.WebGateway": {
|
||||||
"commandName": "Project",
|
"commandName": "Project",
|
||||||
"launchBrowser": false,
|
"launchBrowser": false,
|
||||||
"launchUrl": "swagger",
|
"launchUrl": "swagger",
|
||||||
@ -17,7 +17,7 @@
|
|||||||
{
|
{
|
||||||
"DownstreamPathTemplate": "/{url}",
|
"DownstreamPathTemplate": "/{url}",
|
||||||
"DownstreamScheme": "http",
|
"DownstreamScheme": "http",
|
||||||
"ServiceName": "ServicePro-Service",
|
"ServiceName": "IoT-Service",
|
||||||
"LoadBalancerOptions": {
|
"LoadBalancerOptions": {
|
||||||
"Type": "LeastConnection"
|
"Type": "LeastConnection"
|
||||||
},
|
},
|
||||||
@ -32,7 +32,7 @@
|
|||||||
{
|
{
|
||||||
"DownstreamPathTemplate": "/{url}",
|
"DownstreamPathTemplate": "/{url}",
|
||||||
"DownstreamScheme": "ws",
|
"DownstreamScheme": "ws",
|
||||||
"ServiceName": "ServicePro-Service",
|
"ServiceName": "IoT-Service",
|
||||||
"LoadBalancerOptions": {
|
"LoadBalancerOptions": {
|
||||||
"Type": "LeastConnection"
|
"Type": "LeastConnection"
|
||||||
},
|
},
|
||||||
@ -1,4 +1,4 @@
|
|||||||
namespace JiShe.ServicePro.Controllers
|
namespace JiShe.IoT.Controllers
|
||||||
{
|
{
|
||||||
public class HomeController : AbpController
|
public class HomeController : AbpController
|
||||||
{
|
{
|
||||||
@ -1,4 +1,4 @@
|
|||||||
namespace JiShe.ServicePro.Extensions.Hangfire;
|
namespace JiShe.IoT.Extensions.Hangfire;
|
||||||
|
|
||||||
public class AutoDeleteAfterSuccessAttributer : JobFilterAttribute, IApplyStateFilter
|
public class AutoDeleteAfterSuccessAttributer : JobFilterAttribute, IApplyStateFilter
|
||||||
{
|
{
|
||||||
@ -1,4 +1,4 @@
|
|||||||
namespace JiShe.ServicePro.Extensions.Hangfire
|
namespace JiShe.IoT.Extensions.Hangfire
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Cron类型
|
/// Cron类型
|
||||||
@ -1,4 +1,4 @@
|
|||||||
namespace JiShe.ServicePro.Extensions.Hangfire
|
namespace JiShe.IoT.Extensions.Hangfire
|
||||||
{
|
{
|
||||||
public class CustomHangfireAuthorizeFilter : IDashboardAuthorizationFilter
|
public class CustomHangfireAuthorizeFilter : IDashboardAuthorizationFilter
|
||||||
{
|
{
|
||||||
@ -1,4 +1,4 @@
|
|||||||
namespace JiShe.ServicePro.Extensions.Hangfire;
|
namespace JiShe.IoT.Extensions.Hangfire;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 重试最后一次
|
/// 重试最后一次
|
||||||
@ -1,6 +1,6 @@
|
|||||||
using JiShe.ServicePro.Jobs;
|
using JiShe.IoT.Jobs;
|
||||||
|
|
||||||
namespace JiShe.ServicePro.Extensions.Hangfire
|
namespace JiShe.IoT.Extensions.Hangfire
|
||||||
{
|
{
|
||||||
public static class RecurringJobsExtensions
|
public static class RecurringJobsExtensions
|
||||||
{
|
{
|
||||||
@ -15,10 +15,10 @@ global using Hangfire.Storage;
|
|||||||
global using JiShe.ServicePro;
|
global using JiShe.ServicePro;
|
||||||
global using JiShe.ServicePro.CAP;
|
global using JiShe.ServicePro.CAP;
|
||||||
global using JiShe.ServicePro.CAP.EntityFrameworkCore;
|
global using JiShe.ServicePro.CAP.EntityFrameworkCore;
|
||||||
global using JiShe.ServicePro.EntityFrameworkCore;
|
global using JiShe.IoT.EntityFrameworkCore;
|
||||||
global using JiShe.ServicePro.Extensions;
|
global using JiShe.IoT.Extensions;
|
||||||
global using JiShe.ServicePro.Extensions.Hangfire;
|
global using JiShe.IoT.Extensions.Hangfire;
|
||||||
global using JiShe.ServicePro.MultiTenancy;
|
global using JiShe.IoT.MultiTenancy;
|
||||||
global using Microsoft.AspNetCore.Authentication.JwtBearer;
|
global using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||||
global using Microsoft.AspNetCore.Builder;
|
global using Microsoft.AspNetCore.Builder;
|
||||||
global using Microsoft.AspNetCore.DataProtection;
|
global using Microsoft.AspNetCore.DataProtection;
|
||||||
@ -37,7 +37,7 @@ global using Microsoft.Extensions.Logging.Abstractions;
|
|||||||
global using Microsoft.Extensions.Options;
|
global using Microsoft.Extensions.Options;
|
||||||
global using Microsoft.IdentityModel.Tokens;
|
global using Microsoft.IdentityModel.Tokens;
|
||||||
global using Microsoft.OpenApi.Models;
|
global using Microsoft.OpenApi.Models;
|
||||||
global using JiShe.ServicePro;
|
global using JiShe.IoT;
|
||||||
global using Serilog;
|
global using Serilog;
|
||||||
global using StackExchange.Redis;
|
global using StackExchange.Redis;
|
||||||
global using Swagger;
|
global using Swagger;
|
||||||
@ -1,6 +1,6 @@
|
|||||||
namespace JiShe.ServicePro
|
namespace JiShe.IoT
|
||||||
{
|
{
|
||||||
public static class ServiceProHttpApiHostConst
|
public static class IoTHttpApiHostConst
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 跨域策略名
|
/// 跨域策略名
|
||||||
@ -10,7 +10,7 @@ namespace JiShe.ServicePro
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Cookies名称
|
/// Cookies名称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string DefaultCookieName = "JiShe.ServicePro.Http.Api";
|
public const string DefaultCookieName = "JiShe.IoT.Http.Api";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// SwaggerUi 端点
|
/// SwaggerUi 端点
|
||||||
@ -2,9 +2,9 @@ using Hangfire.Redis.StackExchange;
|
|||||||
using Medallion.Threading;
|
using Medallion.Threading;
|
||||||
using Medallion.Threading.Redis;
|
using Medallion.Threading.Redis;
|
||||||
|
|
||||||
namespace JiShe.ServicePro;
|
namespace JiShe.IoT;
|
||||||
|
|
||||||
public partial class ServiceProHttpApiHostModule
|
public partial class IoTHttpApiHostModule
|
||||||
{
|
{
|
||||||
private void ConfigureHangfire(ServiceConfigurationContext context)
|
private void ConfigureHangfire(ServiceConfigurationContext context)
|
||||||
{
|
{
|
||||||
@ -94,7 +94,7 @@ public partial class ServiceProHttpApiHostModule
|
|||||||
|
|
||||||
if (accessToken.IsNullOrWhiteSpace())
|
if (accessToken.IsNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
accessToken = currentContext.Request.Cookies[ServiceProHttpApiHostConst.DefaultCookieName];
|
accessToken = currentContext.Request.Cookies[IoTHttpApiHostConst.DefaultCookieName];
|
||||||
}
|
}
|
||||||
|
|
||||||
currentContext.Token = accessToken;
|
currentContext.Token = accessToken;
|
||||||
@ -212,7 +212,7 @@ public partial class ServiceProHttpApiHostModule
|
|||||||
context.AddAbpCap(capOptions =>
|
context.AddAbpCap(capOptions =>
|
||||||
{
|
{
|
||||||
capOptions.SetCapDbConnectionString(configuration["ConnectionStrings:Default"]);
|
capOptions.SetCapDbConnectionString(configuration["ConnectionStrings:Default"]);
|
||||||
capOptions.UseEntityFramework<ServiceProDbContext>();
|
capOptions.UseEntityFramework<IoTDbContext>();
|
||||||
capOptions.UseRabbitMQ(option =>
|
capOptions.UseRabbitMQ(option =>
|
||||||
{
|
{
|
||||||
option.HostName = configuration.GetValue<string>("Cap:RabbitMq:HostName");
|
option.HostName = configuration.GetValue<string>("Cap:RabbitMq:HostName");
|
||||||
@ -1,14 +1,14 @@
|
|||||||
namespace JiShe.ServicePro
|
namespace JiShe.IoT
|
||||||
{
|
{
|
||||||
[DependsOn(
|
[DependsOn(
|
||||||
typeof(ServiceProHttpApiModule),
|
typeof(IoTHttpApiModule),
|
||||||
typeof(ServiceProSharedHostingMicroserviceModule),
|
typeof(ServiceProSharedHostingMicroserviceModule),
|
||||||
typeof(AbpAspNetCoreMvcUiMultiTenancyModule),
|
typeof(AbpAspNetCoreMvcUiMultiTenancyModule),
|
||||||
typeof(ServiceProEntityFrameworkCoreModule),
|
typeof(IoTEntityFrameworkCoreModule),
|
||||||
typeof(AbpAspNetCoreAuthenticationJwtBearerModule),
|
typeof(AbpAspNetCoreAuthenticationJwtBearerModule),
|
||||||
typeof(AbpAspNetCoreSerilogModule),
|
typeof(AbpAspNetCoreSerilogModule),
|
||||||
typeof(AbpAccountWebModule),
|
typeof(AbpAccountWebModule),
|
||||||
typeof(ServiceProApplicationModule),
|
typeof(IoTApplicationModule),
|
||||||
// typeof(AbpProCapModule),
|
// typeof(AbpProCapModule),
|
||||||
// typeof(AbpProCapEntityFrameworkCoreModule),
|
// typeof(AbpProCapEntityFrameworkCoreModule),
|
||||||
typeof(AbpAspNetCoreMvcUiBasicThemeModule),
|
typeof(AbpAspNetCoreMvcUiBasicThemeModule),
|
||||||
@ -16,7 +16,7 @@ namespace JiShe.ServicePro
|
|||||||
typeof(AbpDistributedLockingModule)
|
typeof(AbpDistributedLockingModule)
|
||||||
//typeof(AbpBackgroundJobsHangfireModule)
|
//typeof(AbpBackgroundJobsHangfireModule)
|
||||||
)]
|
)]
|
||||||
public partial class ServiceProHttpApiHostModule : AbpModule
|
public partial class IoTHttpApiHostModule : AbpModule
|
||||||
{
|
{
|
||||||
public override void OnPostApplicationInitialization(ApplicationInitializationContext context)
|
public override void OnPostApplicationInitialization(ApplicationInitializationContext context)
|
||||||
{
|
{
|
||||||
@ -55,7 +55,7 @@ namespace JiShe.ServicePro
|
|||||||
}
|
}
|
||||||
|
|
||||||
app.UseRouting();
|
app.UseRouting();
|
||||||
app.UseCors(ServiceProHttpApiHostConst.DefaultCorsPolicyName);
|
app.UseCors(IoTHttpApiHostConst.DefaultCorsPolicyName);
|
||||||
app.UseAuthentication();
|
app.UseAuthentication();
|
||||||
|
|
||||||
if (MultiTenancyConsts.IsEnabled)
|
if (MultiTenancyConsts.IsEnabled)
|
||||||
@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
<TargetFramework>net9.0</TargetFramework>
|
||||||
<RootNamespace>JiShe.ServicePro</RootNamespace>
|
<RootNamespace>JiShe.IoT</RootNamespace>
|
||||||
<PreserveCompilationReferences>true</PreserveCompilationReferences>
|
<PreserveCompilationReferences>true</PreserveCompilationReferences>
|
||||||
<UserSecretsId>JiShe.ServicePro-4681b4fd-151f-4221-84a4-929d86723e4c</UserSecretsId>
|
<UserSecretsId>JiShe.IoT-4681b4fd-151f-4221-84a4-929d86723e4c</UserSecretsId>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -45,9 +45,9 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\src\JiShe.ServicePro.Application\JiShe.ServicePro.Application.csproj"/>
|
<ProjectReference Include="..\..\src\JiShe.IoT.Application\JiShe.IoT.Application.csproj"/>
|
||||||
<ProjectReference Include="..\..\src\JiShe.ServicePro.EntityFrameworkCore\JiShe.ServicePro.EntityFrameworkCore.csproj"/>
|
<ProjectReference Include="..\..\src\JiShe.IoT.EntityFrameworkCore\JiShe.IoT.EntityFrameworkCore.csproj"/>
|
||||||
<ProjectReference Include="..\..\src\JiShe.ServicePro.HttpApi\JiShe.ServicePro.HttpApi.csproj"/>
|
<ProjectReference Include="..\..\src\JiShe.IoT.HttpApi\JiShe.IoT.HttpApi.csproj"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -1,5 +1,5 @@
|
|||||||
@page
|
@page
|
||||||
@model JiShe.ServicePro.Pages.Login
|
@model JiShe.IoT.Pages.Login
|
||||||
|
|
||||||
@{
|
@{
|
||||||
Layout = null;
|
Layout = null;
|
||||||
@ -5,7 +5,7 @@ using JiShe.ServicePro.BasicManagement.Users.Dtos;
|
|||||||
using Microsoft.AspNetCore.Mvc.RazorPages;
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||||
|
|
||||||
|
|
||||||
namespace JiShe.ServicePro.Pages
|
namespace JiShe.IoT.Pages
|
||||||
{
|
{
|
||||||
public class Login : PageModel
|
public class Login : PageModel
|
||||||
{
|
{
|
||||||
@ -48,12 +48,12 @@ namespace JiShe.ServicePro.Pages
|
|||||||
|
|
||||||
|
|
||||||
// 设置cookies domain
|
// 设置cookies domain
|
||||||
//options.Domain = "ServicePro.cn";
|
//options.Domain = "IoT.cn";
|
||||||
|
|
||||||
|
|
||||||
var result = await _accountAppService.LoginAsync(new LoginInput()
|
var result = await _accountAppService.LoginAsync(new LoginInput()
|
||||||
{ Name = userName, Password = password });
|
{ Name = userName, Password = password });
|
||||||
Response.Cookies.Append(ServiceProHttpApiHostConst.DefaultCookieName,
|
Response.Cookies.Append(IoTHttpApiHostConst.DefaultCookieName,
|
||||||
result.Token, options);
|
result.Token, options);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
@ -1,6 +1,6 @@
|
|||||||
@page
|
@page
|
||||||
@using JiShe.ServicePro
|
@using JiShe.IoT
|
||||||
@model JiShe.ServicePro.Pages.Monitor
|
@model JiShe.IoT.Pages.Monitor
|
||||||
|
|
||||||
|
|
||||||
@{
|
@{
|
||||||
@ -27,12 +27,12 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-6 col-md-4 col-lg-3">
|
<div class="col-sm-6 col-md-4 col-lg-3">
|
||||||
<div class="thumbnail" style="height: 180px">
|
<div class="thumbnail" style="height: 180px">
|
||||||
<a href="@ServiceProHttpApiHostConst.SwaggerUiEndPoint" target="_blank">
|
<a href="@IoTHttpApiHostConst.SwaggerUiEndPoint" target="_blank">
|
||||||
<img class="lazy" src="/images/swagger.png" width="300" height="150"/>
|
<img class="lazy" src="/images/swagger.png" width="300" height="150"/>
|
||||||
</a>
|
</a>
|
||||||
<div class="caption">
|
<div class="caption">
|
||||||
<h3>
|
<h3>
|
||||||
<a href="@ServiceProHttpApiHostConst.SwaggerUiEndPoint" target="_blank">SwaggerUI</a>
|
<a href="@IoTHttpApiHostConst.SwaggerUiEndPoint" target="_blank">SwaggerUI</a>
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -40,36 +40,36 @@
|
|||||||
|
|
||||||
@* <div class="col-sm-6 col-md-4 col-lg-3"> *@
|
@* <div class="col-sm-6 col-md-4 col-lg-3"> *@
|
||||||
@* <div class="thumbnail" style="height: 180px"> *@
|
@* <div class="thumbnail" style="height: 180px"> *@
|
||||||
@* <a href="@ServiceProHttpApiHostConst.HangfireDashboardEndPoint" target="_blank"> *@
|
@* <a href="@IoTHttpApiHostConst.HangfireDashboardEndPoint" target="_blank"> *@
|
||||||
@* <img class="lazy" src="/images/hangfire.png" width="300" height="150"/> *@
|
@* <img class="lazy" src="/images/hangfire.png" width="300" height="150"/> *@
|
||||||
@* </a> *@
|
@* </a> *@
|
||||||
@* <div class="caption"> *@
|
@* <div class="caption"> *@
|
||||||
@* <h3> *@
|
@* <h3> *@
|
||||||
@* <a href="@ServiceProHttpApiHostConst.HangfireDashboardEndPoint" target="_blank">Hangfire面板</a> *@
|
@* <a href="@IoTHttpApiHostConst.HangfireDashboardEndPoint" target="_blank">Hangfire面板</a> *@
|
||||||
@* </h3> *@
|
@* </h3> *@
|
||||||
@* </div> *@
|
@* </div> *@
|
||||||
@* </div> *@
|
@* </div> *@
|
||||||
@* </div> *@
|
@* </div> *@
|
||||||
<div class="col-sm-6 col-md-4 col-lg-3">
|
<div class="col-sm-6 col-md-4 col-lg-3">
|
||||||
<div class="thumbnail" style="height: 180px">
|
<div class="thumbnail" style="height: 180px">
|
||||||
<a href="@ServiceProHttpApiHostConst.MiniprofilerEndPoint" target="_blank">
|
<a href="@IoTHttpApiHostConst.MiniprofilerEndPoint" target="_blank">
|
||||||
<img class="lazy" src="/images/miniprofiler.png" width="300" height="150"/>
|
<img class="lazy" src="/images/miniprofiler.png" width="300" height="150"/>
|
||||||
</a>
|
</a>
|
||||||
<div class="caption">
|
<div class="caption">
|
||||||
<h3>
|
<h3>
|
||||||
<a href="@ServiceProHttpApiHostConst.MiniprofilerEndPoint" target="_blank">Miniprofiler</a>
|
<a href="@IoTHttpApiHostConst.MiniprofilerEndPoint" target="_blank">Miniprofiler</a>
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6 col-md-4 col-lg-3">
|
<div class="col-sm-6 col-md-4 col-lg-3">
|
||||||
<div class="thumbnail" style="height: 180px">
|
<div class="thumbnail" style="height: 180px">
|
||||||
<a href="@ServiceProHttpApiHostConst.MoreEndPoint" target="_blank">
|
<a href="@IoTHttpApiHostConst.MoreEndPoint" target="_blank">
|
||||||
<img class="lazy" src="/images/more.png" width="300" height="150"/>
|
<img class="lazy" src="/images/more.png" width="300" height="150"/>
|
||||||
</a>
|
</a>
|
||||||
<div class="caption">
|
<div class="caption">
|
||||||
<h3>
|
<h3>
|
||||||
<a href="@ServiceProHttpApiHostConst.MoreEndPoint" target="_blank">了解更多...</a>
|
<a href="@IoTHttpApiHostConst.MoreEndPoint" target="_blank">了解更多...</a>
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -1,6 +1,6 @@
|
|||||||
using Microsoft.AspNetCore.Mvc.RazorPages;
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||||
|
|
||||||
namespace JiShe.ServicePro.Pages
|
namespace JiShe.IoT.Pages
|
||||||
{
|
{
|
||||||
public class Monitor : PageModel
|
public class Monitor : PageModel
|
||||||
{
|
{
|
||||||
@ -1,6 +1,6 @@
|
|||||||
using Serilog.Events;
|
using Serilog.Events;
|
||||||
|
|
||||||
namespace JiShe.ServicePro;
|
namespace JiShe.IoT;
|
||||||
|
|
||||||
public class Program
|
public class Program
|
||||||
{
|
{
|
||||||
@ -24,7 +24,7 @@ public class Program
|
|||||||
loggerConfiguration,
|
loggerConfiguration,
|
||||||
context.Configuration);
|
context.Configuration);
|
||||||
});
|
});
|
||||||
await builder.AddApplicationAsync<JiShe.ServicePro.ServiceProHttpApiHostModule>();
|
await builder.AddApplicationAsync<JiShe.IoT.IoTHttpApiHostModule>();
|
||||||
var app = builder.Build();
|
var app = builder.Build();
|
||||||
await app.InitializeApplicationAsync();
|
await app.InitializeApplicationAsync();
|
||||||
await app.RunAsync();
|
await app.RunAsync();
|
||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"profiles": {
|
"profiles": {
|
||||||
"JiShe.ServicePro.HttpApi.Host": {
|
"JiShe.IoT.HttpApi.Host": {
|
||||||
"commandName": "Project",
|
"commandName": "Project",
|
||||||
"launchBrowser": true,
|
"launchBrowser": true,
|
||||||
"applicationUrl": "http://localhost:44315",
|
"applicationUrl": "http://localhost:44315",
|
||||||
32
host/JiShe.IoT.HttpApi.Host/appsettings.Development.json
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"App": {
|
||||||
|
"SelfUrl": "http://localhost:44315",
|
||||||
|
"CorsOrigins": "https://*.IoT.com,http://localhost:4200,http://localhost:3100,http://localhost:80,http://localhost"
|
||||||
|
},
|
||||||
|
"ConnectionStrings": {
|
||||||
|
"Default": "Data Source=localhost;Port=3306;Database=JiSheIoTDB;uid=root;pwd=1q2w3E*;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
|
||||||
|
},
|
||||||
|
"Redis": {
|
||||||
|
"Configuration": "localhost,password=1q2w3E*,defaultdatabase=1"
|
||||||
|
},
|
||||||
|
"Jwt": {
|
||||||
|
"Audience": "JiShe.IoT",
|
||||||
|
"SecurityKey": "dzehzRz9a8asdfasfdadfasdfasdfafsdadfasbasdf=",
|
||||||
|
"Issuer": "JiShe.IoT",
|
||||||
|
"ExpirationTime": 2
|
||||||
|
},
|
||||||
|
"Cap": {
|
||||||
|
"RabbitMq": {
|
||||||
|
"HostName": "localhost",
|
||||||
|
"UserName": "admin",
|
||||||
|
"Password": "1q2w3E*",
|
||||||
|
"Port": 5672
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Hangfire": {
|
||||||
|
"Redis": {
|
||||||
|
"Host": "localhost,password=1q2w3E*",
|
||||||
|
"DB": "2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,18 +1,18 @@
|
|||||||
{
|
{
|
||||||
"App": {
|
"App": {
|
||||||
"SelfUrl": "http://localhost:44315",
|
"SelfUrl": "http://localhost:44315",
|
||||||
"CorsOrigins": "https://*.ServicePro.com,http://localhost:4200,http://localhost:3100,http://localhost:80,http://localhost"
|
"CorsOrigins": "https://*.IoT.com,http://localhost:4200,http://localhost:3100,http://localhost:80,http://localhost"
|
||||||
},
|
},
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"Default": "Data Source=localhost;Port=3306;Database=JiSheServiceProDB;uid=root;pwd=IFKy!Cufe3V9sYcz;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
|
"Default": "Data Source=localhost;Port=3306;Database=JiSheIoTDB;uid=root;pwd=IFKy!Cufe3V9sYcz;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
|
||||||
},
|
},
|
||||||
"Redis": {
|
"Redis": {
|
||||||
"Configuration": "localhost,password=1q2w3E*,defaultdatabase=1"
|
"Configuration": "localhost,password=1q2w3E*,defaultdatabase=1"
|
||||||
},
|
},
|
||||||
"Jwt": {
|
"Jwt": {
|
||||||
"Audience": "JiShe.ServicePro",
|
"Audience": "JiShe.IoT",
|
||||||
"SecurityKey": "dzehzRz9a8asdfasfdadfasdfasdfafsdadfasbasdf=",
|
"SecurityKey": "dzehzRz9a8asdfasfdadfasdfasdfafsdadfasbasdf=",
|
||||||
"Issuer": "JiShe.ServicePro",
|
"Issuer": "JiShe.IoT",
|
||||||
"ExpirationTime": 2
|
"ExpirationTime": 2
|
||||||
},
|
},
|
||||||
"Cap": {
|
"Cap": {
|
||||||
@ -31,6 +31,6 @@
|
|||||||
},
|
},
|
||||||
"App": {
|
"App": {
|
||||||
"SelfUrl": "http://localhost:44315",
|
"SelfUrl": "http://localhost:44315",
|
||||||
"CorsOrigins": "https://*.ServicePro.com,http://localhost:4200,http://localhost:3100"
|
"CorsOrigins": "https://*.IoT.com,http://localhost:4200,http://localhost:3100"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
@ -1,52 +0,0 @@
|
|||||||
{
|
|
||||||
"App": {
|
|
||||||
"SelfUrl": "http://localhost:44315",
|
|
||||||
"CorsOrigins": "https://*.ServicePro.com,http://localhost:4200,http://localhost:3100,http://localhost:80,http://localhost"
|
|
||||||
},
|
|
||||||
"ConnectionStrings": {
|
|
||||||
"Default": "Data Source=localhost;Port=3306;Database=JiSheServiceProDB;uid=root;pwd=admin123;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
|
|
||||||
},
|
|
||||||
"Hangfire": {
|
|
||||||
"Redis": {
|
|
||||||
"Host": "192.168.5.9:6380,password=1q2w3e!@#",
|
|
||||||
"DB": "2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Redis": {
|
|
||||||
"Configuration": "192.168.5.9:6380,password=1q2w3e!@#,defaultdatabase=5"
|
|
||||||
},
|
|
||||||
"Kafka": {
|
|
||||||
"BootstrapServers": "192.168.5.9:29092,192.168.5.9:39092,192.168.5.9:49092",
|
|
||||||
"EnableFilter": true,
|
|
||||||
"EnableAuthorization": false,
|
|
||||||
"SaslUserName": "lixiao",
|
|
||||||
"SaslPassword": "lixiao1980",
|
|
||||||
"KafkaReplicationFactor": 3,
|
|
||||||
"NumPartitions": 30,
|
|
||||||
"TaskThreadCount": -1,
|
|
||||||
"FirstCollectionTime": "2025-04-22 16:07:00"
|
|
||||||
},
|
|
||||||
"IoTDBOptions": {
|
|
||||||
"UserName": "root",
|
|
||||||
"Password": "root",
|
|
||||||
"ClusterList": [ "121.42.175.177:16667" ],
|
|
||||||
"PoolSize": 32,
|
|
||||||
"DataBaseName": "energy",
|
|
||||||
"OpenDebugMode": true,
|
|
||||||
"UseTableSessionPoolByDefault": false
|
|
||||||
},
|
|
||||||
"Jwt": {
|
|
||||||
"Audience": "JiShe.ServicePro",
|
|
||||||
"SecurityKey": "dzehzRz9a8asdfasfdadfasdfasdfafsdadfasbasdf=",
|
|
||||||
"Issuer": "JiShe.ServicePro",
|
|
||||||
"ExpirationTime": 2
|
|
||||||
},
|
|
||||||
"Cap": {
|
|
||||||
"RabbitMq": {
|
|
||||||
"HostName": "localhost",
|
|
||||||
"UserName": "admin",
|
|
||||||
"Password": "1q2w3E*",
|
|
||||||
"Port": 5672
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -2,10 +2,10 @@ using JiShe.ServicePro.CodeManagement;
|
|||||||
using JiShe.ServicePro.DynamicMenuManagement;
|
using JiShe.ServicePro.DynamicMenuManagement;
|
||||||
using JiShe.ServicePro.TemplateManagement;
|
using JiShe.ServicePro.TemplateManagement;
|
||||||
|
|
||||||
namespace JiShe.ServicePro
|
namespace JiShe.IoT
|
||||||
{
|
{
|
||||||
[DependsOn(
|
[DependsOn(
|
||||||
typeof(ServiceProDomainSharedModule),
|
typeof(IoTDomainSharedModule),
|
||||||
typeof(AbpObjectExtendingModule),
|
typeof(AbpObjectExtendingModule),
|
||||||
typeof(BasicManagementApplicationContractsModule),
|
typeof(BasicManagementApplicationContractsModule),
|
||||||
typeof(NotificationManagementApplicationContractsModule),
|
typeof(NotificationManagementApplicationContractsModule),
|
||||||
@ -15,11 +15,11 @@ namespace JiShe.ServicePro
|
|||||||
typeof(TemplateManagementApplicationContractsModule),
|
typeof(TemplateManagementApplicationContractsModule),
|
||||||
typeof(DynamicMenuManagementApplicationContractsModule)
|
typeof(DynamicMenuManagementApplicationContractsModule)
|
||||||
)]
|
)]
|
||||||
public class ServiceProApplicationContractsModule : AbpModule
|
public class IoTApplicationContractsModule : AbpModule
|
||||||
{
|
{
|
||||||
public override void PreConfigureServices(ServiceConfigurationContext context)
|
public override void PreConfigureServices(ServiceConfigurationContext context)
|
||||||
{
|
{
|
||||||
ServiceProDtoExtensions.Configure();
|
IoTDtoExtensions.Configure();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,6 +1,6 @@
|
|||||||
namespace JiShe.ServicePro
|
namespace JiShe.IoT
|
||||||
{
|
{
|
||||||
public static class ServiceProDtoExtensions
|
public static class IoTDtoExtensions
|
||||||
{
|
{
|
||||||
private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner();
|
private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner();
|
||||||
|
|
||||||
@ -1,12 +1,12 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
<TargetFramework>net9.0</TargetFramework>
|
||||||
<RootNamespace>JiShe.ServicePro</RootNamespace>
|
<RootNamespace>JiShe.IoT</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\JiShe.ServicePro.Domain.Shared\JiShe.ServicePro.Domain.Shared.csproj"/>
|
<ProjectReference Include="..\JiShe.IoT.Domain.Shared\JiShe.IoT.Domain.Shared.csproj"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
namespace JiShe.ServicePro.Jobs
|
namespace JiShe.IoT.Jobs
|
||||||
{
|
{
|
||||||
public interface IRecurringJob : ITransientDependency
|
public interface IRecurringJob : ITransientDependency
|
||||||
{
|
{
|
||||||
@ -1,6 +1,6 @@
|
|||||||
namespace JiShe.ServicePro.Permissions
|
namespace JiShe.IoT.Permissions
|
||||||
{
|
{
|
||||||
public class ServiceProPermissionDefinitionProvider : PermissionDefinitionProvider
|
public class IoTPermissionDefinitionProvider : PermissionDefinitionProvider
|
||||||
{
|
{
|
||||||
public override void Define(IPermissionDefinitionContext context)
|
public override void Define(IPermissionDefinitionContext context)
|
||||||
{
|
{
|
||||||
@ -11,7 +11,7 @@ namespace JiShe.ServicePro.Permissions
|
|||||||
|
|
||||||
private static LocalizableString L(string name)
|
private static LocalizableString L(string name)
|
||||||
{
|
{
|
||||||
return LocalizableString.Create<ServiceProResource>(name);
|
return LocalizableString.Create<IoTResource>(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
namespace JiShe.IoT.Permissions
|
||||||
|
{
|
||||||
|
public static class IoTPermissions
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -8,8 +8,8 @@ global using JiShe.ServicePro.BasicManagement;
|
|||||||
global using JiShe.ServicePro.DataDictionaryManagement;
|
global using JiShe.ServicePro.DataDictionaryManagement;
|
||||||
global using JiShe.ServicePro.LanguageManagement;
|
global using JiShe.ServicePro.LanguageManagement;
|
||||||
global using JiShe.ServicePro.NotificationManagement;
|
global using JiShe.ServicePro.NotificationManagement;
|
||||||
global using JiShe.ServicePro.FreeSqlRepository;
|
global using JiShe.IoT.FreeSqlRepository;
|
||||||
global using JiShe.ServicePro.Permissions;
|
global using JiShe.IoT.Permissions;
|
||||||
global using Microsoft.AspNetCore.Authorization;
|
global using Microsoft.AspNetCore.Authorization;
|
||||||
global using Microsoft.Extensions.Configuration;
|
global using Microsoft.Extensions.Configuration;
|
||||||
global using Volo.Abp.Application.Services;
|
global using Volo.Abp.Application.Services;
|
||||||
12
src/JiShe.IoT.Application/IoTAppService.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
namespace JiShe.IoT
|
||||||
|
{
|
||||||
|
/* Inherit your application services from this class.
|
||||||
|
*/
|
||||||
|
public abstract class IoTAppService : ApplicationService
|
||||||
|
{
|
||||||
|
protected IoTAppService()
|
||||||
|
{
|
||||||
|
LocalizationResource = typeof(IoTResource);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
10
src/JiShe.IoT.Application/IoTApplicationAutoMapperProfile.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
namespace JiShe.IoT
|
||||||
|
{
|
||||||
|
public class IoTApplicationAutoMapperProfile : Profile
|
||||||
|
{
|
||||||
|
public IoTApplicationAutoMapperProfile()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -2,11 +2,11 @@ using JiShe.ServicePro.CodeManagement;
|
|||||||
using JiShe.ServicePro.DynamicMenuManagement;
|
using JiShe.ServicePro.DynamicMenuManagement;
|
||||||
using JiShe.ServicePro.TemplateManagement;
|
using JiShe.ServicePro.TemplateManagement;
|
||||||
|
|
||||||
namespace JiShe.ServicePro
|
namespace JiShe.IoT
|
||||||
{
|
{
|
||||||
[DependsOn(
|
[DependsOn(
|
||||||
typeof(ServiceProDomainModule),
|
typeof(IoTDomainModule),
|
||||||
typeof(ServiceProApplicationContractsModule),
|
typeof(IoTApplicationContractsModule),
|
||||||
typeof(BasicManagementApplicationModule),
|
typeof(BasicManagementApplicationModule),
|
||||||
typeof(NotificationManagementApplicationModule),
|
typeof(NotificationManagementApplicationModule),
|
||||||
typeof(DataDictionaryManagementApplicationModule),
|
typeof(DataDictionaryManagementApplicationModule),
|
||||||
@ -14,15 +14,15 @@ namespace JiShe.ServicePro
|
|||||||
typeof(CodeManagementApplicationModule),
|
typeof(CodeManagementApplicationModule),
|
||||||
typeof(TemplateManagementApplicationModule),
|
typeof(TemplateManagementApplicationModule),
|
||||||
typeof(DynamicMenuManagementApplicationModule),
|
typeof(DynamicMenuManagementApplicationModule),
|
||||||
typeof(ServiceProFreeSqlModule)
|
typeof(IoTFreeSqlModule)
|
||||||
)]
|
)]
|
||||||
public class ServiceProApplicationModule : AbpModule
|
public class IoTApplicationModule : AbpModule
|
||||||
{
|
{
|
||||||
public override void ConfigureServices(ServiceConfigurationContext context)
|
public override void ConfigureServices(ServiceConfigurationContext context)
|
||||||
{
|
{
|
||||||
Configure<AbpAutoMapperOptions>(options =>
|
Configure<AbpAutoMapperOptions>(options =>
|
||||||
{
|
{
|
||||||
options.AddMaps<ServiceProApplicationModule>();
|
options.AddMaps<IoTApplicationModule>();
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -3,13 +3,13 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
<TargetFramework>net9.0</TargetFramework>
|
||||||
<RootNamespace>JiShe.ServicePro</RootNamespace>
|
<RootNamespace>JiShe.IoT</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\JiShe.ServicePro.Domain\JiShe.ServicePro.Domain.csproj"/>
|
<ProjectReference Include="..\JiShe.IoT.Domain\JiShe.IoT.Domain.csproj"/>
|
||||||
<ProjectReference Include="..\JiShe.ServicePro.Application.Contracts\JiShe.ServicePro.Application.Contracts.csproj"/>
|
<ProjectReference Include="..\JiShe.IoT.Application.Contracts\JiShe.IoT.Application.Contracts.csproj"/>
|
||||||
<ProjectReference Include="..\JiShe.ServicePro.FreeSqlRepository\JiShe.ServicePro.FreeSqlRepository.csproj"/>
|
<ProjectReference Include="..\JiShe.IoT.FreeSqlRepository\JiShe.IoT.FreeSqlRepository.csproj"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
namespace JiShe.ServicePro.Jobs
|
namespace JiShe.IoT.Jobs
|
||||||
{
|
{
|
||||||
public class TestJob : IRecurringJob
|
public class TestJob : IRecurringJob
|
||||||
{
|
{
|
||||||
2
src/JiShe.IoT.Application/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
[assembly:InternalsVisibleToAttribute("JiShe.IoT.Application.Tests")]
|
||||||
@ -1,6 +1,6 @@
|
|||||||
using Volo.Abp.Data;
|
using Volo.Abp.Data;
|
||||||
|
|
||||||
namespace JiShe.ServicePro.DbMigrator
|
namespace JiShe.IoT.DbMigrator
|
||||||
{
|
{
|
||||||
public class DbMigratorHostedService : IHostedService
|
public class DbMigratorHostedService : IHostedService
|
||||||
{
|
{
|
||||||
@ -15,7 +15,7 @@ namespace JiShe.ServicePro.DbMigrator
|
|||||||
|
|
||||||
public async Task StartAsync(CancellationToken cancellationToken)
|
public async Task StartAsync(CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
using (var application = await AbpApplicationFactory.CreateAsync<ServiceProDbMigratorModule>(options =>
|
using (var application = await AbpApplicationFactory.CreateAsync<IoTDbMigratorModule>(options =>
|
||||||
{
|
{
|
||||||
options.Services.ReplaceConfiguration(_configuration);
|
options.Services.ReplaceConfiguration(_configuration);
|
||||||
options.UseAutofac();
|
options.UseAutofac();
|
||||||
@ -28,7 +28,7 @@ namespace JiShe.ServicePro.DbMigrator
|
|||||||
|
|
||||||
await application
|
await application
|
||||||
.ServiceProvider
|
.ServiceProvider
|
||||||
.GetRequiredService<ServiceProDbMigrationService>()
|
.GetRequiredService<IoTDbMigrationService>()
|
||||||
.MigrateAsync();
|
.MigrateAsync();
|
||||||
|
|
||||||
await application.ShutdownAsync();
|
await application.ShutdownAsync();
|
||||||
@ -4,8 +4,8 @@ global using System;
|
|||||||
global using System.IO;
|
global using System.IO;
|
||||||
global using System.Threading;
|
global using System.Threading;
|
||||||
global using System.Threading.Tasks;
|
global using System.Threading.Tasks;
|
||||||
global using JiShe.ServicePro.Data;
|
global using JiShe.IoT.Data;
|
||||||
global using JiShe.ServicePro.EntityFrameworkCore;
|
global using JiShe.IoT.EntityFrameworkCore;
|
||||||
global using Microsoft.Extensions.Configuration;
|
global using Microsoft.Extensions.Configuration;
|
||||||
global using Microsoft.Extensions.DependencyInjection;
|
global using Microsoft.Extensions.DependencyInjection;
|
||||||
global using Microsoft.Extensions.Hosting;
|
global using Microsoft.Extensions.Hosting;
|
||||||
@ -1,13 +1,13 @@
|
|||||||
using Volo.Abp.Localization;
|
using Volo.Abp.Localization;
|
||||||
|
|
||||||
namespace JiShe.ServicePro.DbMigrator
|
namespace JiShe.IoT.DbMigrator
|
||||||
{
|
{
|
||||||
[DependsOn(
|
[DependsOn(
|
||||||
typeof(AbpAutofacModule),
|
typeof(AbpAutofacModule),
|
||||||
typeof(ServiceProEntityFrameworkCoreModule),
|
typeof(IoTEntityFrameworkCoreModule),
|
||||||
typeof(ServiceProApplicationContractsModule)
|
typeof(IoTApplicationContractsModule)
|
||||||
)]
|
)]
|
||||||
public class ServiceProDbMigratorModule : AbpModule
|
public class IoTDbMigratorModule : AbpModule
|
||||||
{
|
{
|
||||||
public override void ConfigureServices(ServiceConfigurationContext context)
|
public override void ConfigureServices(ServiceConfigurationContext context)
|
||||||
{
|
{
|
||||||
@ -16,8 +16,8 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
||||||
<ProjectReference Include="..\JiShe.ServicePro.Application.Contracts\JiShe.ServicePro.Application.Contracts.csproj"/>
|
<ProjectReference Include="..\JiShe.IoT.Application.Contracts\JiShe.IoT.Application.Contracts.csproj"/>
|
||||||
<ProjectReference Include="..\JiShe.ServicePro.EntityFrameworkCore\JiShe.ServicePro.EntityFrameworkCore.csproj"/>
|
<ProjectReference Include="..\JiShe.IoT.EntityFrameworkCore\JiShe.IoT.EntityFrameworkCore.csproj"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
namespace JiShe.ServicePro.DbMigrator
|
namespace JiShe.IoT.DbMigrator
|
||||||
{
|
{
|
||||||
class Program
|
class Program
|
||||||
{
|
{
|
||||||
@ -9,9 +9,9 @@ namespace JiShe.ServicePro.DbMigrator
|
|||||||
.MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
|
.MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
|
||||||
.MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning)
|
.MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning)
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
.MinimumLevel.Override("JiShe.ServicePro", LogEventLevel.Debug)
|
.MinimumLevel.Override("JiShe.IoT", LogEventLevel.Debug)
|
||||||
#else
|
#else
|
||||||
.MinimumLevel.Override("JiShe.ServicePro", LogEventLevel.Information)
|
.MinimumLevel.Override("JiShe.IoT", LogEventLevel.Information)
|
||||||
#endif
|
#endif
|
||||||
.Enrich.FromLogContext()
|
.Enrich.FromLogContext()
|
||||||
.WriteTo.Async(c => c.File("Logs/logs.txt"))
|
.WriteTo.Async(c => c.File("Logs/logs.txt"))
|
||||||
5
src/JiShe.IoT.DbMigrator/appsettings.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"ConnectionStrings": {
|
||||||
|
"Default": "Data Source=localhost;Port=3306;Database=JiSheIoTDB;uid=root;pwd=1q2w3E*;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
|
||||||
|
}
|
||||||
|
}
|
||||||
7
src/JiShe.IoT.Domain.Shared/IoTDomainErrorCodes.cs
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
namespace JiShe.IoT
|
||||||
|
{
|
||||||
|
public static class IoTDomainErrorCodes
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,9 +1,9 @@
|
|||||||
namespace JiShe.ServicePro;
|
namespace JiShe.IoT;
|
||||||
|
|
||||||
public class ServiceProDomainSharedConsts
|
public class IoTDomainSharedConsts
|
||||||
{
|
{
|
||||||
/// <summary>名称空间</summary>
|
/// <summary>名称空间</summary>
|
||||||
public const string NameSpace = "JiShe.ServicePro";
|
public const string NameSpace = "JiShe.IoT";
|
||||||
/// <summary>默认语言</summary>
|
/// <summary>默认语言</summary>
|
||||||
public const string DefaultCultureName = "zh-Hans";
|
public const string DefaultCultureName = "zh-Hans";
|
||||||
}
|
}
|
||||||
@ -2,7 +2,7 @@ using JiShe.ServicePro.CodeManagement;
|
|||||||
using JiShe.ServicePro.DynamicMenuManagement;
|
using JiShe.ServicePro.DynamicMenuManagement;
|
||||||
using JiShe.ServicePro.TemplateManagement;
|
using JiShe.ServicePro.TemplateManagement;
|
||||||
|
|
||||||
namespace JiShe.ServicePro
|
namespace JiShe.IoT
|
||||||
{
|
{
|
||||||
[DependsOn(
|
[DependsOn(
|
||||||
typeof(BasicManagementDomainSharedModule),
|
typeof(BasicManagementDomainSharedModule),
|
||||||
@ -14,35 +14,35 @@ namespace JiShe.ServicePro
|
|||||||
typeof(DynamicMenuManagementDomainSharedModule),
|
typeof(DynamicMenuManagementDomainSharedModule),
|
||||||
typeof(ServiceProCoreModule)
|
typeof(ServiceProCoreModule)
|
||||||
)]
|
)]
|
||||||
public class ServiceProDomainSharedModule : AbpModule
|
public class IoTDomainSharedModule : AbpModule
|
||||||
{
|
{
|
||||||
public override void PreConfigureServices(ServiceConfigurationContext context)
|
public override void PreConfigureServices(ServiceConfigurationContext context)
|
||||||
{
|
{
|
||||||
ServiceProGlobalFeatureConfigurator.Configure();
|
IoTGlobalFeatureConfigurator.Configure();
|
||||||
ServiceProModuleExtensionConfigurator.Configure();
|
IoTModuleExtensionConfigurator.Configure();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ConfigureServices(ServiceConfigurationContext context)
|
public override void ConfigureServices(ServiceConfigurationContext context)
|
||||||
{
|
{
|
||||||
Configure<AbpVirtualFileSystemOptions>(options =>
|
Configure<AbpVirtualFileSystemOptions>(options =>
|
||||||
{
|
{
|
||||||
options.FileSets.AddEmbedded<ServiceProDomainSharedModule>(ServiceProDomainSharedConsts.NameSpace);
|
options.FileSets.AddEmbedded<IoTDomainSharedModule>(IoTDomainSharedConsts.NameSpace);
|
||||||
});
|
});
|
||||||
|
|
||||||
Configure<AbpLocalizationOptions>(options =>
|
Configure<AbpLocalizationOptions>(options =>
|
||||||
{
|
{
|
||||||
options.Resources
|
options.Resources
|
||||||
.Add<ServiceProResource>(ServiceProDomainSharedConsts.DefaultCultureName)
|
.Add<IoTResource>(IoTDomainSharedConsts.DefaultCultureName)
|
||||||
.AddVirtualJson("/Localization/ServicePro")
|
.AddVirtualJson("/Localization/IoT")
|
||||||
.AddBaseTypes(typeof(BasicManagementResource))
|
.AddBaseTypes(typeof(BasicManagementResource))
|
||||||
.AddBaseTypes(typeof(AbpTimingResource));
|
.AddBaseTypes(typeof(AbpTimingResource));
|
||||||
|
|
||||||
options.DefaultResourceType = typeof(ServiceProResource);
|
options.DefaultResourceType = typeof(IoTResource);
|
||||||
});
|
});
|
||||||
|
|
||||||
Configure<AbpExceptionLocalizationOptions>(options =>
|
Configure<AbpExceptionLocalizationOptions>(options =>
|
||||||
{
|
{
|
||||||
options.MapCodeNamespace(ServiceProDomainSharedConsts.NameSpace, typeof(ServiceProResource));
|
options.MapCodeNamespace(IoTDomainSharedConsts.NameSpace, typeof(IoTResource));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
namespace JiShe.ServicePro
|
namespace JiShe.IoT
|
||||||
{
|
{
|
||||||
public static class ServiceProGlobalFeatureConfigurator
|
public static class IoTGlobalFeatureConfigurator
|
||||||
{
|
{
|
||||||
private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner();
|
private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner();
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
namespace JiShe.ServicePro
|
namespace JiShe.IoT
|
||||||
{
|
{
|
||||||
public static class ServiceProModuleExtensionConfigurator
|
public static class IoTModuleExtensionConfigurator
|
||||||
{
|
{
|
||||||
private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner();
|
private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner();
|
||||||
|
|
||||||
@ -1,13 +1,13 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
<TargetFramework>net9.0</TargetFramework>
|
||||||
<RootNamespace>JiShe.ServicePro</RootNamespace>
|
<RootNamespace>JiShe.IoT</RootNamespace>
|
||||||
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
|
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="Localization\ServicePro\*.json"/>
|
<EmbeddedResource Include="Localization\IoT\*.json"/>
|
||||||
<Content Remove="Localization\ServicePro\*.json"/>
|
<Content Remove="Localization\IoT\*.json"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
||||||
8
src/JiShe.IoT.Domain.Shared/Localization/IoTResource.cs
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
namespace JiShe.IoT
|
||||||
|
{
|
||||||
|
[LocalizationResourceName("IoT")]
|
||||||
|
public class IoTResource
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,4 +1,4 @@
|
|||||||
namespace JiShe.ServicePro.MultiTenancy
|
namespace JiShe.IoT.MultiTenancy
|
||||||
{
|
{
|
||||||
public static class MultiTenancyConsts
|
public static class MultiTenancyConsts
|
||||||
{
|
{
|
||||||
@ -1,4 +1,4 @@
|
|||||||
namespace JiShe.ServicePro.Users.Dto
|
namespace JiShe.IoT.Users.Dto
|
||||||
{
|
{
|
||||||
public class UserOutput
|
public class UserOutput
|
||||||
{
|
{
|
||||||
7
src/JiShe.IoT.Domain/Data/IIoTDbSchemaMigrator.cs
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
namespace JiShe.IoT.Data
|
||||||
|
{
|
||||||
|
public interface IIoTDbSchemaMigrator
|
||||||
|
{
|
||||||
|
Task MigrateAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,17 +1,17 @@
|
|||||||
namespace JiShe.ServicePro.Data
|
namespace JiShe.IoT.Data
|
||||||
{
|
{
|
||||||
public class ServiceProDbMigrationService : ITransientDependency
|
public class IoTDbMigrationService : ITransientDependency
|
||||||
{
|
{
|
||||||
public ILogger<ServiceProDbMigrationService> Logger { get; set; }
|
public ILogger<IoTDbMigrationService> Logger { get; set; }
|
||||||
|
|
||||||
private readonly IDataSeeder _dataSeeder;
|
private readonly IDataSeeder _dataSeeder;
|
||||||
private readonly IEnumerable<IServiceProDbSchemaMigrator> _dbSchemaMigrators;
|
private readonly IEnumerable<IIoTDbSchemaMigrator> _dbSchemaMigrators;
|
||||||
private readonly ITenantRepository _tenantRepository;
|
private readonly ITenantRepository _tenantRepository;
|
||||||
private readonly ICurrentTenant _currentTenant;
|
private readonly ICurrentTenant _currentTenant;
|
||||||
|
|
||||||
public ServiceProDbMigrationService(
|
public IoTDbMigrationService(
|
||||||
IDataSeeder dataSeeder,
|
IDataSeeder dataSeeder,
|
||||||
IEnumerable<IServiceProDbSchemaMigrator> dbSchemaMigrators,
|
IEnumerable<IIoTDbSchemaMigrator> dbSchemaMigrators,
|
||||||
ITenantRepository tenantRepository,
|
ITenantRepository tenantRepository,
|
||||||
ICurrentTenant currentTenant)
|
ICurrentTenant currentTenant)
|
||||||
{
|
{
|
||||||
@ -20,7 +20,7 @@ namespace JiShe.ServicePro.Data
|
|||||||
_tenantRepository = tenantRepository;
|
_tenantRepository = tenantRepository;
|
||||||
_currentTenant = currentTenant;
|
_currentTenant = currentTenant;
|
||||||
|
|
||||||
Logger = NullLogger<ServiceProDbMigrationService>.Instance;
|
Logger = NullLogger<IoTDbMigrationService>.Instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task MigrateAsync()
|
public async Task MigrateAsync()
|
||||||
13
src/JiShe.IoT.Domain/Data/NullIoTDbSchemaMigrator.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
namespace JiShe.IoT.Data
|
||||||
|
{
|
||||||
|
/* This is used if database provider does't define
|
||||||
|
* IIoTDbSchemaMigrator implementation.
|
||||||
|
*/
|
||||||
|
public class NullIoTDbSchemaMigrator : IIoTDbSchemaMigrator, ITransientDependency
|
||||||
|
{
|
||||||
|
public Task MigrateAsync()
|
||||||
|
{
|
||||||
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -11,8 +11,8 @@ global using JiShe.ServicePro.BasicManagement;
|
|||||||
global using JiShe.ServicePro.DataDictionaryManagement;
|
global using JiShe.ServicePro.DataDictionaryManagement;
|
||||||
global using JiShe.ServicePro.LanguageManagement;
|
global using JiShe.ServicePro.LanguageManagement;
|
||||||
global using JiShe.ServicePro.NotificationManagement;
|
global using JiShe.ServicePro.NotificationManagement;
|
||||||
global using JiShe.ServicePro.MultiTenancy;
|
global using JiShe.IoT.MultiTenancy;
|
||||||
global using JiShe.ServicePro.Users.Dto;
|
global using JiShe.IoT.Users.Dto;
|
||||||
global using Microsoft.Extensions.DependencyInjection;
|
global using Microsoft.Extensions.DependencyInjection;
|
||||||
global using Microsoft.Extensions.Logging;
|
global using Microsoft.Extensions.Logging;
|
||||||
global using Microsoft.Extensions.Logging.Abstractions;
|
global using Microsoft.Extensions.Logging.Abstractions;
|
||||||
@ -1,6 +1,6 @@
|
|||||||
namespace JiShe.ServicePro
|
namespace JiShe.IoT
|
||||||
{
|
{
|
||||||
public static class ServiceProDbProperties
|
public static class IoTDbProperties
|
||||||
{
|
{
|
||||||
public const string DbTablePrefix = "App";
|
public const string DbTablePrefix = "App";
|
||||||
|
|
||||||
@ -2,10 +2,10 @@ using JiShe.ServicePro.CodeManagement;
|
|||||||
using JiShe.ServicePro.DynamicMenuManagement;
|
using JiShe.ServicePro.DynamicMenuManagement;
|
||||||
using JiShe.ServicePro.TemplateManagement;
|
using JiShe.ServicePro.TemplateManagement;
|
||||||
|
|
||||||
namespace JiShe.ServicePro
|
namespace JiShe.IoT
|
||||||
{
|
{
|
||||||
[DependsOn(
|
[DependsOn(
|
||||||
typeof(ServiceProDomainSharedModule),
|
typeof(IoTDomainSharedModule),
|
||||||
typeof(BasicManagementDomainModule),
|
typeof(BasicManagementDomainModule),
|
||||||
typeof(NotificationManagementDomainModule),
|
typeof(NotificationManagementDomainModule),
|
||||||
typeof(DataDictionaryManagementDomainModule),
|
typeof(DataDictionaryManagementDomainModule),
|
||||||
@ -14,12 +14,12 @@ namespace JiShe.ServicePro
|
|||||||
typeof(TemplateManagementDomainModule),
|
typeof(TemplateManagementDomainModule),
|
||||||
typeof(DynamicMenuManagementDomainModule)
|
typeof(DynamicMenuManagementDomainModule)
|
||||||
)]
|
)]
|
||||||
public class ServiceProDomainModule : AbpModule
|
public class IoTDomainModule : AbpModule
|
||||||
{
|
{
|
||||||
public override void ConfigureServices(ServiceConfigurationContext context)
|
public override void ConfigureServices(ServiceConfigurationContext context)
|
||||||
{
|
{
|
||||||
Configure<AbpMultiTenancyOptions>(options => { options.IsEnabled = MultiTenancyConsts.IsEnabled; });
|
Configure<AbpMultiTenancyOptions>(options => { options.IsEnabled = MultiTenancyConsts.IsEnabled; });
|
||||||
Configure<AbpAutoMapperOptions>(options => { options.AddMaps<ServiceProDomainModule>(); });
|
Configure<AbpAutoMapperOptions>(options => { options.AddMaps<IoTDomainModule>(); });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,8 +1,8 @@
|
|||||||
using Volo.Abp.EventBus.Local;
|
using Volo.Abp.EventBus.Local;
|
||||||
|
|
||||||
namespace JiShe.ServicePro
|
namespace JiShe.IoT
|
||||||
{
|
{
|
||||||
public abstract class ServiceProDomainService : DomainService
|
public abstract class IoTDomainService : DomainService
|
||||||
{
|
{
|
||||||
protected Type ObjectMapperContext { get; set; }
|
protected Type ObjectMapperContext { get; set; }
|
||||||
|
|
||||||
@ -1,11 +1,11 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
<TargetFramework>net9.0</TargetFramework>
|
||||||
<RootNamespace>JiShe.ServicePro</RootNamespace>
|
<RootNamespace>JiShe.IoT</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\JiShe.ServicePro.Domain.Shared\JiShe.ServicePro.Domain.Shared.csproj"/>
|
<ProjectReference Include="..\JiShe.IoT.Domain.Shared\JiShe.IoT.Domain.Shared.csproj"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
3
src/JiShe.IoT.Domain/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
[assembly:InternalsVisibleToAttribute("JiShe.IoT.Domain.Tests")]
|
||||||
|
[assembly:InternalsVisibleToAttribute("JiShe.IoT.TestBase")]
|
||||||
@ -1,11 +1,11 @@
|
|||||||
namespace JiShe.ServicePro.Settings
|
namespace JiShe.IoT.Settings
|
||||||
{
|
{
|
||||||
public class ServiceProSettingDefinitionProvider : SettingDefinitionProvider
|
public class IoTSettingDefinitionProvider : SettingDefinitionProvider
|
||||||
{
|
{
|
||||||
public override void Define(ISettingDefinitionContext context)
|
public override void Define(ISettingDefinitionContext context)
|
||||||
{
|
{
|
||||||
//Define your own settings here. Example:
|
//Define your own settings here. Example:
|
||||||
//context.Add(new SettingDefinition(ServiceProSettings.MySetting1));
|
//context.Add(new SettingDefinition(IoTSettings.MySetting1));
|
||||||
OverrideDefalutSettings(context);
|
OverrideDefalutSettings(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ namespace JiShe.ServicePro.Settings
|
|||||||
|
|
||||||
private static LocalizableString L(string name)
|
private static LocalizableString L(string name)
|
||||||
{
|
{
|
||||||
return LocalizableString.Create<ServiceProResource>(name);
|
return LocalizableString.Create<IoTResource>(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
7
src/JiShe.IoT.Domain/Settings/IoTSettings.cs
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
namespace JiShe.IoT.Settings
|
||||||
|
{
|
||||||
|
public static class IoTSettings
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,25 +1,25 @@
|
|||||||
namespace JiShe.ServicePro.EntityFrameworkCore
|
namespace JiShe.IoT.EntityFrameworkCore
|
||||||
{
|
{
|
||||||
public class EntityFrameworkCoreServiceProDbSchemaMigrator
|
public class EntityFrameworkCoreIoTDbSchemaMigrator
|
||||||
: IServiceProDbSchemaMigrator, ITransientDependency
|
: IIoTDbSchemaMigrator, ITransientDependency
|
||||||
{
|
{
|
||||||
private readonly IServiceProvider _serviceProvider;
|
private readonly IServiceProvider _serviceProvider;
|
||||||
|
|
||||||
public EntityFrameworkCoreServiceProDbSchemaMigrator(IServiceProvider serviceProvider)
|
public EntityFrameworkCoreIoTDbSchemaMigrator(IServiceProvider serviceProvider)
|
||||||
{
|
{
|
||||||
_serviceProvider = serviceProvider;
|
_serviceProvider = serviceProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task MigrateAsync()
|
public async Task MigrateAsync()
|
||||||
{
|
{
|
||||||
/* We intentionally resolving the ServiceProMigrationsDbContext
|
/* We intentionally resolving the IoTMigrationsDbContext
|
||||||
* from IServiceProvider (instead of directly injecting it)
|
* from IServiceProvider (instead of directly injecting it)
|
||||||
* to properly get the connection string of the current tenant in the
|
* to properly get the connection string of the current tenant in the
|
||||||
* current scope.
|
* current scope.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
await _serviceProvider
|
await _serviceProvider
|
||||||
.GetRequiredService<ServiceProDbContext>()
|
.GetRequiredService<IoTDbContext>()
|
||||||
.Database
|
.Database
|
||||||
.MigrateAsync();
|
.MigrateAsync();
|
||||||
}
|
}
|
||||||