199 changed files with 9841 additions and 16 deletions
@ -0,0 +1,118 @@ |
|||
|
|||
Microsoft Visual Studio Solution File, Format Version 12.00 |
|||
# Visual Studio Version 16 |
|||
VisualStudioVersion = 16.0.29001.49 |
|||
MinimumVisualStudioVersion = 10.0.40219.1 |
|||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.Domain.Shared", "src\Lion.AbpPro.BasicManagement.Domain.Shared\Lion.AbpPro.BasicManagement.Domain.Shared.csproj", "{D64C1577-4929-4B60-939E-96DE1534891A}" |
|||
EndProject |
|||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.Domain", "src\Lion.AbpPro.BasicManagement.Domain\Lion.AbpPro.BasicManagement.Domain.csproj", "{F2840BC7-0188-4606-9126-DADD0F5ABF7A}" |
|||
EndProject |
|||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.Application.Contracts", "src\Lion.AbpPro.BasicManagement.Application.Contracts\Lion.AbpPro.BasicManagement.Application.Contracts.csproj", "{BD65D04F-08D5-40C1-8C24-77CA0BACB877}" |
|||
EndProject |
|||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.Application", "src\Lion.AbpPro.BasicManagement.Application\Lion.AbpPro.BasicManagement.Application.csproj", "{78040F9E-3501-4A40-82DF-00A597710F35}" |
|||
EndProject |
|||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{649A3FFA-182F-4E56-9717-E6A9A2BEC545}" |
|||
EndProject |
|||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}" |
|||
EndProject |
|||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{E400416D-2895-4512-9D17-90681EEC7E0A}" |
|||
EndProject |
|||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.EntityFrameworkCore", "src\Lion.AbpPro.BasicManagement.EntityFrameworkCore\Lion.AbpPro.BasicManagement.EntityFrameworkCore.csproj", "{0CE86223-D31D-4315-A1F5-87BA3EE1B844}" |
|||
EndProject |
|||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.HttpApi", "src\Lion.AbpPro.BasicManagement.HttpApi\Lion.AbpPro.BasicManagement.HttpApi.csproj", "{077AA5F8-8B61-420C-A6B5-0150A66FDB34}" |
|||
EndProject |
|||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.HttpApi.Client", "src\Lion.AbpPro.BasicManagement.HttpApi.Client\Lion.AbpPro.BasicManagement.HttpApi.Client.csproj", "{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}" |
|||
EndProject |
|||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.TestBase", "test\Lion.AbpPro.BasicManagement.TestBase\Lion.AbpPro.BasicManagement.TestBase.csproj", "{C5BB573D-3030-4BCB-88B7-F6A85C32766C}" |
|||
EndProject |
|||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.EntityFrameworkCore.Tests", "test\Lion.AbpPro.BasicManagement.EntityFrameworkCore.Tests\Lion.AbpPro.BasicManagement.EntityFrameworkCore.Tests.csproj", "{527F645C-C1FC-406E-8479-81386C8ECF13}" |
|||
EndProject |
|||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.Domain.Tests", "test\Lion.AbpPro.BasicManagement.Domain.Tests\Lion.AbpPro.BasicManagement.Domain.Tests.csproj", "{E60895E5-79C4-447D-88B7-85CB5BA336A4}" |
|||
EndProject |
|||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.Application.Tests", "test\Lion.AbpPro.BasicManagement.Application.Tests\Lion.AbpPro.BasicManagement.Application.Tests.csproj", "{90CB5DC4-C040-45C7-8900-9688B26405BC}" |
|||
EndProject |
|||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.HttpApi.Host", "host\Lion.AbpPro.BasicManagement.HttpApi.Host\Lion.AbpPro.BasicManagement.HttpApi.Host.csproj", "{37B135B0-DAFE-4616-B25C-1BDF32FC44A2}" |
|||
EndProject |
|||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.BasicManagement.HttpApi.Client.ConsoleTestApp", "test\Lion.AbpPro.BasicManagement.HttpApi.Client.ConsoleTestApp\Lion.AbpPro.BasicManagement.HttpApi.Client.ConsoleTestApp.csproj", "{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}" |
|||
EndProject |
|||
Global |
|||
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
|||
Debug|Any CPU = Debug|Any CPU |
|||
Release|Any CPU = Release|Any CPU |
|||
EndGlobalSection |
|||
GlobalSection(ProjectConfigurationPlatforms) = postSolution |
|||
{D64C1577-4929-4B60-939E-96DE1534891A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|||
{D64C1577-4929-4B60-939E-96DE1534891A}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|||
{D64C1577-4929-4B60-939E-96DE1534891A}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|||
{D64C1577-4929-4B60-939E-96DE1534891A}.Release|Any CPU.Build.0 = Release|Any CPU |
|||
{F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|||
{F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|||
{F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|||
{F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Release|Any CPU.Build.0 = Release|Any CPU |
|||
{BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|||
{BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|||
{BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|||
{BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Release|Any CPU.Build.0 = Release|Any CPU |
|||
{78040F9E-3501-4A40-82DF-00A597710F35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|||
{78040F9E-3501-4A40-82DF-00A597710F35}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|||
{78040F9E-3501-4A40-82DF-00A597710F35}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|||
{78040F9E-3501-4A40-82DF-00A597710F35}.Release|Any CPU.Build.0 = Release|Any CPU |
|||
{0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|||
{0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|||
{0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|||
{0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Release|Any CPU.Build.0 = Release|Any CPU |
|||
{077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|||
{077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|||
{077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|||
{077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Release|Any CPU.Build.0 = Release|Any CPU |
|||
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|||
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|||
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|||
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Release|Any CPU.Build.0 = Release|Any CPU |
|||
{C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|||
{C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|||
{C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|||
{C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Release|Any CPU.Build.0 = Release|Any CPU |
|||
{527F645C-C1FC-406E-8479-81386C8ECF13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|||
{527F645C-C1FC-406E-8479-81386C8ECF13}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|||
{527F645C-C1FC-406E-8479-81386C8ECF13}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|||
{527F645C-C1FC-406E-8479-81386C8ECF13}.Release|Any CPU.Build.0 = Release|Any CPU |
|||
{E60895E5-79C4-447D-88B7-85CB5BA336A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|||
{E60895E5-79C4-447D-88B7-85CB5BA336A4}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|||
{E60895E5-79C4-447D-88B7-85CB5BA336A4}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|||
{E60895E5-79C4-447D-88B7-85CB5BA336A4}.Release|Any CPU.Build.0 = Release|Any CPU |
|||
{90CB5DC4-C040-45C7-8900-9688B26405BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|||
{90CB5DC4-C040-45C7-8900-9688B26405BC}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|||
{90CB5DC4-C040-45C7-8900-9688B26405BC}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|||
{90CB5DC4-C040-45C7-8900-9688B26405BC}.Release|Any CPU.Build.0 = Release|Any CPU |
|||
{37B135B0-DAFE-4616-B25C-1BDF32FC44A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|||
{37B135B0-DAFE-4616-B25C-1BDF32FC44A2}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|||
{37B135B0-DAFE-4616-B25C-1BDF32FC44A2}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|||
{37B135B0-DAFE-4616-B25C-1BDF32FC44A2}.Release|Any CPU.Build.0 = Release|Any CPU |
|||
{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|||
{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|||
{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|||
{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}.Release|Any CPU.Build.0 = Release|Any CPU |
|||
EndGlobalSection |
|||
GlobalSection(SolutionProperties) = preSolution |
|||
HideSolutionNode = FALSE |
|||
EndGlobalSection |
|||
GlobalSection(NestedProjects) = preSolution |
|||
{D64C1577-4929-4B60-939E-96DE1534891A} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} |
|||
{F2840BC7-0188-4606-9126-DADD0F5ABF7A} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} |
|||
{BD65D04F-08D5-40C1-8C24-77CA0BACB877} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} |
|||
{78040F9E-3501-4A40-82DF-00A597710F35} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} |
|||
{0CE86223-D31D-4315-A1F5-87BA3EE1B844} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} |
|||
{077AA5F8-8B61-420C-A6B5-0150A66FDB34} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} |
|||
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} |
|||
{C5BB573D-3030-4BCB-88B7-F6A85C32766C} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} |
|||
{527F645C-C1FC-406E-8479-81386C8ECF13} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} |
|||
{E60895E5-79C4-447D-88B7-85CB5BA336A4} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} |
|||
{90CB5DC4-C040-45C7-8900-9688B26405BC} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} |
|||
{37B135B0-DAFE-4616-B25C-1BDF32FC44A2} = {E400416D-2895-4512-9D17-90681EEC7E0A} |
|||
{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} |
|||
EndGlobalSection |
|||
GlobalSection(ExtensibilityGlobals) = postSolution |
|||
SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD} |
|||
EndGlobalSection |
|||
EndGlobal |
|||
@ -0,0 +1,223 @@ |
|||
using System.Text; |
|||
using Microsoft.AspNetCore.Authentication.JwtBearer; |
|||
using Microsoft.AspNetCore.DataProtection; |
|||
using Lion.AbpPro.BasicManagement.EntityFrameworkCore; |
|||
using Lion.AbpPro.Shared.Hosting.Microservices; |
|||
using Lion.AbpPro.Shared.Hosting.Microservices.Swaggers; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using Microsoft.IdentityModel.Tokens; |
|||
using StackExchange.Redis; |
|||
using Microsoft.OpenApi.Models; |
|||
using Swashbuckle.AspNetCore.SwaggerUI; |
|||
using Volo.Abp; |
|||
using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy; |
|||
using Volo.Abp.AspNetCore.Serilog; |
|||
using Volo.Abp.Autofac; |
|||
using Volo.Abp.Caching; |
|||
using Volo.Abp.Caching.StackExchangeRedis; |
|||
using Volo.Abp.EntityFrameworkCore; |
|||
using Volo.Abp.EntityFrameworkCore.MySQL; |
|||
using Volo.Abp.Modularity; |
|||
using Volo.Abp.Swashbuckle; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement; |
|||
|
|||
[DependsOn( |
|||
typeof(BasicManagementApplicationModule), |
|||
typeof(BasicManagementEntityFrameworkCoreModule), |
|||
typeof(BasicManagementHttpApiModule), |
|||
typeof(AbpAspNetCoreMvcUiMultiTenancyModule), |
|||
typeof(AbpAutofacModule), |
|||
typeof(AbpCachingStackExchangeRedisModule), |
|||
typeof(AbpEntityFrameworkCoreMySQLModule), |
|||
typeof(AbpAspNetCoreSerilogModule), |
|||
typeof(AbpSwashbuckleModule), |
|||
typeof(SharedHostingMicroserviceModule) |
|||
)] |
|||
public class BasicManagementHttpApiHostModule : AbpModule |
|||
{ |
|||
private const string DefaultCorsPolicyName = "Default"; |
|||
|
|||
public override void ConfigureServices(ServiceConfigurationContext context) |
|||
{ |
|||
ConfigureCache(context); |
|||
ConfigureSwaggerServices(context); |
|||
ConfigureJwtAuthentication(context); |
|||
Configure<AbpDbContextOptions>(options => { options.UseMySQL(); }); |
|||
} |
|||
|
|||
public override void OnApplicationInitialization(ApplicationInitializationContext context) |
|||
{ |
|||
var app = context.GetApplicationBuilder(); |
|||
|
|||
app.UseHttpsRedirection(); |
|||
app.UseCorrelationId(); |
|||
app.UseStaticFiles(); |
|||
app.UseRouting(); |
|||
app.UseCors(); |
|||
app.UseAuthentication(); |
|||
app.UseMultiTenancy(); |
|||
app.UseAbpRequestLocalization(); |
|||
app.UseAuthorization(); |
|||
app.UseSwagger(); |
|||
app.UseAbpSwaggerUI(options => |
|||
{ |
|||
options.SwaggerEndpoint("/swagger/BasicManagement/swagger.json", "BasicManagement API"); |
|||
options.DocExpansion(DocExpansion.None); |
|||
options.DefaultModelsExpandDepth(-1); |
|||
}); |
|||
app.UseAuditing(); |
|||
app.UseAbpSerilogEnrichers(); |
|||
app.UseConfiguredEndpoints(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Redis缓存
|
|||
/// </summary>
|
|||
private void ConfigureCache(ServiceConfigurationContext context) |
|||
{ |
|||
Configure<AbpDistributedCacheOptions>( |
|||
options => { options.KeyPrefix = "AbpPro:"; }); |
|||
var configuration = context.Services.GetConfiguration(); |
|||
var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); |
|||
context.Services |
|||
.AddDataProtection() |
|||
.PersistKeysToStackExchangeRedis(redis, "AbpPro-Protection-Keys"); |
|||
} |
|||
|
|||
private static void ConfigureSwaggerServices(ServiceConfigurationContext context) |
|||
{ |
|||
context.Services.AddSwaggerGen( |
|||
options => |
|||
{ |
|||
// 文件下载类型
|
|||
options.MapType<FileContentResult>(() => new OpenApiSchema() { Type = "file" }); |
|||
|
|||
options.SwaggerDoc("BasicManagement", |
|||
new OpenApiInfo { Title = "BasicManagement API", Version = "v1" }); |
|||
options.DocInclusionPredicate((docName, description) => true); |
|||
options.EnableAnnotations(); // 启用注解
|
|||
options.DocumentFilter<HiddenAbpDefaultApiFilter>(); |
|||
options.SchemaFilter<EnumSchemaFilter>(); |
|||
// 加载所有xml注释,这里会导致swagger加载有点缓慢
|
|||
var xmlPaths = Directory.GetFiles(AppContext.BaseDirectory, "*.xml"); |
|||
foreach (var xml in xmlPaths) |
|||
{ |
|||
options.IncludeXmlComments(xml, true); |
|||
} |
|||
|
|||
options.AddSecurityDefinition(JwtBearerDefaults.AuthenticationScheme, |
|||
new OpenApiSecurityScheme() |
|||
{ |
|||
Description = "直接在下框输入JWT生成的Token", |
|||
Name = "Authorization", |
|||
In = ParameterLocation.Header, |
|||
Type = SecuritySchemeType.Http, |
|||
Scheme = JwtBearerDefaults.AuthenticationScheme, |
|||
BearerFormat = "JWT" |
|||
}); |
|||
options.AddSecurityRequirement(new OpenApiSecurityRequirement |
|||
{ |
|||
{ |
|||
new OpenApiSecurityScheme |
|||
{ |
|||
Reference = new OpenApiReference |
|||
{ |
|||
Type = ReferenceType.SecurityScheme, Id = "Bearer" |
|||
} |
|||
}, |
|||
new List<string>() |
|||
} |
|||
}); |
|||
|
|||
options.AddSecurityDefinition("ApiKey", new OpenApiSecurityScheme() |
|||
{ |
|||
Type = SecuritySchemeType.ApiKey, |
|||
In = ParameterLocation.Header, |
|||
Name = "Accept-Language", |
|||
Description = "多语言设置,系统预设语言有zh-Hans、en,默认为zh-Hans", |
|||
}); |
|||
|
|||
options.AddSecurityRequirement(new OpenApiSecurityRequirement |
|||
{ |
|||
{ |
|||
new OpenApiSecurityScheme |
|||
{ |
|||
Reference = new OpenApiReference |
|||
{ Type = ReferenceType.SecurityScheme, Id = "ApiKey" } |
|||
}, |
|||
Array.Empty<string>() |
|||
} |
|||
}); |
|||
}); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 配置JWT
|
|||
/// </summary>
|
|||
private void ConfigureJwtAuthentication(ServiceConfigurationContext context) |
|||
{ |
|||
var configuration = context.Services.GetConfiguration(); |
|||
context.Services.AddAuthentication(options => |
|||
{ |
|||
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; |
|||
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; |
|||
}) |
|||
.AddJwtBearer(options => |
|||
{ |
|||
options.TokenValidationParameters = |
|||
new TokenValidationParameters() |
|||
{ |
|||
// 是否开启签名认证
|
|||
ValidateIssuerSigningKey = true, |
|||
ValidateIssuer = true, |
|||
ValidateAudience = true, |
|||
ValidateLifetime = true, |
|||
//ClockSkew = TimeSpan.Zero,
|
|||
ValidIssuer = configuration["Jwt:Issuer"], |
|||
ValidAudience = configuration["Jwt:Audience"], |
|||
IssuerSigningKey = |
|||
new SymmetricSecurityKey( |
|||
Encoding.ASCII.GetBytes(configuration["Jwt:SecurityKey"])) |
|||
}; |
|||
|
|||
options.Events = new JwtBearerEvents |
|||
{ |
|||
OnMessageReceived = currentContext => |
|||
{ |
|||
var path = currentContext.HttpContext.Request.Path; |
|||
if (path.StartsWithSegments("/login")) |
|||
{ |
|||
return Task.CompletedTask; |
|||
} |
|||
|
|||
var accessToken = string.Empty; |
|||
if (currentContext.HttpContext.Request.Headers.ContainsKey("Authorization")) |
|||
{ |
|||
accessToken = currentContext.HttpContext.Request.Headers["Authorization"]; |
|||
if (!string.IsNullOrWhiteSpace(accessToken)) |
|||
{ |
|||
accessToken = accessToken.Split(" ").LastOrDefault(); |
|||
} |
|||
} |
|||
|
|||
if (accessToken.IsNullOrWhiteSpace()) |
|||
{ |
|||
accessToken = currentContext.Request.Query["access_token"].FirstOrDefault(); |
|||
} |
|||
|
|||
if (accessToken.IsNullOrWhiteSpace()) |
|||
{ |
|||
accessToken = currentContext.Request.Cookies[DefaultCorsPolicyName]; |
|||
} |
|||
|
|||
currentContext.Token = accessToken; |
|||
currentContext.Request.Headers.Remove("Authorization"); |
|||
currentContext.Request.Headers.Add("Authorization", $"Bearer {accessToken}"); |
|||
|
|||
return Task.CompletedTask; |
|||
} |
|||
}; |
|||
}); |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using Volo.Abp.AspNetCore.Mvc; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Controllers; |
|||
|
|||
public class HomeController : AbpController |
|||
{ |
|||
public ActionResult Index() |
|||
{ |
|||
return Redirect("~/swagger"); |
|||
} |
|||
} |
|||
@ -0,0 +1,18 @@ |
|||
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base |
|||
WORKDIR /app |
|||
EXPOSE 80 |
|||
|
|||
FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build |
|||
WORKDIR /src |
|||
COPY . . |
|||
WORKDIR /src/templates/service/host/Lion.AbpPro.BasicManagement.HttpApi.Host |
|||
RUN dotnet restore -nowarn:msb3202,nu1503 |
|||
RUN dotnet build --no-restore -c Release -o /app |
|||
|
|||
FROM build AS publish |
|||
RUN dotnet publish --no-restore -c Release -o /app |
|||
|
|||
FROM base AS final |
|||
WORKDIR /app |
|||
COPY --from=publish /app . |
|||
ENTRYPOINT ["dotnet", "Lion.AbpPro.BasicManagement.HttpApi.Host.dll"] |
|||
@ -0,0 +1,20 @@ |
|||
using Microsoft.EntityFrameworkCore; |
|||
using Volo.Abp.EntityFrameworkCore; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.EntityFrameworkCore; |
|||
|
|||
public class BasicManagementHttpApiHostMigrationsDbContext : AbpDbContext<BasicManagementHttpApiHostMigrationsDbContext> |
|||
{ |
|||
public BasicManagementHttpApiHostMigrationsDbContext(DbContextOptions<BasicManagementHttpApiHostMigrationsDbContext> options) |
|||
: base(options) |
|||
{ |
|||
|
|||
} |
|||
|
|||
protected override void OnModelCreating(ModelBuilder modelBuilder) |
|||
{ |
|||
base.OnModelCreating(modelBuilder); |
|||
|
|||
modelBuilder.ConfigureBasicManagement(); |
|||
} |
|||
} |
|||
@ -0,0 +1,28 @@ |
|||
using System.IO; |
|||
using Microsoft.EntityFrameworkCore; |
|||
using Microsoft.EntityFrameworkCore.Design; |
|||
using Microsoft.Extensions.Configuration; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.EntityFrameworkCore; |
|||
|
|||
public class BasicManagementHttpApiHostMigrationsDbContextFactory : IDesignTimeDbContextFactory<BasicManagementHttpApiHostMigrationsDbContext> |
|||
{ |
|||
public BasicManagementHttpApiHostMigrationsDbContext CreateDbContext(string[] args) |
|||
{ |
|||
var configuration = BuildConfiguration(); |
|||
|
|||
var builder = new DbContextOptionsBuilder<BasicManagementHttpApiHostMigrationsDbContext>() |
|||
.UseMySql(configuration.GetConnectionString("Default"), MySqlServerVersion.LatestSupportedServerVersion); |
|||
|
|||
return new BasicManagementHttpApiHostMigrationsDbContext(builder.Options); |
|||
} |
|||
|
|||
private static IConfigurationRoot BuildConfiguration() |
|||
{ |
|||
var builder = new ConfigurationBuilder() |
|||
.SetBasePath(Directory.GetCurrentDirectory()) |
|||
.AddJsonFile("appsettings.json", optional: false); |
|||
|
|||
return builder.Build(); |
|||
} |
|||
} |
|||
@ -0,0 +1,3 @@ |
|||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|||
</Weavers> |
|||
@ -0,0 +1,30 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|||
<xs:element name="Weavers"> |
|||
<xs:complexType> |
|||
<xs:all> |
|||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|||
<xs:complexType> |
|||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|||
</xs:complexType> |
|||
</xs:element> |
|||
</xs:all> |
|||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|||
<xs:annotation> |
|||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|||
<xs:annotation> |
|||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|||
<xs:annotation> |
|||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
</xs:complexType> |
|||
</xs:element> |
|||
</xs:schema> |
|||
@ -0,0 +1,43 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk.Web"> |
|||
|
|||
<PropertyGroup> |
|||
<TargetFramework>net6.0</TargetFramework> |
|||
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace> |
|||
<PreserveCompilationReferences>true</PreserveCompilationReferences> |
|||
<UserSecretsId>Lion.AbpPro.BasicManagement-c2d31439-b723-48e2-b061-5ebd7aeb6010</UserSecretsId> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<PackageReference Include="Serilog.AspNetCore" /> |
|||
<PackageReference Include="Serilog.Sinks.Async" /> |
|||
<PackageReference Include="IdentityModel" /> |
|||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" /> |
|||
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" /> |
|||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" /> |
|||
<PackageReference Include="Volo.Abp.Autofac" /> |
|||
<PackageReference Include="Volo.Abp.Caching.StackExchangeRedis" /> |
|||
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy" /> |
|||
<PackageReference Include="Volo.Abp.EntityFrameworkCore.MySQL" /> |
|||
<PackageReference Include="Volo.Abp.AspNetCore.Serilog" /> |
|||
<PackageReference Include="Volo.Abp.Swashbuckle" /> |
|||
<PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" /> |
|||
<PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" /> |
|||
<PackageReference Include="Volo.Abp.AuditLogging.EntityFrameworkCore" /> |
|||
<PackageReference Include="Volo.Abp.TenantManagement.EntityFrameworkCore" /> |
|||
</ItemGroup> |
|||
|
|||
<ItemGroup> |
|||
<ProjectReference Include="..\..\..\..\shared\Lion.AbpPro.Shared.Hosting.Microservices\Lion.AbpPro.Shared.Hosting.Microservices.csproj" /> |
|||
<ProjectReference Include="..\..\src\Lion.AbpPro.BasicManagement.HttpApi\Lion.AbpPro.BasicManagement.HttpApi.csproj" /> |
|||
<ProjectReference Include="..\..\src\Lion.AbpPro.BasicManagement.Application\Lion.AbpPro.BasicManagement.Application.csproj" /> |
|||
<ProjectReference Include="..\..\src\Lion.AbpPro.BasicManagement.EntityFrameworkCore\Lion.AbpPro.BasicManagement.EntityFrameworkCore.csproj" /> |
|||
</ItemGroup> |
|||
|
|||
<ItemGroup> |
|||
<Compile Remove="Logs\**" /> |
|||
<Content Remove="Logs\**" /> |
|||
<EmbeddedResource Remove="Logs\**" /> |
|||
<None Remove="Logs\**" /> |
|||
</ItemGroup> |
|||
|
|||
</Project> |
|||
@ -0,0 +1,876 @@ |
|||
2022-08-23 22:20:03.435 +08:00 [INF] Loaded ABP modules: |
|||
2022-08-23 22:20:03.463 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementHttpApiHostModule |
|||
2022-08-23 22:20:03.464 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementApplicationModule |
|||
2022-08-23 22:20:03.464 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementDomainModule |
|||
2022-08-23 22:20:03.465 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule |
|||
2022-08-23 22:20:03.465 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule |
|||
2022-08-23 22:20:03.466 +08:00 [INF] - Volo.Abp.Data.AbpDataModule |
|||
2022-08-23 22:20:03.468 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule |
|||
2022-08-23 22:20:03.469 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule |
|||
2022-08-23 22:20:03.481 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule |
|||
2022-08-23 22:20:03.482 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule |
|||
2022-08-23 22:20:03.483 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule |
|||
2022-08-23 22:20:03.484 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule |
|||
2022-08-23 22:20:03.484 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule |
|||
2022-08-23 22:20:03.485 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule |
|||
2022-08-23 22:20:03.485 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule |
|||
2022-08-23 22:20:03.486 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule |
|||
2022-08-23 22:20:03.487 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule |
|||
2022-08-23 22:20:03.487 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule |
|||
2022-08-23 22:20:03.488 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule |
|||
2022-08-23 22:20:03.488 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule |
|||
2022-08-23 22:20:03.489 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule |
|||
2022-08-23 22:20:03.490 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule |
|||
2022-08-23 22:20:03.490 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule |
|||
2022-08-23 22:20:03.491 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule |
|||
2022-08-23 22:20:03.491 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule |
|||
2022-08-23 22:20:03.492 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule |
|||
2022-08-23 22:20:03.492 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule |
|||
2022-08-23 22:20:03.493 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementDomainSharedModule |
|||
2022-08-23 22:20:03.493 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule |
|||
2022-08-23 22:20:03.494 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule |
|||
2022-08-23 22:20:03.494 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule |
|||
2022-08-23 22:20:03.495 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule |
|||
2022-08-23 22:20:03.496 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule |
|||
2022-08-23 22:20:03.496 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule |
|||
2022-08-23 22:20:03.497 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule |
|||
2022-08-23 22:20:03.499 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule |
|||
2022-08-23 22:20:03.501 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule |
|||
2022-08-23 22:20:03.502 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule |
|||
2022-08-23 22:20:03.502 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule |
|||
2022-08-23 22:20:03.503 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule |
|||
2022-08-23 22:20:03.503 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule |
|||
2022-08-23 22:20:03.504 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule |
|||
2022-08-23 22:20:03.505 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule |
|||
2022-08-23 22:20:03.505 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule |
|||
2022-08-23 22:20:03.506 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule |
|||
2022-08-23 22:20:03.507 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule |
|||
2022-08-23 22:20:03.507 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule |
|||
2022-08-23 22:20:03.508 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule |
|||
2022-08-23 22:20:03.509 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule |
|||
2022-08-23 22:20:03.509 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule |
|||
2022-08-23 22:20:03.510 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule |
|||
2022-08-23 22:20:03.510 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule |
|||
2022-08-23 22:20:03.511 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule |
|||
2022-08-23 22:20:03.512 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule |
|||
2022-08-23 22:20:03.512 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule |
|||
2022-08-23 22:20:03.515 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementApplicationContractsModule |
|||
2022-08-23 22:20:03.515 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule |
|||
2022-08-23 22:20:03.516 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule |
|||
2022-08-23 22:20:03.517 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule |
|||
2022-08-23 22:20:03.517 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule |
|||
2022-08-23 22:20:03.518 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementApplicationContractsModule |
|||
2022-08-23 22:20:03.519 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementApplicationContractsModule |
|||
2022-08-23 22:20:03.519 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementApplicationContractsModule |
|||
2022-08-23 22:20:03.520 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule |
|||
2022-08-23 22:20:03.520 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule |
|||
2022-08-23 22:20:03.521 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule |
|||
2022-08-23 22:20:03.521 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule |
|||
2022-08-23 22:20:03.522 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule |
|||
2022-08-23 22:20:03.523 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule |
|||
2022-08-23 22:20:03.523 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule |
|||
2022-08-23 22:20:03.524 +08:00 [INF] - Volo.Abp.UI.AbpUiModule |
|||
2022-08-23 22:20:03.524 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule |
|||
2022-08-23 22:20:03.525 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule |
|||
2022-08-23 22:20:03.526 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule |
|||
2022-08-23 22:20:03.526 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule |
|||
2022-08-23 22:20:03.527 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementApplicationModule |
|||
2022-08-23 22:20:03.527 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementApplicationModule |
|||
2022-08-23 22:20:03.532 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementApplicationModule |
|||
2022-08-23 22:20:03.533 +08:00 [INF] - Lion.AbpPro.BasicManagement.EntityFrameworkCore.BasicManagementEntityFrameworkCoreModule |
|||
2022-08-23 22:20:03.533 +08:00 [INF] - Volo.Abp.EntityFrameworkCore.AbpEntityFrameworkCoreModule |
|||
2022-08-23 22:20:03.534 +08:00 [INF] - Volo.Abp.Identity.EntityFrameworkCore.AbpIdentityEntityFrameworkCoreModule |
|||
2022-08-23 22:20:03.534 +08:00 [INF] - Volo.Abp.Users.EntityFrameworkCore.AbpUsersEntityFrameworkCoreModule |
|||
2022-08-23 22:20:03.535 +08:00 [INF] - Volo.Abp.PermissionManagement.EntityFrameworkCore.AbpPermissionManagementEntityFrameworkCoreModule |
|||
2022-08-23 22:20:03.536 +08:00 [INF] - Volo.Abp.SettingManagement.EntityFrameworkCore.AbpSettingManagementEntityFrameworkCoreModule |
|||
2022-08-23 22:20:03.536 +08:00 [INF] - Volo.Abp.BackgroundJobs.EntityFrameworkCore.AbpBackgroundJobsEntityFrameworkCoreModule |
|||
2022-08-23 22:20:03.537 +08:00 [INF] - Volo.Abp.AuditLogging.EntityFrameworkCore.AbpAuditLoggingEntityFrameworkCoreModule |
|||
2022-08-23 22:20:03.537 +08:00 [INF] - Volo.Abp.TenantManagement.EntityFrameworkCore.AbpTenantManagementEntityFrameworkCoreModule |
|||
2022-08-23 22:20:03.538 +08:00 [INF] - Volo.Abp.FeatureManagement.EntityFrameworkCore.AbpFeatureManagementEntityFrameworkCoreModule |
|||
2022-08-23 22:20:03.539 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementHttpApiModule |
|||
2022-08-23 22:20:03.539 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule |
|||
2022-08-23 22:20:03.540 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule |
|||
2022-08-23 22:20:03.540 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule |
|||
2022-08-23 22:20:03.541 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule |
|||
2022-08-23 22:20:03.541 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule |
|||
2022-08-23 22:20:03.542 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule |
|||
2022-08-23 22:20:03.543 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule |
|||
2022-08-23 22:20:03.546 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule |
|||
2022-08-23 22:20:03.547 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule |
|||
2022-08-23 22:20:03.547 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule |
|||
2022-08-23 22:20:03.548 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule |
|||
2022-08-23 22:20:03.549 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule |
|||
2022-08-23 22:20:03.549 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule |
|||
2022-08-23 22:20:03.550 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule |
|||
2022-08-23 22:20:03.551 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule |
|||
2022-08-23 22:20:03.551 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule |
|||
2022-08-23 22:20:03.552 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule |
|||
2022-08-23 22:20:03.553 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule |
|||
2022-08-23 22:20:03.553 +08:00 [INF] - Volo.Abp.EntityFrameworkCore.MySQL.AbpEntityFrameworkCoreMySQLModule |
|||
2022-08-23 22:20:03.554 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule |
|||
2022-08-23 22:20:03.554 +08:00 [INF] - Volo.Abp.Swashbuckle.AbpSwashbuckleModule |
|||
2022-08-23 22:20:03.555 +08:00 [INF] - Lion.AbpPro.Shared.Hosting.Microservices.SharedHostingMicroserviceModule |
|||
2022-08-23 22:20:04.009 +08:00 [INF] Initialized all ABP modules. |
|||
2022-08-23 22:20:04.060 +08:00 [INF] Now listening on: http://localhost:44324 |
|||
2022-08-23 22:20:04.062 +08:00 [INF] Application started. Press Ctrl+C to shut down. |
|||
2022-08-23 22:20:04.064 +08:00 [INF] Hosting environment: Development |
|||
2022-08-23 22:20:04.065 +08:00 [INF] Content root path: D:\github\WangJunZzz\abp-vnext-pro\aspnet-core\modules\BasicManagement\host\Lion.AbpPro.BasicManagement.HttpApi.Host |
|||
2022-08-23 22:20:04.402 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/ - - |
|||
2022-08-23 22:20:04.409 +08:00 [WRN] Failed to determine the https port for redirect. |
|||
2022-08-23 22:20:05.138 +08:00 [ERR] Connection id "0HMK52A99DPT6", Request id "0HMK52A99DPT6:00000002": An unhandled exception was thrown by the application. |
|||
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware -> Volo.Abp.MultiTenancy.TenantConfigurationProvider -> Volo.Abp.TenantManagement.TenantStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.TenantManagement.AbpTenantManagementDomainModule, Volo.Abp.TenantManagement.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.TenantManagement.AbpTenantManagementDomainModule, Volo.Abp.TenantManagement.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
---> AutoMapper.AutoMapperConfigurationException: |
|||
Unmapped members were found. Review the types and members below. |
|||
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type |
|||
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters |
|||
===================================================================================== |
|||
IdentityUser -> LoginOutput (Destination member list) |
|||
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list) |
|||
|
|||
Unmapped properties: |
|||
Token |
|||
|
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config) |
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider) |
|||
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next) |
|||
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
--- End of inner exception stack trace --- |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) |
|||
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) |
|||
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) |
|||
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) |
|||
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) |
|||
at Microsoft.AspNetCore.Http.MiddlewareFactory.Create(Type middlewareType) |
|||
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext() |
|||
--- End of stack trace from previous location --- |
|||
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) |
|||
at Volo.Abp.AspNetCore.Tracing.AbpCorrelationIdMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) |
|||
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext() |
|||
--- End of stack trace from previous location --- |
|||
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application) |
|||
2022-08-23 22:20:05.306 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/ - - - 500 0 - 904.5064ms |
|||
2022-08-23 22:20:08.779 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
---> AutoMapper.AutoMapperConfigurationException: |
|||
Unmapped members were found. Review the types and members below. |
|||
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type |
|||
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters |
|||
===================================================================================== |
|||
IdentityUser -> LoginOutput (Destination member list) |
|||
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list) |
|||
|
|||
Unmapped properties: |
|||
Token |
|||
|
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config) |
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider) |
|||
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next) |
|||
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
--- End of inner exception stack trace --- |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) |
|||
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) |
|||
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) |
|||
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) |
|||
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync() |
|||
2022-08-23 22:20:08.803 +08:00 [ERR] ---------- Exception Data ---------- |
|||
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor |
|||
|
|||
2022-08-23 22:20:13.839 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
---> AutoMapper.AutoMapperConfigurationException: |
|||
Unmapped members were found. Review the types and members below. |
|||
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type |
|||
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters |
|||
===================================================================================== |
|||
IdentityUser -> LoginOutput (Destination member list) |
|||
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list) |
|||
|
|||
Unmapped properties: |
|||
Token |
|||
|
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config) |
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider) |
|||
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next) |
|||
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
--- End of inner exception stack trace --- |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) |
|||
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) |
|||
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) |
|||
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) |
|||
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync() |
|||
2022-08-23 22:20:13.865 +08:00 [ERR] ---------- Exception Data ---------- |
|||
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor |
|||
|
|||
2022-08-23 22:20:18.884 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
---> AutoMapper.AutoMapperConfigurationException: |
|||
Unmapped members were found. Review the types and members below. |
|||
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type |
|||
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters |
|||
===================================================================================== |
|||
IdentityUser -> LoginOutput (Destination member list) |
|||
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list) |
|||
|
|||
Unmapped properties: |
|||
Token |
|||
|
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config) |
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider) |
|||
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next) |
|||
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
--- End of inner exception stack trace --- |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) |
|||
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) |
|||
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) |
|||
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) |
|||
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync() |
|||
2022-08-23 22:20:18.910 +08:00 [ERR] ---------- Exception Data ---------- |
|||
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor |
|||
|
|||
2022-08-23 22:20:23.921 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
---> AutoMapper.AutoMapperConfigurationException: |
|||
Unmapped members were found. Review the types and members below. |
|||
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type |
|||
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters |
|||
===================================================================================== |
|||
IdentityUser -> LoginOutput (Destination member list) |
|||
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list) |
|||
|
|||
Unmapped properties: |
|||
Token |
|||
|
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config) |
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider) |
|||
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next) |
|||
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
--- End of inner exception stack trace --- |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) |
|||
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) |
|||
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) |
|||
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) |
|||
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync() |
|||
2022-08-23 22:20:23.937 +08:00 [ERR] ---------- Exception Data ---------- |
|||
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor |
|||
|
|||
2022-08-23 22:20:28.965 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
---> AutoMapper.AutoMapperConfigurationException: |
|||
Unmapped members were found. Review the types and members below. |
|||
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type |
|||
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters |
|||
===================================================================================== |
|||
IdentityUser -> LoginOutput (Destination member list) |
|||
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list) |
|||
|
|||
Unmapped properties: |
|||
Token |
|||
|
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config) |
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider) |
|||
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next) |
|||
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
--- End of inner exception stack trace --- |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) |
|||
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) |
|||
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) |
|||
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) |
|||
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync() |
|||
2022-08-23 22:20:28.994 +08:00 [ERR] ---------- Exception Data ---------- |
|||
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor |
|||
|
|||
2022-08-23 22:20:34.011 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
---> AutoMapper.AutoMapperConfigurationException: |
|||
Unmapped members were found. Review the types and members below. |
|||
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type |
|||
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters |
|||
===================================================================================== |
|||
IdentityUser -> LoginOutput (Destination member list) |
|||
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list) |
|||
|
|||
Unmapped properties: |
|||
Token |
|||
|
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config) |
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider) |
|||
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next) |
|||
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
--- End of inner exception stack trace --- |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) |
|||
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) |
|||
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) |
|||
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) |
|||
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync() |
|||
2022-08-23 22:20:34.040 +08:00 [ERR] ---------- Exception Data ---------- |
|||
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor |
|||
|
|||
2022-08-23 22:20:39.058 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
---> AutoMapper.AutoMapperConfigurationException: |
|||
Unmapped members were found. Review the types and members below. |
|||
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type |
|||
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters |
|||
===================================================================================== |
|||
IdentityUser -> LoginOutput (Destination member list) |
|||
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list) |
|||
|
|||
Unmapped properties: |
|||
Token |
|||
|
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config) |
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider) |
|||
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next) |
|||
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
--- End of inner exception stack trace --- |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) |
|||
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) |
|||
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) |
|||
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) |
|||
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync() |
|||
2022-08-23 22:20:39.083 +08:00 [ERR] ---------- Exception Data ---------- |
|||
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor |
|||
|
|||
2022-08-23 22:20:44.107 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
---> AutoMapper.AutoMapperConfigurationException: |
|||
Unmapped members were found. Review the types and members below. |
|||
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type |
|||
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters |
|||
===================================================================================== |
|||
IdentityUser -> LoginOutput (Destination member list) |
|||
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list) |
|||
|
|||
Unmapped properties: |
|||
Token |
|||
|
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config) |
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider) |
|||
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next) |
|||
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
--- End of inner exception stack trace --- |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) |
|||
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) |
|||
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) |
|||
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) |
|||
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync() |
|||
2022-08-23 22:20:44.124 +08:00 [ERR] ---------- Exception Data ---------- |
|||
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor |
|||
|
|||
2022-08-23 22:20:49.136 +08:00 [ERR] An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor. |
|||
---> AutoMapper.AutoMapperConfigurationException: |
|||
Unmapped members were found. Review the types and members below. |
|||
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type |
|||
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters |
|||
===================================================================================== |
|||
IdentityUser -> LoginOutput (Destination member list) |
|||
Volo.Abp.Identity.IdentityUser -> Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput (Destination member list) |
|||
|
|||
Unmapped properties: |
|||
Token |
|||
|
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.<>c__DisplayClass2_1.<CreateMappings>g__ValidateAll|2(IConfigurationProvider config) |
|||
at Volo.Abp.AutoMapper.AbpAutoMapperModule.CreateMappings(IServiceProvider serviceProvider) |
|||
at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass3_0.<Register>b__0(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Delegate.DelegateActivator.<ConfigurePipeline>b__2_0(ResolveRequestContext ctxt, Action`1 next) |
|||
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
--- End of inner exception stack trace --- |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) |
|||
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) |
|||
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) |
|||
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) |
|||
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundJobs.BackgroundJobWorker.DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
|||
at Volo.Abp.BackgroundWorkers.AsyncPeriodicBackgroundWorkerBase.DoWorkAsync() |
|||
2022-08-23 22:20:49.152 +08:00 [ERR] ---------- Exception Data ---------- |
|||
ActivatorChain = Volo.Abp.BackgroundJobs.BackgroundJobStore -> Volo.Abp.ObjectMapping.DefaultObjectMapper`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> Volo.Abp.AutoMapper.AutoMapperAutoObjectMappingProvider`1[[Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule, Volo.Abp.BackgroundJobs.Domain, Version=5.3.2.0, Culture=neutral, PublicKeyToken=null]] -> λ:Volo.Abp.AutoMapper.IMapperAccessor -> λ:Volo.Abp.AutoMapper.MapperAccessor |
|||
|
|||
2022-08-23 22:21:24.843 +08:00 [INF] Loaded ABP modules: |
|||
2022-08-23 22:21:24.869 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementHttpApiHostModule |
|||
2022-08-23 22:21:24.870 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementApplicationModule |
|||
2022-08-23 22:21:24.870 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementDomainModule |
|||
2022-08-23 22:21:24.871 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule |
|||
2022-08-23 22:21:24.871 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule |
|||
2022-08-23 22:21:24.872 +08:00 [INF] - Volo.Abp.Data.AbpDataModule |
|||
2022-08-23 22:21:24.872 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule |
|||
2022-08-23 22:21:24.873 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule |
|||
2022-08-23 22:21:24.873 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule |
|||
2022-08-23 22:21:24.873 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule |
|||
2022-08-23 22:21:24.874 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule |
|||
2022-08-23 22:21:24.874 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule |
|||
2022-08-23 22:21:24.875 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule |
|||
2022-08-23 22:21:24.875 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule |
|||
2022-08-23 22:21:24.876 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule |
|||
2022-08-23 22:21:24.876 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule |
|||
2022-08-23 22:21:24.877 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule |
|||
2022-08-23 22:21:24.877 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule |
|||
2022-08-23 22:21:24.878 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule |
|||
2022-08-23 22:21:24.880 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule |
|||
2022-08-23 22:21:24.882 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule |
|||
2022-08-23 22:21:24.882 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule |
|||
2022-08-23 22:21:24.883 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule |
|||
2022-08-23 22:21:24.883 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule |
|||
2022-08-23 22:21:24.884 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule |
|||
2022-08-23 22:21:24.884 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule |
|||
2022-08-23 22:21:24.885 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule |
|||
2022-08-23 22:21:24.885 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementDomainSharedModule |
|||
2022-08-23 22:21:24.886 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule |
|||
2022-08-23 22:21:24.887 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule |
|||
2022-08-23 22:21:24.887 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule |
|||
2022-08-23 22:21:24.888 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule |
|||
2022-08-23 22:21:24.888 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule |
|||
2022-08-23 22:21:24.889 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule |
|||
2022-08-23 22:21:24.889 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule |
|||
2022-08-23 22:21:24.890 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule |
|||
2022-08-23 22:21:24.890 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule |
|||
2022-08-23 22:21:24.891 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule |
|||
2022-08-23 22:21:24.891 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule |
|||
2022-08-23 22:21:24.892 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule |
|||
2022-08-23 22:21:24.892 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule |
|||
2022-08-23 22:21:24.893 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule |
|||
2022-08-23 22:21:24.893 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule |
|||
2022-08-23 22:21:24.894 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule |
|||
2022-08-23 22:21:24.896 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule |
|||
2022-08-23 22:21:24.897 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule |
|||
2022-08-23 22:21:24.897 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule |
|||
2022-08-23 22:21:24.898 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule |
|||
2022-08-23 22:21:24.898 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule |
|||
2022-08-23 22:21:24.899 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule |
|||
2022-08-23 22:21:24.900 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule |
|||
2022-08-23 22:21:24.900 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule |
|||
2022-08-23 22:21:24.901 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule |
|||
2022-08-23 22:21:24.901 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule |
|||
2022-08-23 22:21:24.902 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule |
|||
2022-08-23 22:21:24.902 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementApplicationContractsModule |
|||
2022-08-23 22:21:24.903 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule |
|||
2022-08-23 22:21:24.903 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule |
|||
2022-08-23 22:21:24.904 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule |
|||
2022-08-23 22:21:24.905 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule |
|||
2022-08-23 22:21:24.905 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementApplicationContractsModule |
|||
2022-08-23 22:21:24.906 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementApplicationContractsModule |
|||
2022-08-23 22:21:24.906 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementApplicationContractsModule |
|||
2022-08-23 22:21:24.907 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule |
|||
2022-08-23 22:21:24.907 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule |
|||
2022-08-23 22:21:24.908 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule |
|||
2022-08-23 22:21:24.908 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule |
|||
2022-08-23 22:21:24.909 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule |
|||
2022-08-23 22:21:24.909 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule |
|||
2022-08-23 22:21:24.910 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule |
|||
2022-08-23 22:21:24.915 +08:00 [INF] - Volo.Abp.UI.AbpUiModule |
|||
2022-08-23 22:21:24.915 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule |
|||
2022-08-23 22:21:24.916 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule |
|||
2022-08-23 22:21:24.916 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule |
|||
2022-08-23 22:21:24.917 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule |
|||
2022-08-23 22:21:24.917 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementApplicationModule |
|||
2022-08-23 22:21:24.918 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementApplicationModule |
|||
2022-08-23 22:21:24.918 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementApplicationModule |
|||
2022-08-23 22:21:24.919 +08:00 [INF] - Lion.AbpPro.BasicManagement.EntityFrameworkCore.BasicManagementEntityFrameworkCoreModule |
|||
2022-08-23 22:21:24.920 +08:00 [INF] - Volo.Abp.EntityFrameworkCore.AbpEntityFrameworkCoreModule |
|||
2022-08-23 22:21:24.920 +08:00 [INF] - Volo.Abp.Identity.EntityFrameworkCore.AbpIdentityEntityFrameworkCoreModule |
|||
2022-08-23 22:21:24.921 +08:00 [INF] - Volo.Abp.Users.EntityFrameworkCore.AbpUsersEntityFrameworkCoreModule |
|||
2022-08-23 22:21:24.921 +08:00 [INF] - Volo.Abp.PermissionManagement.EntityFrameworkCore.AbpPermissionManagementEntityFrameworkCoreModule |
|||
2022-08-23 22:21:24.922 +08:00 [INF] - Volo.Abp.SettingManagement.EntityFrameworkCore.AbpSettingManagementEntityFrameworkCoreModule |
|||
2022-08-23 22:21:24.922 +08:00 [INF] - Volo.Abp.BackgroundJobs.EntityFrameworkCore.AbpBackgroundJobsEntityFrameworkCoreModule |
|||
2022-08-23 22:21:24.923 +08:00 [INF] - Volo.Abp.AuditLogging.EntityFrameworkCore.AbpAuditLoggingEntityFrameworkCoreModule |
|||
2022-08-23 22:21:24.923 +08:00 [INF] - Volo.Abp.TenantManagement.EntityFrameworkCore.AbpTenantManagementEntityFrameworkCoreModule |
|||
2022-08-23 22:21:24.924 +08:00 [INF] - Volo.Abp.FeatureManagement.EntityFrameworkCore.AbpFeatureManagementEntityFrameworkCoreModule |
|||
2022-08-23 22:21:24.925 +08:00 [INF] - Lion.AbpPro.BasicManagement.BasicManagementHttpApiModule |
|||
2022-08-23 22:21:24.925 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule |
|||
2022-08-23 22:21:24.928 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule |
|||
2022-08-23 22:21:24.928 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule |
|||
2022-08-23 22:21:24.929 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule |
|||
2022-08-23 22:21:24.930 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule |
|||
2022-08-23 22:21:24.931 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule |
|||
2022-08-23 22:21:24.931 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule |
|||
2022-08-23 22:21:24.932 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule |
|||
2022-08-23 22:21:24.932 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule |
|||
2022-08-23 22:21:24.933 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule |
|||
2022-08-23 22:21:24.934 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule |
|||
2022-08-23 22:21:24.934 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule |
|||
2022-08-23 22:21:24.935 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule |
|||
2022-08-23 22:21:24.935 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule |
|||
2022-08-23 22:21:24.936 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule |
|||
2022-08-23 22:21:24.936 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule |
|||
2022-08-23 22:21:24.937 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule |
|||
2022-08-23 22:21:24.937 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule |
|||
2022-08-23 22:21:24.938 +08:00 [INF] - Volo.Abp.EntityFrameworkCore.MySQL.AbpEntityFrameworkCoreMySQLModule |
|||
2022-08-23 22:21:24.938 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule |
|||
2022-08-23 22:21:24.939 +08:00 [INF] - Volo.Abp.Swashbuckle.AbpSwashbuckleModule |
|||
2022-08-23 22:21:24.939 +08:00 [INF] - Lion.AbpPro.Shared.Hosting.Microservices.SharedHostingMicroserviceModule |
|||
2022-08-23 22:21:25.334 +08:00 [INF] Initialized all ABP modules. |
|||
2022-08-23 22:21:25.376 +08:00 [INF] Now listening on: http://localhost:44324 |
|||
2022-08-23 22:21:25.378 +08:00 [INF] Application started. Press Ctrl+C to shut down. |
|||
2022-08-23 22:21:25.379 +08:00 [INF] Hosting environment: Development |
|||
2022-08-23 22:21:25.379 +08:00 [INF] Content root path: D:\github\WangJunZzz\abp-vnext-pro\aspnet-core\modules\BasicManagement\host\Lion.AbpPro.BasicManagement.HttpApi.Host |
|||
2022-08-23 22:21:25.784 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/ - - |
|||
2022-08-23 22:21:25.792 +08:00 [WRN] Failed to determine the https port for redirect. |
|||
2022-08-23 22:21:28.295 +08:00 [INF] Executing endpoint 'Lion.AbpPro.BasicManagement.Controllers.HomeController.Index (Lion.AbpPro.BasicManagement.HttpApi.Host)' |
|||
2022-08-23 22:21:28.317 +08:00 [INF] Route matched with {action = "Index", controller = "Home", area = "", page = ""}. Executing controller action with signature Microsoft.AspNetCore.Mvc.ActionResult Index() on controller Lion.AbpPro.BasicManagement.Controllers.HomeController (Lion.AbpPro.BasicManagement.HttpApi.Host). |
|||
2022-08-23 22:21:28.351 +08:00 [INF] Executing RedirectResult, redirecting to /swagger. |
|||
2022-08-23 22:21:28.360 +08:00 [INF] Executed action Lion.AbpPro.BasicManagement.Controllers.HomeController.Index (Lion.AbpPro.BasicManagement.HttpApi.Host) in 36.344ms |
|||
2022-08-23 22:21:28.364 +08:00 [INF] Executed endpoint 'Lion.AbpPro.BasicManagement.Controllers.HomeController.Index (Lion.AbpPro.BasicManagement.HttpApi.Host)' |
|||
2022-08-23 22:21:28.383 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/ - - - 302 0 - 2599.4371ms |
|||
2022-08-23 22:21:28.390 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger - - |
|||
2022-08-23 22:21:28.396 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger - - - 301 0 - 5.4534ms |
|||
2022-08-23 22:21:28.402 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger/index.html - - |
|||
2022-08-23 22:21:28.476 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger/index.html - - - 200 - text/html;charset=utf-8 73.9537ms |
|||
2022-08-23 22:21:28.521 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger/swagger-ui.css - - |
|||
2022-08-23 22:21:28.522 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger/ui/abp.js - - |
|||
2022-08-23 22:21:28.527 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger/ui/abp.swagger.js - - |
|||
2022-08-23 22:21:28.528 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger/swagger-ui-bundle.js - - |
|||
2022-08-23 22:21:28.530 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger/swagger-ui-standalone-preset.js - - |
|||
2022-08-23 22:21:28.547 +08:00 [INF] Sending file. Request path: '/swagger/ui/abp.js'. Physical path: 'N/A' |
|||
2022-08-23 22:21:28.547 +08:00 [INF] Sending file. Request path: '/swagger/ui/abp.swagger.js'. Physical path: 'N/A' |
|||
2022-08-23 22:21:28.553 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger/ui/abp.js - - - 200 3122 application/javascript 30.6392ms |
|||
2022-08-23 22:21:28.560 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger/ui/abp.swagger.js - - - 200 1246 application/javascript 33.7304ms |
|||
2022-08-23 22:21:28.571 +08:00 [INF] Sending file. Request path: '/swagger-ui.css'. Physical path: 'N/A' |
|||
2022-08-23 22:21:28.580 +08:00 [INF] Sending file. Request path: '/swagger-ui-standalone-preset.js'. Physical path: 'N/A' |
|||
2022-08-23 22:21:28.584 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger/swagger-ui.css - - - 200 143943 text/css 63.6951ms |
|||
2022-08-23 22:21:28.585 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger/swagger-ui-standalone-preset.js - - - 200 339486 application/javascript 55.0516ms |
|||
2022-08-23 22:21:28.595 +08:00 [INF] Sending file. Request path: '/swagger-ui-bundle.js'. Physical path: 'N/A' |
|||
2022-08-23 22:21:28.597 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger/swagger-ui-bundle.js - - - 200 1095087 application/javascript 68.6634ms |
|||
2022-08-23 22:21:28.885 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger/BasicManagement/swagger.json - - |
|||
2022-08-23 22:21:28.932 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/swagger/favicon-32x32.png - - |
|||
2022-08-23 22:21:28.948 +08:00 [INF] Sending file. Request path: '/favicon-32x32.png'. Physical path: 'N/A' |
|||
2022-08-23 22:21:28.951 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger/favicon-32x32.png - - - 200 628 image/png 18.9267ms |
|||
2022-08-23 22:21:29.159 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/swagger/BasicManagement/swagger.json - - - 200 - application/json;charset=utf-8 273.8320ms |
|||
2022-08-23 22:21:39.697 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:44324/abp/Swashbuckle/SetCsrfCookie application/json - |
|||
2022-08-23 22:21:39.700 +08:00 [INF] Executing endpoint 'Volo.Abp.Swashbuckle.AbpSwashbuckleController.SetCsrfCookie (Volo.Abp.Swashbuckle)' |
|||
2022-08-23 22:21:39.702 +08:00 [INF] Route matched with {area = "Abp", action = "SetCsrfCookie", controller = "AbpSwashbuckle", page = ""}. Executing controller action with signature Void SetCsrfCookie() on controller Volo.Abp.Swashbuckle.AbpSwashbuckleController (Volo.Abp.Swashbuckle). |
|||
2022-08-23 22:21:39.713 +08:00 [WRN] The cookie 'XSRF-TOKEN' has set 'SameSite=None' and must also set 'Secure'. |
|||
2022-08-23 22:21:39.714 +08:00 [INF] Executed action Volo.Abp.Swashbuckle.AbpSwashbuckleController.SetCsrfCookie (Volo.Abp.Swashbuckle) in 10.3525ms |
|||
2022-08-23 22:21:39.715 +08:00 [INF] Executed endpoint 'Volo.Abp.Swashbuckle.AbpSwashbuckleController.SetCsrfCookie (Volo.Abp.Swashbuckle)' |
|||
2022-08-23 22:21:39.716 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:44324/abp/Swashbuckle/SetCsrfCookie application/json - - 204 - - 18.5906ms |
|||
2022-08-23 22:21:39.751 +08:00 [INF] Request starting HTTP/1.1 POST http://localhost:44324/api/app/account/login application/json 46 |
|||
2022-08-23 22:21:39.753 +08:00 [INF] No CORS policy found for the specified request. |
|||
2022-08-23 22:21:39.754 +08:00 [INF] Executing endpoint 'Lion.AbpPro.BasicManagement.Systems.AccountController.LoginAsync (Lion.AbpPro.BasicManagement.HttpApi)' |
|||
2022-08-23 22:21:39.763 +08:00 [INF] Route matched with {action = "Login", controller = "Account", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Lion.AbpPro.BasicManagement.Users.Dtos.LoginOutput] LoginAsync(Lion.AbpPro.BasicManagement.Users.Dtos.LoginInput) on controller Lion.AbpPro.BasicManagement.Systems.AccountController (Lion.AbpPro.BasicManagement.HttpApi). |
|||
2022-08-23 22:21:39.801 +08:00 [ERR] ---------- RemoteServiceErrorInfo ---------- |
|||
{ |
|||
"code": null, |
|||
"message": "对不起,在处理你的请求期间,产生了一个服务器内部错误!", |
|||
"details": null, |
|||
"data": { |
|||
"ActivatorChain": "Lion.AbpPro.BasicManagement.Systems.AccountController -> Lion.AbpPro.BasicManagement.Users.AccountAppService" |
|||
}, |
|||
"validationErrors": null |
|||
} |
|||
|
|||
2022-08-23 22:21:39.803 +08:00 [ERR] An exception was thrown while activating Lion.AbpPro.BasicManagement.Systems.AccountController -> Lion.AbpPro.BasicManagement.Users.AccountAppService. |
|||
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Lion.AbpPro.BasicManagement.Systems.AccountController -> Lion.AbpPro.BasicManagement.Users.AccountAppService. |
|||
---> Autofac.Core.DependencyResolutionException: None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'Lion.AbpPro.BasicManagement.Users.AccountAppService' can be invoked with the available services and parameters: |
|||
Cannot resolve parameter 'Microsoft.AspNetCore.Identity.SignInManager`1[Volo.Abp.Identity.IdentityUser] signInManager' of constructor 'Void .ctor(Volo.Abp.Identity.IdentityUserManager, Microsoft.Extensions.Options.IOptionsSnapshot`1[Lion.AbpPro.BasicManagement.ConfigurationOptions.JwtOptions], Microsoft.AspNetCore.Identity.SignInManager`1[Volo.Abp.Identity.IdentityUser])'. |
|||
at Autofac.Core.Activators.Reflection.ReflectionActivator.GetAllBindings(ConstructorBinder[] availableConstructors, IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) |
|||
at Autofac.Core.Activators.Reflection.ReflectionActivator.<ConfigurePipeline>b__11_0(ResolveRequestContext ctxt, Action`1 next) |
|||
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Builder.RegistrationBuilder`3.<>c__DisplayClass41_0.<PropertiesAutowired>b__0(ResolveRequestContext ctxt, Action`1 next) |
|||
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Extras.DynamicProxy.RegistrationExtensions.<>c__DisplayClass8_0`3.<EnableInterfaceInterceptors>b__1(ResolveRequestContext ctxt, Action`1 next) |
|||
at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
--- End of inner exception stack trace --- |
|||
at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.ScopeSelectionMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) |
|||
at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt) |
|||
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request) |
|||
at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request) |
|||
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request) |
|||
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) |
|||
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) |
|||
at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) |
|||
at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) |
|||
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) |
|||
at Microsoft.AspNetCore.Mvc.Controllers.ServiceBasedControllerActivator.Create(ControllerContext actionContext) |
|||
at Microsoft.AspNetCore.Mvc.Controllers.ControllerFactoryProvider.<>c__DisplayClass6_0.<CreateControllerFactory>g__CreateController|0(ControllerContext controllerContext) |
|||
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) |
|||
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync() |
|||
--- End of stack trace from previous location --- |
|||
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) |
|||
2022-08-23 22:21:39.845 +08:00 [ERR] ---------- Exception Data ---------- |
|||
ActivatorChain = Lion.AbpPro.BasicManagement.Systems.AccountController -> Lion.AbpPro.BasicManagement.Users.AccountAppService |
|||
|
|||
2022-08-23 22:21:39.853 +08:00 [INF] Executing ObjectResult, writing value of type 'Volo.Abp.Http.RemoteServiceErrorResponse'. |
|||
2022-08-23 22:21:39.858 +08:00 [INF] Executed action Lion.AbpPro.BasicManagement.Systems.AccountController.LoginAsync (Lion.AbpPro.BasicManagement.HttpApi) in 93.438ms |
|||
2022-08-23 22:21:39.862 +08:00 [INF] Executed endpoint 'Lion.AbpPro.BasicManagement.Systems.AccountController.LoginAsync (Lion.AbpPro.BasicManagement.HttpApi)' |
|||
2022-08-23 22:21:40.175 +08:00 [INF] Request finished HTTP/1.1 POST http://localhost:44324/api/app/account/login application/json 46 - 500 - application/json;+charset=utf-8 424.1464ms |
|||
@ -0,0 +1,16 @@ |
|||
2022-08-23 22:11:33.863 +08:00 [INF] Starting web host. |
|||
2022-08-23 22:11:39.197 +08:00 [FTL] Host terminated unexpectedly! |
|||
Microsoft.Extensions.Hosting.HostFactoryResolver+HostingListener+StopTheHostException: Exception of type 'Microsoft.Extensions.Hosting.HostFactoryResolver+HostingListener+StopTheHostException' was thrown. |
|||
at Microsoft.Extensions.Hosting.HostFactoryResolver.HostingListener.OnNext(KeyValuePair`2 value) |
|||
at System.Diagnostics.DiagnosticListener.Write(String name, Object value) |
|||
at Microsoft.Extensions.Hosting.HostBuilder.Build() |
|||
at Microsoft.AspNetCore.Builder.WebApplicationBuilder.Build() |
|||
at Lion.AbpPro.BasicManagement.Program.Main(String[] args) in D:\github\WangJunZzz\abp-vnext-pro\aspnet-core\modules\BasicManagement\host\Lion.AbpPro.BasicManagement.HttpApi.Host\Program.cs:line 36 |
|||
2022-08-23 22:13:21.209 +08:00 [INF] Starting web host. |
|||
2022-08-23 22:13:22.124 +08:00 [FTL] Host terminated unexpectedly! |
|||
Microsoft.Extensions.Hosting.HostFactoryResolver+HostingListener+StopTheHostException: Exception of type 'Microsoft.Extensions.Hosting.HostFactoryResolver+HostingListener+StopTheHostException' was thrown. |
|||
at Microsoft.Extensions.Hosting.HostFactoryResolver.HostingListener.OnNext(KeyValuePair`2 value) |
|||
at System.Diagnostics.DiagnosticListener.Write(String name, Object value) |
|||
at Microsoft.Extensions.Hosting.HostBuilder.Build() |
|||
at Microsoft.AspNetCore.Builder.WebApplicationBuilder.Build() |
|||
at Lion.AbpPro.BasicManagement.Program.Main(String[] args) in D:\github\WangJunZzz\abp-vnext-pro\aspnet-core\modules\BasicManagement\host\Lion.AbpPro.BasicManagement.HttpApi.Host\Program.cs:line 36 |
|||
File diff suppressed because it is too large
@ -0,0 +1,880 @@ |
|||
using System; |
|||
using Microsoft.EntityFrameworkCore.Migrations; |
|||
|
|||
#nullable disable |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Migrations |
|||
{ |
|||
public partial class Init : Migration |
|||
{ |
|||
protected override void Up(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.AlterDatabase() |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpAuditLogs", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
ApplicationName = table.Column<string>(type: "varchar(96)", maxLength: 96, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
UserId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
UserName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
TenantName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ImpersonatorUserId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
ImpersonatorUserName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ImpersonatorTenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
ImpersonatorTenantName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ExecutionTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), |
|||
ExecutionDuration = table.Column<int>(type: "int", nullable: false), |
|||
ClientIpAddress = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ClientName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ClientId = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
CorrelationId = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
BrowserInfo = table.Column<string>(type: "varchar(512)", maxLength: 512, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
HttpMethod = table.Column<string>(type: "varchar(16)", maxLength: 16, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
Url = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
Exceptions = table.Column<string>(type: "longtext", nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
Comments = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
HttpStatusCode = table.Column<int>(type: "int", nullable: true), |
|||
ExtraProperties = table.Column<string>(type: "longtext", nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpAuditLogs", x => x.Id); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpBackgroundJobs", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
JobName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
JobArgs = table.Column<string>(type: "longtext", maxLength: 1048576, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
TryCount = table.Column<short>(type: "smallint", nullable: false, defaultValue: (short)0), |
|||
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), |
|||
NextTryTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), |
|||
LastTryTime = table.Column<DateTime>(type: "datetime(6)", nullable: true), |
|||
IsAbandoned = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false), |
|||
Priority = table.Column<byte>(type: "tinyint unsigned", nullable: false, defaultValue: (byte)15), |
|||
ExtraProperties = table.Column<string>(type: "longtext", nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpBackgroundJobs", x => x.Id); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpClaimTypes", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
Name = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
Required = table.Column<bool>(type: "tinyint(1)", nullable: false), |
|||
IsStatic = table.Column<bool>(type: "tinyint(1)", nullable: false), |
|||
Regex = table.Column<string>(type: "varchar(512)", maxLength: 512, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
RegexDescription = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
Description = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ValueType = table.Column<int>(type: "int", nullable: false), |
|||
ExtraProperties = table.Column<string>(type: "longtext", nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpClaimTypes", x => x.Id); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpFeatureValues", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
Name = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
Value = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ProviderName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ProviderKey = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpFeatureValues", x => x.Id); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpLinkUsers", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
SourceUserId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
SourceTenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
TargetUserId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
TargetTenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpLinkUsers", x => x.Id); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpOrganizationUnits", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
ParentId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
Code = table.Column<string>(type: "varchar(95)", maxLength: 95, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
DisplayName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ExtraProperties = table.Column<string>(type: "longtext", nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), |
|||
CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true), |
|||
LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false), |
|||
DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true) |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpOrganizationUnits", x => x.Id); |
|||
table.ForeignKey( |
|||
name: "FK_AbpOrganizationUnits_AbpOrganizationUnits_ParentId", |
|||
column: x => x.ParentId, |
|||
principalTable: "AbpOrganizationUnits", |
|||
principalColumn: "Id"); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpPermissionGrants", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
Name = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ProviderName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ProviderKey = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpPermissionGrants", x => x.Id); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpRoles", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
Name = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
NormalizedName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
IsDefault = table.Column<bool>(type: "tinyint(1)", nullable: false), |
|||
IsStatic = table.Column<bool>(type: "tinyint(1)", nullable: false), |
|||
IsPublic = table.Column<bool>(type: "tinyint(1)", nullable: false), |
|||
ExtraProperties = table.Column<string>(type: "longtext", nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpRoles", x => x.Id); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpSecurityLogs", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
ApplicationName = table.Column<string>(type: "varchar(96)", maxLength: 96, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
Identity = table.Column<string>(type: "varchar(96)", maxLength: 96, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
Action = table.Column<string>(type: "varchar(96)", maxLength: 96, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
UserId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
UserName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
TenantName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ClientId = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
CorrelationId = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ClientIpAddress = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
BrowserInfo = table.Column<string>(type: "varchar(512)", maxLength: 512, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), |
|||
ExtraProperties = table.Column<string>(type: "longtext", nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpSecurityLogs", x => x.Id); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpSettings", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
Name = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
Value = table.Column<string>(type: "varchar(2048)", maxLength: 2048, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ProviderName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ProviderKey = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpSettings", x => x.Id); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpTenants", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
Name = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ExtraProperties = table.Column<string>(type: "longtext", nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), |
|||
CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true), |
|||
LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false), |
|||
DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true) |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpTenants", x => x.Id); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpUsers", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
UserName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
NormalizedUserName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
Name = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
Surname = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
Email = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
NormalizedEmail = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
EmailConfirmed = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false), |
|||
PasswordHash = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
SecurityStamp = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
IsExternal = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false), |
|||
PhoneNumber = table.Column<string>(type: "varchar(16)", maxLength: 16, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
PhoneNumberConfirmed = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false), |
|||
IsActive = table.Column<bool>(type: "tinyint(1)", nullable: false), |
|||
TwoFactorEnabled = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false), |
|||
LockoutEnd = table.Column<DateTimeOffset>(type: "datetime(6)", nullable: true), |
|||
LockoutEnabled = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false), |
|||
AccessFailedCount = table.Column<int>(type: "int", nullable: false, defaultValue: 0), |
|||
ExtraProperties = table.Column<string>(type: "longtext", nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), |
|||
CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true), |
|||
LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false), |
|||
DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true) |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpUsers", x => x.Id); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpAuditLogActions", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
AuditLogId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
ServiceName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
MethodName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
Parameters = table.Column<string>(type: "varchar(2000)", maxLength: 2000, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ExecutionTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), |
|||
ExecutionDuration = table.Column<int>(type: "int", nullable: false), |
|||
ExtraProperties = table.Column<string>(type: "longtext", nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpAuditLogActions", x => x.Id); |
|||
table.ForeignKey( |
|||
name: "FK_AbpAuditLogActions_AbpAuditLogs_AuditLogId", |
|||
column: x => x.AuditLogId, |
|||
principalTable: "AbpAuditLogs", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpEntityChanges", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
AuditLogId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
ChangeTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), |
|||
ChangeType = table.Column<byte>(type: "tinyint unsigned", nullable: false), |
|||
EntityTenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
EntityId = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
EntityTypeFullName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ExtraProperties = table.Column<string>(type: "longtext", nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpEntityChanges", x => x.Id); |
|||
table.ForeignKey( |
|||
name: "FK_AbpEntityChanges_AbpAuditLogs_AuditLogId", |
|||
column: x => x.AuditLogId, |
|||
principalTable: "AbpAuditLogs", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpOrganizationUnitRoles", |
|||
columns: table => new |
|||
{ |
|||
RoleId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
OrganizationUnitId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), |
|||
CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpOrganizationUnitRoles", x => new { x.OrganizationUnitId, x.RoleId }); |
|||
table.ForeignKey( |
|||
name: "FK_AbpOrganizationUnitRoles_AbpOrganizationUnits_OrganizationUn~", |
|||
column: x => x.OrganizationUnitId, |
|||
principalTable: "AbpOrganizationUnits", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
table.ForeignKey( |
|||
name: "FK_AbpOrganizationUnitRoles_AbpRoles_RoleId", |
|||
column: x => x.RoleId, |
|||
principalTable: "AbpRoles", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpRoleClaims", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
RoleId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
ClaimType = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ClaimValue = table.Column<string>(type: "varchar(1024)", maxLength: 1024, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpRoleClaims", x => x.Id); |
|||
table.ForeignKey( |
|||
name: "FK_AbpRoleClaims_AbpRoles_RoleId", |
|||
column: x => x.RoleId, |
|||
principalTable: "AbpRoles", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpTenantConnectionStrings", |
|||
columns: table => new |
|||
{ |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
Name = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
Value = table.Column<string>(type: "varchar(1024)", maxLength: 1024, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpTenantConnectionStrings", x => new { x.TenantId, x.Name }); |
|||
table.ForeignKey( |
|||
name: "FK_AbpTenantConnectionStrings_AbpTenants_TenantId", |
|||
column: x => x.TenantId, |
|||
principalTable: "AbpTenants", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpUserClaims", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
UserId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
ClaimType = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ClaimValue = table.Column<string>(type: "varchar(1024)", maxLength: 1024, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpUserClaims", x => x.Id); |
|||
table.ForeignKey( |
|||
name: "FK_AbpUserClaims_AbpUsers_UserId", |
|||
column: x => x.UserId, |
|||
principalTable: "AbpUsers", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpUserLogins", |
|||
columns: table => new |
|||
{ |
|||
UserId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
LoginProvider = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
ProviderKey = table.Column<string>(type: "varchar(196)", maxLength: 196, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
ProviderDisplayName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpUserLogins", x => new { x.UserId, x.LoginProvider }); |
|||
table.ForeignKey( |
|||
name: "FK_AbpUserLogins_AbpUsers_UserId", |
|||
column: x => x.UserId, |
|||
principalTable: "AbpUsers", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpUserOrganizationUnits", |
|||
columns: table => new |
|||
{ |
|||
UserId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
OrganizationUnitId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), |
|||
CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpUserOrganizationUnits", x => new { x.OrganizationUnitId, x.UserId }); |
|||
table.ForeignKey( |
|||
name: "FK_AbpUserOrganizationUnits_AbpOrganizationUnits_OrganizationUn~", |
|||
column: x => x.OrganizationUnitId, |
|||
principalTable: "AbpOrganizationUnits", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
table.ForeignKey( |
|||
name: "FK_AbpUserOrganizationUnits_AbpUsers_UserId", |
|||
column: x => x.UserId, |
|||
principalTable: "AbpUsers", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpUserRoles", |
|||
columns: table => new |
|||
{ |
|||
UserId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
RoleId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpUserRoles", x => new { x.UserId, x.RoleId }); |
|||
table.ForeignKey( |
|||
name: "FK_AbpUserRoles_AbpRoles_RoleId", |
|||
column: x => x.RoleId, |
|||
principalTable: "AbpRoles", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
table.ForeignKey( |
|||
name: "FK_AbpUserRoles_AbpUsers_UserId", |
|||
column: x => x.UserId, |
|||
principalTable: "AbpUsers", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpUserTokens", |
|||
columns: table => new |
|||
{ |
|||
UserId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
LoginProvider = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
Name = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
Value = table.Column<string>(type: "longtext", nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpUserTokens", x => new { x.UserId, x.LoginProvider, x.Name }); |
|||
table.ForeignKey( |
|||
name: "FK_AbpUserTokens_AbpUsers_UserId", |
|||
column: x => x.UserId, |
|||
principalTable: "AbpUsers", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "AbpEntityPropertyChanges", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
|||
EntityChangeId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
|||
NewValue = table.Column<string>(type: "varchar(512)", maxLength: 512, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
OriginalValue = table.Column<string>(type: "varchar(512)", maxLength: 512, nullable: true) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
PropertyName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4"), |
|||
PropertyTypeFullName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false) |
|||
.Annotation("MySql:CharSet", "utf8mb4") |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_AbpEntityPropertyChanges", x => x.Id); |
|||
table.ForeignKey( |
|||
name: "FK_AbpEntityPropertyChanges_AbpEntityChanges_EntityChangeId", |
|||
column: x => x.EntityChangeId, |
|||
principalTable: "AbpEntityChanges", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
}) |
|||
.Annotation("MySql:CharSet", "utf8mb4"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpAuditLogActions_AuditLogId", |
|||
table: "AbpAuditLogActions", |
|||
column: "AuditLogId"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpAuditLogActions_TenantId_ServiceName_MethodName_Execution~", |
|||
table: "AbpAuditLogActions", |
|||
columns: new[] { "TenantId", "ServiceName", "MethodName", "ExecutionTime" }); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpAuditLogs_TenantId_ExecutionTime", |
|||
table: "AbpAuditLogs", |
|||
columns: new[] { "TenantId", "ExecutionTime" }); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpAuditLogs_TenantId_UserId_ExecutionTime", |
|||
table: "AbpAuditLogs", |
|||
columns: new[] { "TenantId", "UserId", "ExecutionTime" }); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpBackgroundJobs_IsAbandoned_NextTryTime", |
|||
table: "AbpBackgroundJobs", |
|||
columns: new[] { "IsAbandoned", "NextTryTime" }); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpEntityChanges_AuditLogId", |
|||
table: "AbpEntityChanges", |
|||
column: "AuditLogId"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpEntityChanges_TenantId_EntityTypeFullName_EntityId", |
|||
table: "AbpEntityChanges", |
|||
columns: new[] { "TenantId", "EntityTypeFullName", "EntityId" }); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpEntityPropertyChanges_EntityChangeId", |
|||
table: "AbpEntityPropertyChanges", |
|||
column: "EntityChangeId"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpFeatureValues_Name_ProviderName_ProviderKey", |
|||
table: "AbpFeatureValues", |
|||
columns: new[] { "Name", "ProviderName", "ProviderKey" }, |
|||
unique: true); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpLinkUsers_SourceUserId_SourceTenantId_TargetUserId_Target~", |
|||
table: "AbpLinkUsers", |
|||
columns: new[] { "SourceUserId", "SourceTenantId", "TargetUserId", "TargetTenantId" }, |
|||
unique: true); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpOrganizationUnitRoles_RoleId_OrganizationUnitId", |
|||
table: "AbpOrganizationUnitRoles", |
|||
columns: new[] { "RoleId", "OrganizationUnitId" }); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpOrganizationUnits_Code", |
|||
table: "AbpOrganizationUnits", |
|||
column: "Code"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpOrganizationUnits_ParentId", |
|||
table: "AbpOrganizationUnits", |
|||
column: "ParentId"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpPermissionGrants_TenantId_Name_ProviderName_ProviderKey", |
|||
table: "AbpPermissionGrants", |
|||
columns: new[] { "TenantId", "Name", "ProviderName", "ProviderKey" }, |
|||
unique: true); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpRoleClaims_RoleId", |
|||
table: "AbpRoleClaims", |
|||
column: "RoleId"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpRoles_NormalizedName", |
|||
table: "AbpRoles", |
|||
column: "NormalizedName"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpSecurityLogs_TenantId_Action", |
|||
table: "AbpSecurityLogs", |
|||
columns: new[] { "TenantId", "Action" }); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpSecurityLogs_TenantId_ApplicationName", |
|||
table: "AbpSecurityLogs", |
|||
columns: new[] { "TenantId", "ApplicationName" }); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpSecurityLogs_TenantId_Identity", |
|||
table: "AbpSecurityLogs", |
|||
columns: new[] { "TenantId", "Identity" }); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpSecurityLogs_TenantId_UserId", |
|||
table: "AbpSecurityLogs", |
|||
columns: new[] { "TenantId", "UserId" }); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpSettings_Name_ProviderName_ProviderKey", |
|||
table: "AbpSettings", |
|||
columns: new[] { "Name", "ProviderName", "ProviderKey" }, |
|||
unique: true); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpTenants_Name", |
|||
table: "AbpTenants", |
|||
column: "Name"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpUserClaims_UserId", |
|||
table: "AbpUserClaims", |
|||
column: "UserId"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpUserLogins_LoginProvider_ProviderKey", |
|||
table: "AbpUserLogins", |
|||
columns: new[] { "LoginProvider", "ProviderKey" }); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpUserOrganizationUnits_UserId_OrganizationUnitId", |
|||
table: "AbpUserOrganizationUnits", |
|||
columns: new[] { "UserId", "OrganizationUnitId" }); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpUserRoles_RoleId_UserId", |
|||
table: "AbpUserRoles", |
|||
columns: new[] { "RoleId", "UserId" }); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpUsers_Email", |
|||
table: "AbpUsers", |
|||
column: "Email"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpUsers_NormalizedEmail", |
|||
table: "AbpUsers", |
|||
column: "NormalizedEmail"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpUsers_NormalizedUserName", |
|||
table: "AbpUsers", |
|||
column: "NormalizedUserName"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_AbpUsers_UserName", |
|||
table: "AbpUsers", |
|||
column: "UserName"); |
|||
} |
|||
|
|||
protected override void Down(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.DropTable( |
|||
name: "AbpAuditLogActions"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpBackgroundJobs"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpClaimTypes"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpEntityPropertyChanges"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpFeatureValues"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpLinkUsers"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpOrganizationUnitRoles"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpPermissionGrants"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpRoleClaims"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpSecurityLogs"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpSettings"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpTenantConnectionStrings"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpUserClaims"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpUserLogins"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpUserOrganizationUnits"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpUserRoles"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpUserTokens"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpEntityChanges"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpTenants"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpOrganizationUnits"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpRoles"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpUsers"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "AbpAuditLogs"); |
|||
} |
|||
} |
|||
} |
|||
File diff suppressed because it is too large
@ -0,0 +1,32 @@ |
|||
using System; |
|||
using System.Threading.Tasks; |
|||
using Microsoft.AspNetCore.Builder; |
|||
using Microsoft.Extensions.DependencyInjection; |
|||
using Microsoft.Extensions.Hosting; |
|||
using Serilog; |
|||
using Serilog.Events; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement; |
|||
|
|||
public class Program |
|||
{ |
|||
public static void Main(string[] args) |
|||
{ |
|||
CreateHostBuilder(args).Build().Run(); |
|||
|
|||
} |
|||
|
|||
private static IHostBuilder CreateHostBuilder(string[] args) => |
|||
Host.CreateDefaultBuilder(args) |
|||
.ConfigureWebHostDefaults(webBuilder => |
|||
{ |
|||
webBuilder.ConfigureKestrel((context, options) => { options.Limits.MaxRequestBodySize = 1024 * 50; }); |
|||
webBuilder.UseStartup<Startup>(); |
|||
}) |
|||
.UseSerilog((context, loggerConfiguration) => |
|||
{ |
|||
SerilogToEsExtensions.SetSerilogConfiguration( |
|||
loggerConfiguration, |
|||
context.Configuration); |
|||
}).UseAutofac(); |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
{ |
|||
"profiles": { |
|||
"Lion.AbpPro.BasicManagement.HttpApi.Host": { |
|||
"commandName": "Project", |
|||
"launchBrowser": true, |
|||
"applicationUrl": "http://localhost:44324", |
|||
"environmentVariables": { |
|||
"ASPNETCORE_ENVIRONMENT": "Development" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
using Serilog; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement |
|||
{ |
|||
public static class SerilogToEsExtensions |
|||
{ |
|||
public static void SetSerilogConfiguration(LoggerConfiguration loggerConfiguration, IConfiguration configuration) |
|||
{ |
|||
// 默认读取 configuration 中 "Serilog" 节点下的配置
|
|||
loggerConfiguration |
|||
.ReadFrom.Configuration(configuration) |
|||
.Enrich.FromLogContext(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
namespace Lion.AbpPro.BasicManagement |
|||
{ |
|||
public class Startup |
|||
{ |
|||
public void ConfigureServices(IServiceCollection services) |
|||
{ |
|||
services.AddApplication<BasicManagementHttpApiHostModule>(); |
|||
} |
|||
|
|||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) |
|||
{ |
|||
app.InitializeApplication(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,48 @@ |
|||
{ |
|||
"Serilog": { |
|||
"Using": [ |
|||
"Serilog.Sinks.Console", |
|||
"Serilog.Sinks.File" |
|||
], |
|||
"MinimumLevel": { |
|||
"Default": "Debug", |
|||
"Override": { |
|||
"Microsoft": "Information", |
|||
"Volo.Abp": "Information", |
|||
"Hangfire": "Information", |
|||
"DotNetCore.CAP": "Information", |
|||
"Serilog.AspNetCore": "Information", |
|||
"Microsoft.EntityFrameworkCore": "Warning", |
|||
"Microsoft.AspNetCore": "Information" |
|||
} |
|||
}, |
|||
"WriteTo": [ |
|||
{ |
|||
"Name": "Console" |
|||
}, |
|||
{ |
|||
"Name": "File", |
|||
"Args": { |
|||
"path": "logs/logs-.txt", |
|||
"rollingInterval": "Day" |
|||
} |
|||
} |
|||
] |
|||
}, |
|||
"App": { |
|||
"SelfUrl": "http://localhost:44315", |
|||
"CorsOrigins": "https://*.AbpPro.com,http://localhost:4200,http://localhost:3100" |
|||
}, |
|||
"ConnectionStrings": { |
|||
"Default": "Data Source=localhost;Port=3306;Database=LionAbpProBasicManagementDB;uid=root;pwd=1q2w3E*;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true" |
|||
}, |
|||
"Redis": { |
|||
"Configuration": "localhost,password=mypassword,defaultdatabase=1" |
|||
}, |
|||
"Jwt": { |
|||
"Audience": "Lion.AbpPro.BasicManagement", |
|||
"SecurityKey": "dzehzRz9a8asdfasfdadfasdfasdfafsdadfasbasdf=", |
|||
"Issuer": "Lion.AbpPro", |
|||
"ExpirationTime": 30 |
|||
} |
|||
} |
|||
@ -0,0 +1,43 @@ |
|||
namespace Lion.AbpPro.BasicManagement.AuditLogs |
|||
{ |
|||
public class GetAuditLogPageListOutput |
|||
{ |
|||
public string ApplicationName { get; set; } |
|||
|
|||
public Guid? UserId { get; set; } |
|||
|
|||
public string UserName { get; set; } |
|||
|
|||
public Guid? TenantId { get; set; } |
|||
|
|||
public string TenantName { get; set; } |
|||
|
|||
public Guid? ImpersonatorUserId { get; set; } |
|||
|
|||
public Guid? ImpersonatorTenantId { get; set; } |
|||
|
|||
public DateTime ExecutionTime { get; set; } |
|||
|
|||
public int ExecutionDuration { get; set; } |
|||
|
|||
public string ClientIpAddress { get; set; } |
|||
|
|||
public string ClientName { get; set; } |
|||
|
|||
public string ClientId { get; set; } |
|||
|
|||
public string CorrelationId { get; set; } |
|||
|
|||
public string BrowserInfo { get; set; } |
|||
|
|||
public string HttpMethod { get; set; } |
|||
|
|||
public string Url { get; set; } |
|||
|
|||
public string Exceptions { get; set; } |
|||
|
|||
public string Comments { get; set; } |
|||
|
|||
public int? HttpStatusCode { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
namespace Lion.AbpPro.BasicManagement.AuditLogs |
|||
{ |
|||
public interface IAuditLogAppService : IApplicationService |
|||
{ |
|||
/// <summary>
|
|||
/// 分页查询审计日志
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
Task<PagedResultDto<GetAuditLogPageListOutput>> GetListAsync(PagingAuditLogListInput input); |
|||
} |
|||
} |
|||
@ -0,0 +1,67 @@ |
|||
using System.Net; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.AuditLogs |
|||
{ |
|||
public class PagingAuditLogListInput : PagingBase |
|||
{ |
|||
/// <summary>
|
|||
/// 排序
|
|||
/// </summary>
|
|||
public string Sorting { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 开始时间
|
|||
/// </summary>
|
|||
public DateTime? StartTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 结束时间
|
|||
/// </summary>
|
|||
public DateTime? EndTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 请求方法
|
|||
/// </summary>
|
|||
public string HttpMethod { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 请求地址
|
|||
/// </summary>
|
|||
public string Url { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 用户名
|
|||
/// </summary>
|
|||
public string UserName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 应用程序名称
|
|||
/// </summary>
|
|||
public string ApplicationName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// RequestId
|
|||
/// </summary>
|
|||
public string CorrelationId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 最大执行时间
|
|||
/// </summary>
|
|||
public int? MaxExecutionDuration { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 最小执行时间
|
|||
/// </summary>
|
|||
public int? MinExecutionDuration { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 是否有异常
|
|||
/// </summary>
|
|||
public bool? HasException { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// http 状态码
|
|||
/// </summary>
|
|||
public HttpStatusCode? HttpStatusCode { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
using Volo.Abp.Account; |
|||
using Volo.Abp.Application; |
|||
using Volo.Abp.Modularity; |
|||
using Volo.Abp.Authorization; |
|||
using Volo.Abp.FeatureManagement; |
|||
using Volo.Abp.Identity; |
|||
using Volo.Abp.SettingManagement; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement; |
|||
|
|||
[DependsOn( |
|||
typeof(BasicManagementDomainSharedModule), |
|||
typeof(AbpDddApplicationContractsModule), |
|||
typeof(AbpAuthorizationModule), |
|||
typeof(AbpAccountApplicationContractsModule), |
|||
typeof(AbpFeatureManagementApplicationContractsModule), |
|||
typeof(AbpIdentityApplicationContractsModule), |
|||
typeof(AbpPermissionManagementApplicationContractsModule), |
|||
typeof(AbpSettingManagementApplicationContractsModule), |
|||
typeof(AbpTenantManagementApplicationContractsModule) |
|||
)] |
|||
public class BasicManagementApplicationContractsModule : AbpModule |
|||
{ |
|||
|
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
namespace Lion.AbpPro.BasicManagement; |
|||
|
|||
public class BasicManagementRemoteServiceConsts |
|||
{ |
|||
public const string RemoteServiceName = "BasicManagement"; |
|||
|
|||
public const string ModuleName = "basicManagement"; |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
namespace Lion.AbpPro.BasicManagement.ConfigurationOptions |
|||
{ |
|||
public class JwtOptions |
|||
{ |
|||
/// <summary>
|
|||
/// 过期时间 单位小时
|
|||
/// </summary>
|
|||
public int ExpirationTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// Audience
|
|||
/// </summary>
|
|||
public string Audience { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 密钥
|
|||
/// </summary>
|
|||
public string SecurityKey { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// Issuer
|
|||
/// </summary>
|
|||
public string Issuer { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,3 @@ |
|||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|||
</Weavers> |
|||
@ -0,0 +1,30 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|||
<xs:element name="Weavers"> |
|||
<xs:complexType> |
|||
<xs:all> |
|||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|||
<xs:complexType> |
|||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|||
</xs:complexType> |
|||
</xs:element> |
|||
</xs:all> |
|||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|||
<xs:annotation> |
|||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|||
<xs:annotation> |
|||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|||
<xs:annotation> |
|||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
</xs:complexType> |
|||
</xs:element> |
|||
</xs:schema> |
|||
@ -0,0 +1,11 @@ |
|||
// Global using directives
|
|||
|
|||
global using System.ComponentModel.DataAnnotations; |
|||
global using Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
global using Lion.AbpPro.BasicManagement.Tenants.Dtos; |
|||
global using Lion.AbpPro.Extension.Customs.Dtos; |
|||
global using Volo.Abp.Application.Dtos; |
|||
global using Volo.Abp.Application.Services; |
|||
global using Volo.Abp.AspNetCore.Mvc.MultiTenancy; |
|||
global using Volo.Abp.PermissionManagement; |
|||
global using Volo.Abp.TenantManagement; |
|||
@ -0,0 +1,22 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk"> |
|||
<PropertyGroup> |
|||
<TargetFramework>net6.0</TargetFramework> |
|||
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.Contracts" /> |
|||
<PackageReference Include="Volo.Abp.Ddd.Application.Contracts" /> |
|||
<PackageReference Include="Volo.Abp.Authorization" /> |
|||
<PackageReference Include="Volo.Abp.Account.Application.Contracts" /> |
|||
<PackageReference Include="Volo.Abp.Identity.Application.Contracts" /> |
|||
<PackageReference Include="Volo.Abp.PermissionManagement.Application.Contracts" /> |
|||
<PackageReference Include="Volo.Abp.TenantManagement.Application.Contracts" /> |
|||
<PackageReference Include="Volo.Abp.FeatureManagement.Application.Contracts" /> |
|||
<PackageReference Include="Volo.Abp.SettingManagement.Application.Contracts" /> |
|||
<PackageReference Include="Magicodes.IE.Excel.AspNetCore" /> |
|||
<ProjectReference Include="..\..\..\..\frameworks\Extensions\src\Lion.AbpPro.Extension\Lion.AbpPro.Extension.csproj" /> |
|||
<ProjectReference Include="..\Lion.AbpPro.BasicManagement.Domain.Shared\Lion.AbpPro.BasicManagement.Domain.Shared.csproj" /> |
|||
</ItemGroup> |
|||
|
|||
</Project> |
|||
@ -0,0 +1,8 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
|
|||
public class AddRoleToOrganizationUnitInput |
|||
{ |
|||
public List<Guid> RoleId { get; set; } |
|||
|
|||
public Guid OrganizationUnitId { get; set; } |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
|
|||
public class AddUserToOrganizationUnitInput |
|||
{ |
|||
public List<Guid> UserId { get; set; } |
|||
|
|||
public Guid OrganizationUnitId { get; set; } |
|||
} |
|||
@ -0,0 +1,9 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
|
|||
public class CreateOrganizationUnitInput |
|||
{ |
|||
[Required] |
|||
public string DisplayName { get; set; } |
|||
|
|||
public Guid? ParentId { get; set; } |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
|
|||
public class GetOrganizationUnitRoleInput : PagingBase |
|||
{ |
|||
public Guid OrganizationUnitId { get; set; } |
|||
|
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
|
|||
public class GetOrganizationUnitRoleOutput |
|||
{ |
|||
public Guid Id { get; set; } |
|||
|
|||
public string Name { get; set; } |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
|
|||
public class GetOrganizationUnitUserInput : PagingBase |
|||
{ |
|||
public Guid OrganizationUnitId { get; set; } |
|||
|
|||
public string Filter { get; set; } |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
|
|||
public class GetOrganizationUnitUserOutput |
|||
{ |
|||
public Guid Id { get; set; } |
|||
|
|||
public string UserName { get; set; } |
|||
|
|||
public string Email { get; set; } |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
|
|||
public class GetUnAddRoleInput : PagingBase |
|||
{ |
|||
public Guid OrganizationUnitId { get; set; } |
|||
|
|||
public string Filter { get; set; } |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
|
|||
public class GetUnAddRoleOutput |
|||
{ |
|||
public Guid Id { get; set; } |
|||
|
|||
public string Name { get; set; } |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
|
|||
public class GetUnAddUserInput : PagingBase |
|||
{ |
|||
public Guid OrganizationUnitId { get; set; } |
|||
|
|||
public string Filter { get; set; } |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
|
|||
public class GetUnAddUserOutput |
|||
{ |
|||
public Guid Id { get; set; } |
|||
|
|||
public string UserName { get; set; } |
|||
|
|||
public string Email { get; set; } |
|||
} |
|||
@ -0,0 +1,14 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
|
|||
public class OrganizationUnitDto |
|||
{ |
|||
public Guid Id { get; set; } |
|||
|
|||
public Guid? TenantId { get; set; } |
|||
|
|||
public string Code { get; set; } |
|||
|
|||
public string DisplayName { get; set; } |
|||
|
|||
public Guid? ParentId { get; set; } |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
|
|||
public class RemoveRoleToOrganizationUnitInput |
|||
{ |
|||
public Guid RoleId { get; set; } |
|||
|
|||
public Guid OrganizationUnitId { get; set; } |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
|
|||
public class RemoveUserToOrganizationUnitInput |
|||
{ |
|||
public Guid UserId { get; set; } |
|||
|
|||
public Guid OrganizationUnitId { get; set; } |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
|
|||
public class TreeOutput |
|||
{ |
|||
public string Title { get; set; } |
|||
|
|||
public Guid Key { get; set; } |
|||
|
|||
public List<TreeOutput> Children { get; set; } |
|||
} |
|||
@ -0,0 +1,9 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
|
|||
public class UpdateOrganizationUnitInput |
|||
{ |
|||
[Required] |
|||
public string DisplayName { get; set; } |
|||
|
|||
public Guid Id { get; set; } |
|||
} |
|||
@ -0,0 +1,66 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits; |
|||
|
|||
public interface IOrganizationUnitAppService : IApplicationService |
|||
{ |
|||
/// <summary>
|
|||
/// 获取组织机构树结构
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<List<TreeOutput>> GetTreeAsync(); |
|||
|
|||
/// <summary>
|
|||
/// 创建组织机构
|
|||
/// </summary>
|
|||
Task CreateAsync(CreateOrganizationUnitInput input); |
|||
|
|||
/// <summary>
|
|||
/// 删除组织机构
|
|||
/// </summary>
|
|||
Task DeleteAsync(IdInput input); |
|||
|
|||
/// <summary>
|
|||
/// 编辑组织机构
|
|||
/// </summary>
|
|||
Task UpdateAsync(UpdateOrganizationUnitInput input); |
|||
|
|||
/// <summary>
|
|||
/// 向组织机构添加角色
|
|||
/// </summary>
|
|||
Task AddRoleToOrganizationUnitAsync(AddRoleToOrganizationUnitInput input); |
|||
|
|||
/// <summary>
|
|||
/// 向组织机构删除角色
|
|||
/// </summary>
|
|||
Task RemoveRoleFromOrganizationUnitAsync(RemoveRoleToOrganizationUnitInput input); |
|||
|
|||
/// <summary>
|
|||
/// 向组织机构添加用户
|
|||
/// </summary>
|
|||
Task AddUserToOrganizationUnitAsync(AddUserToOrganizationUnitInput input); |
|||
|
|||
/// <summary>
|
|||
/// 向组织机构删除用户
|
|||
/// </summary>
|
|||
Task RemoveUserFromOrganizationUnitAsync(RemoveUserToOrganizationUnitInput input); |
|||
|
|||
/// <summary>
|
|||
/// 分页获取组织机构下用户
|
|||
/// </summary>
|
|||
Task<PagedResultDto<GetOrganizationUnitUserOutput>> GetUsersAsync(GetOrganizationUnitUserInput input); |
|||
|
|||
|
|||
/// <summary>
|
|||
/// 分页获取组织机构下角色
|
|||
/// </summary>
|
|||
Task<PagedResultDto<GetOrganizationUnitRoleOutput>> GetRolesAsync(GetOrganizationUnitRoleInput input); |
|||
|
|||
/// <summary>
|
|||
/// 获取不在组织机构的用户
|
|||
/// </summary>
|
|||
Task<PagedResultDto<GetUnAddUserOutput>> GetUnAddUsersAsync(GetUnAddUserInput input); |
|||
|
|||
/// <summary>
|
|||
/// 获取不在组织机构的角色
|
|||
/// </summary>
|
|||
Task<PagedResultDto<GetUnAddRoleOutput>> GetUnAddRolessAsync(GetUnAddRoleInput input); |
|||
} |
|||
@ -0,0 +1,44 @@ |
|||
using Lion.AbpPro.BasicManagement.Localization; |
|||
using Volo.Abp.Authorization.Permissions; |
|||
using Volo.Abp.Identity; |
|||
using Volo.Abp.Localization; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Permissions; |
|||
|
|||
public class BasicManagementPermissionDefinitionProvider : PermissionDefinitionProvider |
|||
{ |
|||
public override void Define(IPermissionDefinitionContext context) |
|||
{ |
|||
var abpIdentityGroup = context.GetGroup(IdentityPermissions.GroupName); |
|||
var userManagement = abpIdentityGroup.GetPermissionOrNull(IdentityPermissions.Users.Default); |
|||
userManagement.AddChild(BasicManagementPermissions.SystemManagement.UserEnable, L("Permission:Enable")); |
|||
userManagement.AddChild(BasicManagementPermissions.SystemManagement.UserExport, L("Permission:Export")); |
|||
|
|||
var auditManagement = |
|||
abpIdentityGroup.AddPermission(BasicManagementPermissions.SystemManagement.AuditLog, L("Permission:AuditLogManagement")); |
|||
var esManagement = abpIdentityGroup.AddPermission(BasicManagementPermissions.SystemManagement.ES, L("Permission:ESManagement")); |
|||
var settingManagement = abpIdentityGroup.AddPermission(BasicManagementPermissions.SystemManagement.Setting, L("Permission:SettingManagement")); |
|||
var organizationUnitManagement = abpIdentityGroup.AddPermission(BasicManagementPermissions.SystemManagement.OrganizationUnit, L("Permission:OrganizationUnitManagement")); |
|||
organizationUnitManagement.AddChild |
|||
( |
|||
BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Create, |
|||
L("Permission:Create") |
|||
); |
|||
organizationUnitManagement.AddChild |
|||
( |
|||
BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Update, |
|||
L("Permission:Update") |
|||
); |
|||
organizationUnitManagement.AddChild |
|||
( |
|||
BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Delete, |
|||
L("Permission:Delete") |
|||
); |
|||
|
|||
} |
|||
|
|||
private static LocalizableString L(string name) |
|||
{ |
|||
return LocalizableString.Create<BasicManagementResource>(name); |
|||
} |
|||
} |
|||
@ -0,0 +1,32 @@ |
|||
using Volo.Abp.Reflection; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Permissions; |
|||
|
|||
public class BasicManagementPermissions |
|||
{ |
|||
/// <summary>
|
|||
/// 系统管理扩展权限
|
|||
/// </summary>
|
|||
public static class SystemManagement |
|||
{ |
|||
public const string Default = "AbpIdentity"; |
|||
public const string UserEnable = Default + ".Users.Enable"; |
|||
public const string UserExport = Default + ".Users.Export"; |
|||
public const string AuditLog = Default + ".AuditLog"; |
|||
public const string ES = Default + ".ES"; |
|||
public const string Setting = Default + ".Setting"; |
|||
public const string OrganizationUnit = Default + ".OrganizationUnitManagement"; |
|||
public static class OrganizationUnitManagement |
|||
{ |
|||
public const string Default = SystemManagement.Default + ".OrganizationUnitManagement"; |
|||
public const string Create = Default + ".Create"; |
|||
public const string Update = Default + ".Update"; |
|||
public const string Delete = Default + ".Delete"; |
|||
} |
|||
} |
|||
|
|||
public static string[] GetAll() |
|||
{ |
|||
return ReflectionHelper.GetPublicConstantsRecursively(typeof(BasicManagementPermissions)); |
|||
} |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Roles.Dtos |
|||
{ |
|||
public class GetPermissionInput |
|||
{ |
|||
[Required] |
|||
public string ProviderName { get; set; } |
|||
[Required] |
|||
public string ProviderKey { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Roles.Dtos |
|||
{ |
|||
public class PagingRoleListInput : PagingBase |
|||
{ |
|||
public string Filter { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Roles.Dtos |
|||
{ |
|||
public class PermissionOutput { |
|||
public List<string> Grants { get; set; } = new List<string>(); |
|||
|
|||
public List<string> AllGrants { get; set; } = new List<string>(); |
|||
|
|||
public List<PermissionTreeDto> Permissions { get; set; } = new List<PermissionTreeDto>(); |
|||
} |
|||
|
|||
public class PermissionTreeDto |
|||
{ |
|||
public string Title { get; set; } |
|||
|
|||
public string Key { get; set; } |
|||
|
|||
public List<PermissionTreeDto> Children { get; set; }=new List<PermissionTreeDto>(); |
|||
} |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
using Volo.Abp.Identity; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Roles.Dtos |
|||
{ |
|||
public class UpdateRoleInput |
|||
{ |
|||
public Guid RoleId { get; set; } |
|||
|
|||
public IdentityRoleUpdateDto RoleInfo { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,13 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Roles.Dtos |
|||
{ |
|||
public class UpdateRolePermissionsInput |
|||
{ |
|||
[Required] |
|||
public string ProviderName { get; set; } |
|||
|
|||
[Required] |
|||
public string ProviderKey { get; set; } |
|||
|
|||
public UpdatePermissionsDto UpdatePermissionsDto { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,18 @@ |
|||
using Lion.AbpPro.BasicManagement.Roles.Dtos; |
|||
using Volo.Abp.Identity; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Roles |
|||
{ |
|||
public interface IRoleAppService : IApplicationService |
|||
{ |
|||
Task<ListResultDto<IdentityRoleDto>> AllListAsync(); |
|||
|
|||
Task<PagedResultDto<IdentityRoleDto>> ListAsync(PagingRoleListInput input); |
|||
|
|||
Task<IdentityRoleDto> CreateAsync(IdentityRoleCreateDto input); |
|||
|
|||
Task<IdentityRoleDto> UpdateAsync(UpdateRoleInput input); |
|||
|
|||
Task DeleteAsync(IdInput input); |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
using Lion.AbpPro.BasicManagement.Roles.Dtos; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Roles |
|||
{ |
|||
public interface IRolePermissionAppService : IApplicationService |
|||
{ |
|||
|
|||
Task<PermissionOutput> GetPermissionAsync(GetPermissionInput input); |
|||
|
|||
Task UpdatePermissionAsync(UpdateRolePermissionsInput input); |
|||
} |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Roles; |
|||
|
|||
public class PermissionOptions |
|||
{ |
|||
/// <summary>
|
|||
/// 需要排除的权限
|
|||
/// </summary>
|
|||
public List<string> Excludes { get; } |
|||
|
|||
public PermissionOptions() |
|||
{ |
|||
Excludes = new List<string>(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 权限是否排除
|
|||
/// </summary>
|
|||
/// <param name="permission">权限名称</param>
|
|||
/// <returns>bool</returns>
|
|||
public bool IsExclude(string permission) |
|||
{ |
|||
if (permission.IsNullOrWhiteSpace()) return false; |
|||
return Excludes.Any(e => e.ToLower() == permission.ToLower()); |
|||
} |
|||
} |
|||
@ -0,0 +1,59 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Settings.Dtos |
|||
{ |
|||
public class SettingOutput |
|||
{ |
|||
/// <summary>
|
|||
/// 分组
|
|||
/// </summary>
|
|||
public string Group { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 分组显示名称
|
|||
/// </summary>
|
|||
public string GroupDisplayName { get; set; } |
|||
|
|||
public List<SettingItemOutput> SettingItemOutput { get; set; } |
|||
|
|||
public SettingOutput() |
|||
{ |
|||
SettingItemOutput = new List<SettingItemOutput>(); |
|||
} |
|||
} |
|||
|
|||
public class SettingItemOutput |
|||
{ |
|||
public SettingItemOutput(string name, string displayName, string value, string type,string description) |
|||
{ |
|||
Name = name; |
|||
DisplayName = displayName; |
|||
Value = value; |
|||
Type = type ?? "Text"; |
|||
Description = description; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 名称
|
|||
/// </summary>
|
|||
public string Name { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 显示名称
|
|||
/// </summary>
|
|||
public string DisplayName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 描述
|
|||
/// </summary>
|
|||
public string Description { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 值
|
|||
/// </summary>
|
|||
public string Value { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 前端控件类型
|
|||
/// </summary>
|
|||
public string Type { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Settings.Dtos |
|||
{ |
|||
public class UpdateSettingInput |
|||
{ |
|||
public Dictionary<string, string> Values { get; set; } |
|||
|
|||
public UpdateSettingInput() |
|||
{ |
|||
Values = new Dictionary<string, string>(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
using Lion.AbpPro.BasicManagement.Settings.Dtos; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Settings |
|||
{ |
|||
public interface ISettingAppService : IApplicationService |
|||
{ |
|||
/// <summary>
|
|||
/// 获取setting信息
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<List<SettingOutput>> GetAsync(); |
|||
|
|||
/// <summary>
|
|||
/// 更新setting
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task UpdateAsync(UpdateSettingInput input); |
|||
} |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Tenants.Dtos |
|||
{ |
|||
public class FindTenantByNameInput |
|||
{ |
|||
public string Name { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Tenants.Dtos |
|||
{ |
|||
public class PagingTenantInput : PagingBase |
|||
{ |
|||
public string Filter { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Tenants.Dtos |
|||
{ |
|||
public class UpdateConnectionStringInput |
|||
{ |
|||
public Guid Id { get; set; } |
|||
[Required(ErrorMessage = "连接字符串不能为空")] public string ConnectionString { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,9 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Tenants.Dtos |
|||
{ |
|||
public class UpdateTenantInput |
|||
{ |
|||
public Guid Id { get; set; } |
|||
|
|||
[Required(ErrorMessage = "租户名称不能为空")] public string Name { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,21 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Tenants |
|||
{ |
|||
public interface IVoloTenantAppService : IApplicationService |
|||
{ |
|||
Task<FindTenantResultDto> FindTenantByNameAsync(FindTenantByNameInput input); |
|||
|
|||
Task<PagedResultDto<TenantDto>> ListAsync(PagingTenantInput input); |
|||
|
|||
Task<TenantDto> CreateAsync(TenantCreateDto input); |
|||
|
|||
Task<TenantDto> UpdateAsync(UpdateTenantInput input); |
|||
|
|||
Task DeleteAsync(IdInput input); |
|||
|
|||
Task<string> GetDefaultConnectionStringAsync(IdInput input); |
|||
|
|||
Task UpdateDefaultConnectionStringAsync(UpdateConnectionStringInput input); |
|||
|
|||
Task DeleteDefaultConnectionStringAsync(IdInput input); |
|||
} |
|||
} |
|||
@ -0,0 +1,32 @@ |
|||
using Magicodes.ExporterAndImporter.Core; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Users.Dtos |
|||
{ |
|||
public class ExportIdentityUserOutput |
|||
{ |
|||
[ExporterHeader(DisplayName = "用户名")] |
|||
public string UserName { get; set; } |
|||
|
|||
[ExporterHeader(DisplayName = "真实名称")] |
|||
public string Name { get; set; } |
|||
|
|||
[ExporterHeader(DisplayName = "邮箱")] |
|||
public string Email { get; set; } |
|||
|
|||
[ExporterHeader(DisplayName = "手机号码")] |
|||
public string PhoneNumber { get; set; } |
|||
|
|||
[ExporterHeader(IsIgnore = true)] |
|||
public bool IsActive { get; set; } |
|||
|
|||
|
|||
[ExporterHeader(DisplayName = "状态")] |
|||
public string Status => IsActive ? "启用" : "禁用"; |
|||
|
|||
[ExporterHeader(IsIgnore = true)] |
|||
public DateTime CreationTime { get; set; } |
|||
|
|||
[ExporterHeader(DisplayName = "创建时间")] |
|||
public string CreationTimeFormat => CreationTime.ToString("yyyy-MM-dd hh:mm:ss"); |
|||
} |
|||
} |
|||
@ -0,0 +1,24 @@ |
|||
using Newtonsoft.Json; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Users.Dtos; |
|||
|
|||
public class GithubAccessTokenResponse |
|||
{ |
|||
/// <summary>
|
|||
/// access_token
|
|||
/// </summary>
|
|||
[JsonProperty("access_token")] |
|||
public string Access_token { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// scope
|
|||
/// </summary>
|
|||
[JsonProperty("scope")] |
|||
public string Scope { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// token_type
|
|||
/// </summary>
|
|||
[JsonProperty("token_type")] |
|||
public string TokenType { get; set; } |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Users.Dtos |
|||
{ |
|||
public class LockUserInput |
|||
{ |
|||
[Required] |
|||
public Guid UserId { get; set; } |
|||
|
|||
[Required] |
|||
public bool Locked { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,99 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Users.Dtos; |
|||
|
|||
public class LoginGithubResponse |
|||
{ |
|||
public string login { get; set; } |
|||
|
|||
|
|||
public int id { get; set; } |
|||
|
|||
|
|||
public string node_id { get; set; } |
|||
|
|||
|
|||
public string avatar_url { get; set; } |
|||
|
|||
|
|||
public string gravatar_id { get; set; } |
|||
|
|||
|
|||
public string url { get; set; } |
|||
|
|||
|
|||
public string html_url { get; set; } |
|||
|
|||
|
|||
public string followers_url { get; set; } |
|||
|
|||
|
|||
public string following_url { get; set; } |
|||
|
|||
|
|||
public string gists_url { get; set; } |
|||
|
|||
|
|||
public string starred_url { get; set; } |
|||
|
|||
|
|||
public string subscriptions_url { get; set; } |
|||
|
|||
|
|||
public string organizations_url { get; set; } |
|||
|
|||
|
|||
public string repos_url { get; set; } |
|||
|
|||
|
|||
public string events_url { get; set; } |
|||
|
|||
|
|||
public string received_events_url { get; set; } |
|||
|
|||
|
|||
public string type { get; set; } |
|||
|
|||
|
|||
public string site_admin { get; set; } |
|||
|
|||
|
|||
public string name { get; set; } |
|||
|
|||
|
|||
public string company { get; set; } |
|||
|
|||
|
|||
public string blog { get; set; } |
|||
|
|||
|
|||
public string location { get; set; } |
|||
|
|||
|
|||
public string email { get; set; } |
|||
|
|||
|
|||
public string hireable { get; set; } |
|||
|
|||
|
|||
public string bio { get; set; } |
|||
|
|||
|
|||
public string twitter_username { get; set; } |
|||
|
|||
|
|||
public int public_repos { get; set; } |
|||
|
|||
|
|||
public int public_gists { get; set; } |
|||
|
|||
|
|||
public int followers { get; set; } |
|||
|
|||
|
|||
public int following { get; set; } |
|||
|
|||
|
|||
public string created_at { get; set; } |
|||
|
|||
|
|||
public string updated_at { get; set; } |
|||
} |
|||
@ -0,0 +1,35 @@ |
|||
using Volo.Abp.Auditing; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Users.Dtos |
|||
{ |
|||
/// <summary>
|
|||
/// 登录
|
|||
/// </summary>
|
|||
public class LoginInput : IValidatableObject |
|||
{ |
|||
/// <summary>
|
|||
/// 用户名或者邮箱
|
|||
/// </summary>
|
|||
public string Name { get; set; } |
|||
|
|||
|
|||
/// <summary>
|
|||
/// 密码
|
|||
/// </summary>
|
|||
[DisableAuditing] |
|||
public string Password { get; set; } |
|||
|
|||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) |
|||
{ |
|||
if (Name.IsNullOrWhiteSpace()) |
|||
{ |
|||
yield return new ValidationResult("Email can not be null", new[] { "Email" }); |
|||
} |
|||
|
|||
if (Password.IsNullOrWhiteSpace()) |
|||
{ |
|||
yield return new ValidationResult("Password can not be null", new[] { "Password" }); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Users.Dtos |
|||
{ |
|||
public class LoginOutput |
|||
{ |
|||
public Guid Id { get; set; } |
|||
|
|||
public string Name { get; set; } |
|||
|
|||
public string UserName { get; set; } |
|||
|
|||
public string Token { get; set; } |
|||
|
|||
public List<string> Roles { get; set; } = new List<string>(); |
|||
} |
|||
} |
|||
@ -0,0 +1,21 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Users.Dtos |
|||
{ |
|||
public class LoginStsResponse |
|||
{ |
|||
public string name { get; set; } |
|||
|
|||
public string preferred_username { get; set; } |
|||
|
|||
public string family_name { get; set; } |
|||
|
|||
public string email { get; set; } |
|||
|
|||
public string given_name { get; set; } |
|||
|
|||
public string avatar { get; set; } |
|||
|
|||
public string sub { get; set; } |
|||
|
|||
public Guid? tenantId { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Users.Dtos |
|||
{ |
|||
public class PagingUserListInput : PagingBase |
|||
{ |
|||
/// <summary>
|
|||
/// 关键字
|
|||
/// </summary>
|
|||
public string Filter { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
using Volo.Abp.Identity; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Users.Dtos |
|||
{ |
|||
public class UpdateUserInput |
|||
{ |
|||
public Guid UserId { get; set; } |
|||
|
|||
public IdentityUserUpdateDto UserInfo { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
using Lion.AbpPro.BasicManagement.Users.Dtos; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Users |
|||
{ |
|||
public interface IAccountAppService: IApplicationService |
|||
{ |
|||
/// <summary>
|
|||
/// 用户名密码登录
|
|||
/// </summary>
|
|||
Task<LoginOutput> LoginAsync(LoginInput input); |
|||
} |
|||
} |
|||
@ -0,0 +1,51 @@ |
|||
using Lion.AbpPro.BasicManagement.Users.Dtos; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using Volo.Abp.Account; |
|||
using Volo.Abp.Identity; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Users |
|||
{ |
|||
public interface IUserAppService : IApplicationService |
|||
{ |
|||
/// <summary>
|
|||
/// 分页查询用户
|
|||
/// </summary>
|
|||
Task<PagedResultDto<IdentityUserDto>> ListAsync(PagingUserListInput input); |
|||
|
|||
/// <summary>
|
|||
/// 用户导出列表
|
|||
/// </summary>
|
|||
Task<ActionResult> ExportAsync(PagingUserListInput input); |
|||
|
|||
/// <summary>
|
|||
/// 新增用户
|
|||
/// </summary>
|
|||
Task<IdentityUserDto> CreateAsync(IdentityUserCreateDto input); |
|||
|
|||
/// <summary>
|
|||
/// 更新用户
|
|||
/// </summary>
|
|||
Task<IdentityUserDto> UpdateAsync(UpdateUserInput input); |
|||
|
|||
/// <summary>
|
|||
/// 删除用户
|
|||
/// </summary>
|
|||
Task DeleteAsync(IdInput input); |
|||
|
|||
|
|||
/// <summary>
|
|||
/// 获取用户角色信息
|
|||
/// </summary>
|
|||
Task<ListResultDto<IdentityRoleDto>> GetRoleByUserId(IdInput input); |
|||
|
|||
/// <summary>
|
|||
/// 修改密码
|
|||
/// </summary>
|
|||
Task<bool> ChangePasswordAsync(ChangePasswordInput input); |
|||
|
|||
/// <summary>
|
|||
/// 锁定用户
|
|||
/// </summary>
|
|||
Task LockAsync(LockUserInput input); |
|||
} |
|||
} |
|||
@ -0,0 +1,339 @@ |
|||
namespace Lion.AbpPro.BasicManagement.ApplicationConfigurations; |
|||
|
|||
[Dependency(ReplaceServices = true)] |
|||
public class LionAbpApplicationConfigurationAppService : ApplicationService, IAbpApplicationConfigurationAppService |
|||
{ |
|||
private readonly AbpLocalizationOptions _localizationOptions; |
|||
private readonly AbpMultiTenancyOptions _multiTenancyOptions; |
|||
private readonly IServiceProvider _serviceProvider; |
|||
private readonly IAbpAuthorizationPolicyProvider _abpAuthorizationPolicyProvider; |
|||
private readonly IPermissionDefinitionManager _permissionDefinitionManager; |
|||
private readonly DefaultAuthorizationPolicyProvider _defaultAuthorizationPolicyProvider; |
|||
private readonly IPermissionChecker _permissionChecker; |
|||
private readonly IAuthorizationService _authorizationService; |
|||
private readonly ICurrentUser _currentUser; |
|||
private readonly ISettingProvider _settingProvider; |
|||
private readonly ISettingDefinitionManager _settingDefinitionManager; |
|||
private readonly IFeatureDefinitionManager _featureDefinitionManager; |
|||
private readonly ILanguageProvider _languageProvider; |
|||
private readonly ITimezoneProvider _timezoneProvider; |
|||
private readonly AbpClockOptions _abpClockOptions; |
|||
private readonly ICachedObjectExtensionsDtoService _cachedObjectExtensionsDtoService; |
|||
|
|||
public LionAbpApplicationConfigurationAppService( |
|||
IOptions<AbpLocalizationOptions> localizationOptions, |
|||
IOptions<AbpMultiTenancyOptions> multiTenancyOptions, |
|||
IServiceProvider serviceProvider, |
|||
IAbpAuthorizationPolicyProvider abpAuthorizationPolicyProvider, |
|||
IPermissionDefinitionManager permissionDefinitionManager, |
|||
DefaultAuthorizationPolicyProvider defaultAuthorizationPolicyProvider, |
|||
IPermissionChecker permissionChecker, |
|||
IAuthorizationService authorizationService, |
|||
ICurrentUser currentUser, |
|||
ISettingProvider settingProvider, |
|||
ISettingDefinitionManager settingDefinitionManager, |
|||
IFeatureDefinitionManager featureDefinitionManager, |
|||
ILanguageProvider languageProvider, |
|||
ITimezoneProvider timezoneProvider, |
|||
IOptions<AbpClockOptions> abpClockOptions, |
|||
ICachedObjectExtensionsDtoService cachedObjectExtensionsDtoService) |
|||
{ |
|||
_serviceProvider = serviceProvider; |
|||
_abpAuthorizationPolicyProvider = abpAuthorizationPolicyProvider; |
|||
_permissionDefinitionManager = permissionDefinitionManager; |
|||
_defaultAuthorizationPolicyProvider = defaultAuthorizationPolicyProvider; |
|||
_permissionChecker = permissionChecker; |
|||
_authorizationService = authorizationService; |
|||
_currentUser = currentUser; |
|||
_settingProvider = settingProvider; |
|||
_settingDefinitionManager = settingDefinitionManager; |
|||
_featureDefinitionManager = featureDefinitionManager; |
|||
_languageProvider = languageProvider; |
|||
_timezoneProvider = timezoneProvider; |
|||
_abpClockOptions = abpClockOptions.Value; |
|||
_cachedObjectExtensionsDtoService = cachedObjectExtensionsDtoService; |
|||
_localizationOptions = localizationOptions.Value; |
|||
_multiTenancyOptions = multiTenancyOptions.Value; |
|||
} |
|||
|
|||
public virtual async Task<ApplicationConfigurationDto> GetAsync() |
|||
{ |
|||
//TODO: Optimize & cache..?
|
|||
|
|||
Logger.LogDebug("Executing AbpApplicationConfigurationAppService.GetAsync()..."); |
|||
|
|||
var result = new ApplicationConfigurationDto |
|||
{ |
|||
Auth = await GetAuthConfigAsync(), |
|||
Features = await GetFeaturesConfigAsync(), |
|||
Localization = await GetLocalizationConfigAsync(), |
|||
CurrentUser = GetCurrentUser(), |
|||
Setting = await GetSettingConfigAsync(), |
|||
MultiTenancy = GetMultiTenancy(), |
|||
CurrentTenant = GetCurrentTenant(), |
|||
Timing = await GetTimingConfigAsync(), |
|||
Clock = GetClockConfig(), |
|||
ObjectExtensions = _cachedObjectExtensionsDtoService.Get() |
|||
}; |
|||
|
|||
Logger.LogDebug("Executed AbpApplicationConfigurationAppService.GetAsync()."); |
|||
|
|||
return result; |
|||
} |
|||
|
|||
protected virtual CurrentTenantDto GetCurrentTenant() |
|||
{ |
|||
return new CurrentTenantDto() |
|||
{ |
|||
Id = CurrentTenant.Id, |
|||
Name = CurrentTenant.Name, |
|||
IsAvailable = CurrentTenant.IsAvailable |
|||
}; |
|||
} |
|||
|
|||
protected virtual MultiTenancyInfoDto GetMultiTenancy() |
|||
{ |
|||
return new MultiTenancyInfoDto |
|||
{ |
|||
IsEnabled = _multiTenancyOptions.IsEnabled |
|||
}; |
|||
} |
|||
|
|||
protected virtual CurrentUserDto GetCurrentUser() |
|||
{ |
|||
return new CurrentUserDto |
|||
{ |
|||
IsAuthenticated = _currentUser.IsAuthenticated, |
|||
Id = _currentUser.Id, |
|||
TenantId = _currentUser.TenantId, |
|||
ImpersonatorUserId = _currentUser.FindImpersonatorUserId(), |
|||
ImpersonatorTenantId = _currentUser.FindImpersonatorTenantId(), |
|||
UserName = _currentUser.UserName, |
|||
SurName = _currentUser.SurName, |
|||
Name = _currentUser.Name, |
|||
Email = _currentUser.Email, |
|||
EmailVerified = _currentUser.EmailVerified, |
|||
PhoneNumber = _currentUser.PhoneNumber, |
|||
PhoneNumberVerified = _currentUser.PhoneNumberVerified, |
|||
Roles = _currentUser.Roles |
|||
}; |
|||
} |
|||
|
|||
protected virtual async Task<ApplicationAuthConfigurationDto> GetAuthConfigAsync() |
|||
{ |
|||
var authConfig = new ApplicationAuthConfigurationDto(); |
|||
|
|||
var policyNames = await _abpAuthorizationPolicyProvider.GetPoliciesNamesAsync(); |
|||
var abpPolicyNames = new List<string>(); |
|||
var otherPolicyNames = new List<string>(); |
|||
|
|||
foreach (var policyName in policyNames) |
|||
{ |
|||
if (await _defaultAuthorizationPolicyProvider.GetPolicyAsync(policyName) == null && _permissionDefinitionManager.GetOrNull(policyName) != null) |
|||
{ |
|||
abpPolicyNames.Add(policyName); |
|||
} |
|||
else |
|||
{ |
|||
otherPolicyNames.Add(policyName); |
|||
} |
|||
} |
|||
|
|||
foreach (var policyName in otherPolicyNames) |
|||
{ |
|||
authConfig.Policies[policyName] = true; |
|||
|
|||
if (await _authorizationService.IsGrantedAsync(policyName)) |
|||
{ |
|||
authConfig.GrantedPolicies[policyName] = true; |
|||
} |
|||
} |
|||
|
|||
var result = await _permissionChecker.IsGrantedAsync(abpPolicyNames.ToArray()); |
|||
foreach (var (key, value) in result.Result) |
|||
{ |
|||
authConfig.Policies[key] = true; |
|||
if (value == PermissionGrantResult.Granted) |
|||
{ |
|||
authConfig.GrantedPolicies[key] = true; |
|||
} |
|||
} |
|||
|
|||
var policies = BuildGrantedPolicies(authConfig.GrantedPolicies.Select(e => e.Key).ToList()); |
|||
foreach (var item in policies) |
|||
{ |
|||
if (authConfig.GrantedPolicies.Any(e => e.Key == item)) continue; |
|||
authConfig.GrantedPolicies.Add(item, true); |
|||
} |
|||
|
|||
return authConfig; |
|||
} |
|||
|
|||
private List<string> BuildGrantedPolicies(List<string> grantedPolicies) |
|||
{ |
|||
var result = new List<string>(); |
|||
foreach (var policy in grantedPolicies) |
|||
{ |
|||
result.AddRange(GetPolicy(policy)); |
|||
} |
|||
|
|||
return result.Distinct().ToList(); |
|||
} |
|||
|
|||
private List<string> GetPolicy(string policy) |
|||
{ |
|||
var result = new List<string>(); |
|||
var split = policy.Split('.', StringSplitOptions.RemoveEmptyEntries); |
|||
if (split.Length <= 0) return result; |
|||
var currentPolicy = string.Empty; |
|||
for (int i = 0; i < split.Length - 1; i++) |
|||
{ |
|||
if (i == 0) |
|||
{ |
|||
currentPolicy += split[i]; |
|||
} |
|||
else |
|||
{ |
|||
currentPolicy += "." + split[i]; |
|||
} |
|||
} |
|||
|
|||
if (!currentPolicy.IsNullOrWhiteSpace()) |
|||
{ |
|||
result.Add(currentPolicy); |
|||
result.AddRange(GetPolicy(currentPolicy)); |
|||
} |
|||
|
|||
return result; |
|||
} |
|||
|
|||
|
|||
protected virtual async Task<ApplicationLocalizationConfigurationDto> GetLocalizationConfigAsync() |
|||
{ |
|||
var localizationConfig = new ApplicationLocalizationConfigurationDto(); |
|||
|
|||
localizationConfig.Languages.AddRange(await _languageProvider.GetLanguagesAsync()); |
|||
|
|||
foreach (var resource in _localizationOptions.Resources.Values) |
|||
{ |
|||
var dictionary = new Dictionary<string, string>(); |
|||
|
|||
var localizer = _serviceProvider.GetRequiredService( |
|||
typeof(IStringLocalizer<>).MakeGenericType(resource.ResourceType) |
|||
) as IStringLocalizer; |
|||
|
|||
foreach (var localizedString in localizer.GetAllStrings()) |
|||
{ |
|||
dictionary[localizedString.Name] = localizedString.Value; |
|||
} |
|||
|
|||
localizationConfig.Values[resource.ResourceName] = dictionary; |
|||
} |
|||
|
|||
localizationConfig.CurrentCulture = GetCurrentCultureInfo(); |
|||
|
|||
if (_localizationOptions.DefaultResourceType != null) |
|||
{ |
|||
localizationConfig.DefaultResourceName = LocalizationResourceNameAttribute.GetName( |
|||
_localizationOptions.DefaultResourceType |
|||
); |
|||
} |
|||
|
|||
localizationConfig.LanguagesMap = _localizationOptions.LanguagesMap; |
|||
localizationConfig.LanguageFilesMap = _localizationOptions.LanguageFilesMap; |
|||
|
|||
return localizationConfig; |
|||
} |
|||
|
|||
private static CurrentCultureDto GetCurrentCultureInfo() |
|||
{ |
|||
return new CurrentCultureDto |
|||
{ |
|||
Name = CultureInfo.CurrentUICulture.Name, |
|||
DisplayName = CultureInfo.CurrentUICulture.DisplayName, |
|||
EnglishName = CultureInfo.CurrentUICulture.EnglishName, |
|||
NativeName = CultureInfo.CurrentUICulture.NativeName, |
|||
IsRightToLeft = CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft, |
|||
CultureName = CultureInfo.CurrentUICulture.TextInfo.CultureName, |
|||
TwoLetterIsoLanguageName = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName, |
|||
ThreeLetterIsoLanguageName = CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName, |
|||
DateTimeFormat = new DateTimeFormatDto |
|||
{ |
|||
CalendarAlgorithmType = |
|||
CultureInfo.CurrentUICulture.DateTimeFormat.Calendar.AlgorithmType.ToString(), |
|||
DateTimeFormatLong = CultureInfo.CurrentUICulture.DateTimeFormat.LongDatePattern, |
|||
ShortDatePattern = CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern, |
|||
FullDateTimePattern = CultureInfo.CurrentUICulture.DateTimeFormat.FullDateTimePattern, |
|||
DateSeparator = CultureInfo.CurrentUICulture.DateTimeFormat.DateSeparator, |
|||
ShortTimePattern = CultureInfo.CurrentUICulture.DateTimeFormat.ShortTimePattern, |
|||
LongTimePattern = CultureInfo.CurrentUICulture.DateTimeFormat.LongTimePattern, |
|||
} |
|||
}; |
|||
} |
|||
|
|||
private async Task<ApplicationSettingConfigurationDto> GetSettingConfigAsync() |
|||
{ |
|||
var result = new ApplicationSettingConfigurationDto |
|||
{ |
|||
Values = new Dictionary<string, string>() |
|||
}; |
|||
|
|||
var settingDefinitions = _settingDefinitionManager.GetAll().Where(x => x.IsVisibleToClients); |
|||
|
|||
var settingValues = await _settingProvider.GetAllAsync(settingDefinitions.Select(x => x.Name).ToArray()); |
|||
|
|||
foreach (var settingValue in settingValues) |
|||
{ |
|||
result.Values[settingValue.Name] = settingValue.Value; |
|||
} |
|||
|
|||
return result; |
|||
} |
|||
|
|||
protected virtual async Task<ApplicationFeatureConfigurationDto> GetFeaturesConfigAsync() |
|||
{ |
|||
var result = new ApplicationFeatureConfigurationDto(); |
|||
|
|||
foreach (var featureDefinition in _featureDefinitionManager.GetAll()) |
|||
{ |
|||
if (!featureDefinition.IsVisibleToClients) |
|||
{ |
|||
continue; |
|||
} |
|||
|
|||
result.Values[featureDefinition.Name] = await FeatureChecker.GetOrNullAsync(featureDefinition.Name); |
|||
} |
|||
|
|||
return result; |
|||
} |
|||
|
|||
protected virtual async Task<TimingDto> GetTimingConfigAsync() |
|||
{ |
|||
var windowsTimeZoneId = await _settingProvider.GetOrNullAsync(TimingSettingNames.TimeZone); |
|||
|
|||
return new TimingDto |
|||
{ |
|||
TimeZone = new Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone |
|||
{ |
|||
Windows = new WindowsTimeZone |
|||
{ |
|||
TimeZoneId = windowsTimeZoneId |
|||
}, |
|||
Iana = new IanaTimeZone |
|||
{ |
|||
TimeZoneName = windowsTimeZoneId.IsNullOrWhiteSpace() |
|||
? null |
|||
: _timezoneProvider.WindowsToIana(windowsTimeZoneId) |
|||
} |
|||
} |
|||
}; |
|||
} |
|||
|
|||
protected virtual ClockDto GetClockConfig() |
|||
{ |
|||
return new ClockDto |
|||
{ |
|||
Kind = Enum.GetName(typeof(DateTimeKind), _abpClockOptions.Kind) |
|||
}; |
|||
} |
|||
} |
|||
@ -0,0 +1,54 @@ |
|||
namespace Lion.AbpPro.BasicManagement.AuditLogs |
|||
{ |
|||
[Authorize] |
|||
public class AuditLogAppService : BasicManagementAppService, IAuditLogAppService |
|||
{ |
|||
private readonly IAuditLogRepository _auditLogRepository; |
|||
|
|||
public AuditLogAppService(IAuditLogRepository auditLogRepository) |
|||
{ |
|||
_auditLogRepository = auditLogRepository; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 分页查询审计日志
|
|||
/// </summary>
|
|||
[Authorize(Policy = BasicManagementPermissions.SystemManagement.AuditLog)] |
|||
public async Task<PagedResultDto<GetAuditLogPageListOutput>> GetListAsync(PagingAuditLogListInput input) |
|||
{ |
|||
var list = await _auditLogRepository.GetListAsync( |
|||
input.Sorting, |
|||
input.PageSize, |
|||
input.SkipCount, |
|||
input.StartTime?.Date, |
|||
input.EndTime?.Date, |
|||
input.HttpMethod, |
|||
input.Url, |
|||
null, |
|||
input.UserName, |
|||
input.ApplicationName, |
|||
input.CorrelationId, |
|||
null, |
|||
input.MaxExecutionDuration, |
|||
input.MinExecutionDuration, |
|||
input.HasException, |
|||
input.HttpStatusCode); |
|||
var totalCount = await _auditLogRepository.GetCountAsync( |
|||
input.StartTime?.Date, |
|||
input.EndTime?.Date, |
|||
input.HttpMethod, |
|||
input.Url, |
|||
null, |
|||
input.UserName, |
|||
input.ApplicationName, |
|||
null, |
|||
input.CorrelationId, |
|||
input.MaxExecutionDuration, |
|||
input.MinExecutionDuration, |
|||
input.HasException, |
|||
input.HttpStatusCode); |
|||
return new PagedResultDto<GetAuditLogPageListOutput>(totalCount, |
|||
ObjectMapper.Map<List<AuditLog>, List<GetAuditLogPageListOutput>>(list)); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
using Lion.AbpPro.BasicManagement.Localization; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement; |
|||
|
|||
public abstract class BasicManagementAppService : ApplicationService |
|||
{ |
|||
protected BasicManagementAppService() |
|||
{ |
|||
LocalizationResource = typeof(BasicManagementResource); |
|||
ObjectMapperContext = typeof(BasicManagementApplicationModule); |
|||
} |
|||
} |
|||
@ -0,0 +1,23 @@ |
|||
using AutoMapper; |
|||
using Lion.AbpPro.BasicManagement.AuditLogs; |
|||
using Lion.AbpPro.BasicManagement.Users.Dtos; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement; |
|||
|
|||
public class BasicManagementApplicationAutoMapperProfile : Profile |
|||
{ |
|||
public BasicManagementApplicationAutoMapperProfile() |
|||
{ |
|||
CreateMap<AuditLog, GetAuditLogPageListOutput>(); |
|||
CreateMap<Volo.Abp.Identity.IdentityUser, LoginOutput>() |
|||
.ForMember(dest => dest.Token, opt => opt.Ignore()); |
|||
CreateMap<IdentityUser, ExportIdentityUserOutput>() |
|||
.ForMember(e => e.CreationTimeFormat, opt => opt.Ignore()) |
|||
.ForMember(e => e.Status, opt => opt.Ignore()); |
|||
CreateMap<OrganizationUnit, OrganizationUnitDto>(); |
|||
CreateMap<IdentityUser, GetOrganizationUnitUserOutput>(); |
|||
CreateMap<IdentityUser, GetUnAddUserOutput>(); |
|||
CreateMap<IdentityRole, GetOrganizationUnitRoleOutput>(); |
|||
CreateMap<IdentityRole, GetUnAddRoleOutput>(); |
|||
} |
|||
} |
|||
@ -0,0 +1,65 @@ |
|||
using Lion.AbpPro.BasicManagement.ConfigurationOptions; |
|||
using Lion.AbpPro.BasicManagement.Roles; |
|||
using Magicodes.ExporterAndImporter.Core; |
|||
using Magicodes.ExporterAndImporter.Excel; |
|||
using Volo.Abp.Account; |
|||
using Volo.Abp.AutoMapper; |
|||
using Volo.Abp.Modularity; |
|||
using Volo.Abp.Application; |
|||
using Volo.Abp.FeatureManagement; |
|||
using Volo.Abp.PermissionManagement; |
|||
using Volo.Abp.SettingManagement; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement; |
|||
|
|||
[DependsOn( |
|||
typeof(BasicManagementDomainModule), |
|||
typeof(BasicManagementApplicationContractsModule), |
|||
typeof(AbpDddApplicationModule), |
|||
typeof(AbpAutoMapperModule), |
|||
typeof(AbpAccountApplicationModule), |
|||
typeof(AbpIdentityApplicationModule), |
|||
typeof(AbpPermissionManagementApplicationModule), |
|||
typeof(AbpTenantManagementApplicationModule), |
|||
typeof(AbpFeatureManagementApplicationModule), |
|||
typeof(AbpSettingManagementApplicationModule), |
|||
typeof(AbpAuditLoggingDomainModule) |
|||
)] |
|||
public class BasicManagementApplicationModule : AbpModule |
|||
{ |
|||
public override void ConfigureServices(ServiceConfigurationContext context) |
|||
{ |
|||
context.Services.AddAutoMapperObjectMapper<BasicManagementApplicationModule>(); |
|||
Configure<AbpAutoMapperOptions>(options => |
|||
{ |
|||
options.AddMaps<BasicManagementApplicationModule>(validate: true); |
|||
}); |
|||
|
|||
Configure<PermissionOptions>(options => |
|||
{ |
|||
options.Excludes.Add("AbpIdentity.Users.ManagePermissions"); |
|||
options.Excludes.Add("AbpIdentity.UserLookup"); |
|||
options.Excludes.Add("FeatureManagement"); |
|||
options.Excludes.Add("FeatureManagement.ManageHostFeatures"); |
|||
options.Excludes.Add("SettingManagement"); |
|||
options.Excludes.Add("SettingManagement.Emailing"); |
|||
options.Excludes.Add("AbpTenantManagement"); |
|||
options.Excludes.Add("AbpTenantManagement.Tenants.ManageFeatures"); |
|||
options.Excludes.Add("AbpTenantManagement.Tenants.ManageConnectionStrings"); |
|||
}); |
|||
|
|||
context.Services.Configure<JwtOptions>(context.Services.GetConfiguration().GetSection("Jwt")); |
|||
|
|||
ConfigureMagicodes(context); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 配置Magicodes.IE
|
|||
/// Excel导入导出
|
|||
/// </summary>
|
|||
private void ConfigureMagicodes(ServiceConfigurationContext context) |
|||
{ |
|||
context.Services.AddTransient<IExporter, ExcelExporter>(); |
|||
context.Services.AddTransient<IExcelExporter, ExcelExporter>(); |
|||
} |
|||
} |
|||
@ -0,0 +1,3 @@ |
|||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|||
</Weavers> |
|||
@ -0,0 +1,30 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|||
<xs:element name="Weavers"> |
|||
<xs:complexType> |
|||
<xs:all> |
|||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|||
<xs:complexType> |
|||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|||
</xs:complexType> |
|||
</xs:element> |
|||
</xs:all> |
|||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|||
<xs:annotation> |
|||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|||
<xs:annotation> |
|||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|||
<xs:annotation> |
|||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
</xs:complexType> |
|||
</xs:element> |
|||
</xs:schema> |
|||
@ -0,0 +1,31 @@ |
|||
// Global using directives
|
|||
|
|||
global using System.Globalization; |
|||
global using AutoMapper.Internal.Mappers; |
|||
global using Lion.AbpPro.BasicManagement.OrganizationUnits.Dto; |
|||
global using Lion.AbpPro.BasicManagement.Permissions; |
|||
global using Lion.AbpPro.BasicManagement.Tenants.Dtos; |
|||
global using Lion.AbpPro.Extension.Customs.Dtos; |
|||
global using Microsoft.AspNetCore.Authorization; |
|||
global using Microsoft.Extensions.DependencyInjection; |
|||
global using Microsoft.Extensions.Localization; |
|||
global using Microsoft.Extensions.Logging; |
|||
global using Microsoft.Extensions.Options; |
|||
global using Volo.Abp; |
|||
global using Volo.Abp.Application.Dtos; |
|||
global using Volo.Abp.Application.Services; |
|||
global using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations; |
|||
global using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending; |
|||
global using Volo.Abp.AspNetCore.Mvc.MultiTenancy; |
|||
global using Volo.Abp.AuditLogging; |
|||
global using Volo.Abp.Authorization; |
|||
global using Volo.Abp.Authorization.Permissions; |
|||
global using Volo.Abp.DependencyInjection; |
|||
global using Volo.Abp.Features; |
|||
global using Volo.Abp.Identity; |
|||
global using Volo.Abp.Localization; |
|||
global using Volo.Abp.MultiTenancy; |
|||
global using Volo.Abp.Settings; |
|||
global using Volo.Abp.TenantManagement; |
|||
global using Volo.Abp.Timing; |
|||
global using Volo.Abp.Users; |
|||
@ -0,0 +1,25 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk"> |
|||
|
|||
<PropertyGroup> |
|||
<TargetFramework>net6.0</TargetFramework> |
|||
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<PackageReference Include="Volo.Abp.AutoMapper" /> |
|||
<PackageReference Include="Volo.Abp.Ddd.Application" /> |
|||
<PackageReference Include="Volo.Abp.Account.Application" /> |
|||
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" /> |
|||
<PackageReference Include="Volo.Abp.Identity.Application" /> |
|||
<PackageReference Include="Volo.Abp.PermissionManagement.Application" /> |
|||
<PackageReference Include="Volo.Abp.TenantManagement.Application" /> |
|||
<PackageReference Include="Volo.Abp.FeatureManagement.Application" /> |
|||
<PackageReference Include="Volo.Abp.SettingManagement.Application" /> |
|||
<PackageReference Include="Microsoft.IdentityModel.Tokens" /> |
|||
<PackageReference Include="System.IdentityModel.Tokens.Jwt" /> |
|||
<PackageReference Include="IdentityModel" /> |
|||
<ProjectReference Include="..\Lion.AbpPro.BasicManagement.Application.Contracts\Lion.AbpPro.BasicManagement.Application.Contracts.csproj" /> |
|||
<ProjectReference Include="..\Lion.AbpPro.BasicManagement.Domain\Lion.AbpPro.BasicManagement.Domain.csproj" /> |
|||
</ItemGroup> |
|||
|
|||
</Project> |
|||
@ -0,0 +1,198 @@ |
|||
namespace Lion.AbpPro.BasicManagement.OrganizationUnits; |
|||
|
|||
[Authorize] |
|||
public class OrganizationUnitAppService : BasicManagementAppService, IOrganizationUnitAppService |
|||
{ |
|||
private readonly OrganizationUnitManager _organizationUnitManager; |
|||
private readonly IdentityUserManager _identityUserManager; |
|||
private readonly IOrganizationUnitRepository _organizationUnitRepository; |
|||
|
|||
public OrganizationUnitAppService( |
|||
OrganizationUnitManager OrganizationUnitManager, |
|||
IdentityUserManager identityUserManager, |
|||
IOrganizationUnitRepository organizationUnitRepository) |
|||
{ |
|||
_organizationUnitManager = OrganizationUnitManager; |
|||
_identityUserManager = identityUserManager; |
|||
_organizationUnitRepository = organizationUnitRepository; |
|||
} |
|||
|
|||
public async Task<List<TreeOutput>> GetTreeAsync() |
|||
{ |
|||
var organizationUnits = await _organizationUnitRepository.GetListAsync(); |
|||
var organizationUnitDtos = ObjectMapper.Map<List<OrganizationUnit>, List<OrganizationUnitDto>>(organizationUnits); |
|||
return ConvertToTree(organizationUnitDtos); |
|||
} |
|||
|
|||
[Authorize(BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Create)] |
|||
public async Task CreateAsync(CreateOrganizationUnitInput input) |
|||
{ |
|||
var entity = new OrganizationUnit |
|||
( |
|||
GuidGenerator.Create(), |
|||
input.DisplayName, |
|||
input.ParentId, |
|||
CurrentTenant.Id |
|||
); |
|||
await _organizationUnitManager.CreateAsync(entity); |
|||
} |
|||
|
|||
[Authorize(BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Delete)] |
|||
public Task DeleteAsync(IdInput input) |
|||
{ |
|||
return _organizationUnitManager.DeleteAsync(input.Id); |
|||
} |
|||
|
|||
[Authorize(BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Update)] |
|||
public async Task UpdateAsync(UpdateOrganizationUnitInput input) |
|||
{ |
|||
var entity = await _organizationUnitRepository.FindAsync(input.Id); |
|||
if (entity != null) |
|||
{ |
|||
entity.DisplayName = input.DisplayName; |
|||
await _organizationUnitManager.UpdateAsync(entity); |
|||
} |
|||
} |
|||
|
|||
[Authorize(BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Create)] |
|||
public async Task AddRoleToOrganizationUnitAsync(AddRoleToOrganizationUnitInput input) |
|||
{ |
|||
foreach (var roleId in input.RoleId) |
|||
{ |
|||
await _organizationUnitManager.AddRoleToOrganizationUnitAsync(roleId, input.OrganizationUnitId); |
|||
} |
|||
} |
|||
|
|||
[Authorize(BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Delete)] |
|||
public async Task RemoveRoleFromOrganizationUnitAsync(RemoveRoleToOrganizationUnitInput input) |
|||
{ |
|||
await _organizationUnitManager.RemoveRoleFromOrganizationUnitAsync(input.RoleId, input.OrganizationUnitId); |
|||
} |
|||
|
|||
[Authorize(BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Create)] |
|||
public async Task AddUserToOrganizationUnitAsync(AddUserToOrganizationUnitInput input) |
|||
{ |
|||
foreach (var userId in input.UserId) |
|||
{ |
|||
await _identityUserManager.AddToOrganizationUnitAsync(userId, input.OrganizationUnitId); |
|||
} |
|||
} |
|||
|
|||
[Authorize(BasicManagementPermissions.SystemManagement.OrganizationUnitManagement.Delete)] |
|||
public async Task RemoveUserFromOrganizationUnitAsync(RemoveUserToOrganizationUnitInput input) |
|||
{ |
|||
await _identityUserManager.RemoveFromOrganizationUnitAsync(input.UserId, input.OrganizationUnitId); |
|||
} |
|||
|
|||
public async Task<PagedResultDto<GetOrganizationUnitUserOutput>> GetUsersAsync(GetOrganizationUnitUserInput input) |
|||
{ |
|||
var listResult = new List<GetOrganizationUnitUserOutput>(); |
|||
var organizationUnit = await _organizationUnitRepository.FindAsync(input.OrganizationUnitId); |
|||
if (organizationUnit == null) throw new BusinessException(BasicManagementErrorCodes.OrganizationUnitNotExist); |
|||
|
|||
var count = await _organizationUnitRepository.GetMembersCountAsync(organizationUnit, filter: input.Filter); |
|||
if (count > 0) |
|||
{ |
|||
var list = await _organizationUnitRepository.GetMembersAsync |
|||
( |
|||
organizationUnit, |
|||
maxResultCount: input.PageSize, |
|||
skipCount: input.SkipCount, |
|||
filter: input.Filter |
|||
); |
|||
listResult = ObjectMapper.Map<List<IdentityUser>, List<GetOrganizationUnitUserOutput>>(list); |
|||
} |
|||
|
|||
return new PagedResultDto<GetOrganizationUnitUserOutput>(count, listResult); |
|||
} |
|||
|
|||
public async Task<PagedResultDto<GetUnAddUserOutput>> GetUnAddUsersAsync(GetUnAddUserInput input) |
|||
{ |
|||
var listResult = new List<GetUnAddUserOutput>(); |
|||
var organizationUnit = await _organizationUnitRepository.FindAsync(input.OrganizationUnitId); |
|||
if (organizationUnit == null) throw new BusinessException(BasicManagementErrorCodes.OrganizationUnitNotExist); |
|||
var count = await _organizationUnitRepository.GetUnaddedUsersCountAsync(organizationUnit, input.Filter); |
|||
if (count > 0) |
|||
{ |
|||
var users = await _organizationUnitRepository.GetUnaddedUsersAsync |
|||
( |
|||
organizationUnit, |
|||
maxResultCount: input.PageSize, |
|||
skipCount: input.SkipCount, |
|||
filter: input.Filter |
|||
); |
|||
listResult = ObjectMapper.Map<List<IdentityUser>, List<GetUnAddUserOutput>>(users); |
|||
} |
|||
|
|||
return new PagedResultDto<GetUnAddUserOutput>(count, listResult); |
|||
} |
|||
|
|||
public async Task<PagedResultDto<GetOrganizationUnitRoleOutput>> GetRolesAsync(GetOrganizationUnitRoleInput input) |
|||
{ |
|||
var listResult = new List<GetOrganizationUnitRoleOutput>(); |
|||
var organizationUnit = await _organizationUnitRepository.FindAsync(input.OrganizationUnitId); |
|||
if (organizationUnit == null) throw new BusinessException(BasicManagementErrorCodes.OrganizationUnitNotExist); |
|||
|
|||
var count = await _organizationUnitRepository.GetRolesCountAsync(organizationUnit); |
|||
if (count > 0) |
|||
{ |
|||
var list = await _organizationUnitRepository.GetRolesAsync(organizationUnit, maxResultCount: input.PageSize, skipCount: input.SkipCount); |
|||
listResult = ObjectMapper.Map<List<IdentityRole>, List<GetOrganizationUnitRoleOutput>>(list); |
|||
} |
|||
|
|||
return new PagedResultDto<GetOrganizationUnitRoleOutput>(count, listResult); |
|||
} |
|||
|
|||
public async Task<PagedResultDto<GetUnAddRoleOutput>> GetUnAddRolessAsync(GetUnAddRoleInput input) |
|||
{ |
|||
var listResult = new List<GetUnAddRoleOutput>(); |
|||
var organizationUnit = await _organizationUnitRepository.FindAsync(input.OrganizationUnitId); |
|||
if (organizationUnit == null) throw new BusinessException(BasicManagementErrorCodes.OrganizationUnitNotExist); |
|||
var count = await _organizationUnitRepository.GetUnaddedRolesCountAsync(organizationUnit, input.Filter); |
|||
if (count > 0) |
|||
{ |
|||
var roles = await _organizationUnitRepository.GetUnaddedRolesAsync |
|||
( |
|||
organizationUnit, |
|||
maxResultCount: input.PageSize, |
|||
skipCount: input.SkipCount, |
|||
filter: input.Filter |
|||
); |
|||
listResult = ObjectMapper.Map<List<IdentityRole>, List<GetUnAddRoleOutput>>(roles); |
|||
} |
|||
|
|||
return new PagedResultDto<GetUnAddRoleOutput>(count, listResult); |
|||
} |
|||
|
|||
#region 私有方法
|
|||
|
|||
private List<TreeOutput> ConvertToTree( |
|||
List<OrganizationUnitDto> list, |
|||
Guid? Id = null) |
|||
{ |
|||
var result = new List<TreeOutput>(); |
|||
var childList = Children(list, Id); |
|||
foreach (var item in childList) |
|||
{ |
|||
var tree = new TreeOutput |
|||
{ |
|||
Key = item.Id, |
|||
Title = item.DisplayName, |
|||
Children = ConvertToTree(list, item.Id) |
|||
}; |
|||
result.Add(tree); |
|||
} |
|||
|
|||
return result; |
|||
} |
|||
|
|||
private List<OrganizationUnitDto> Children( |
|||
List<OrganizationUnitDto> list, |
|||
Guid? Id) |
|||
{ |
|||
var childList = list.Where(x => x.ParentId == Id).ToList(); |
|||
return childList; |
|||
} |
|||
|
|||
#endregion
|
|||
} |
|||
@ -0,0 +1,87 @@ |
|||
using Lion.AbpPro.BasicManagement.Roles.Dtos; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Roles |
|||
{ |
|||
[Authorize] |
|||
public class RoleAppService : BasicManagementAppService, IRoleAppService |
|||
{ |
|||
private readonly IIdentityRoleAppService _identityRoleAppService; |
|||
|
|||
private readonly IIdentityRoleRepository _roleRepository; |
|||
|
|||
public RoleAppService( |
|||
IIdentityRoleAppService identityRoleAppService, |
|||
IIdentityRoleRepository roleRepository) |
|||
{ |
|||
_identityRoleAppService = identityRoleAppService; |
|||
|
|||
_roleRepository = roleRepository; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取所有角色
|
|||
/// </summary>
|
|||
|
|||
public async Task<ListResultDto<IdentityRoleDto>> AllListAsync() |
|||
{ |
|||
List<IdentityRole> source = |
|||
await _roleRepository.GetListAsync() |
|||
.ConfigureAwait(continueOnCapturedContext: false); |
|||
return new ListResultDto<IdentityRoleDto>( |
|||
ObjectMapper.Map<List<IdentityRole>, List<IdentityRoleDto>>(source)); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 分页查询角色
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
public async Task<PagedResultDto<IdentityRoleDto>> ListAsync(PagingRoleListInput input) |
|||
{ |
|||
var request = new GetIdentityRolesInput |
|||
{ |
|||
Filter = input.Filter?.Trim(), MaxResultCount = input.PageSize, |
|||
SkipCount = input.SkipCount |
|||
}; |
|||
List<IdentityRole> list = await _roleRepository |
|||
.GetListAsync(request.Sorting, request.MaxResultCount, request.SkipCount, |
|||
request.Filter) |
|||
.ConfigureAwait(continueOnCapturedContext: false); |
|||
return new PagedResultDto<IdentityRoleDto>( |
|||
await _roleRepository.GetCountAsync(request.Filter) |
|||
.ConfigureAwait(continueOnCapturedContext: false), |
|||
ObjectMapper.Map<List<IdentityRole>, List<IdentityRoleDto>>(list)); |
|||
} |
|||
|
|||
|
|||
/// <summary>
|
|||
/// 创建角色
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
[Authorize(IdentityPermissions.Roles.Create)] |
|||
public async Task<IdentityRoleDto> CreateAsync(IdentityRoleCreateDto input) |
|||
{ |
|||
return await _identityRoleAppService.CreateAsync(input); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 更新角色
|
|||
/// </summary>
|
|||
[Authorize(IdentityPermissions.Roles.Update)] |
|||
public async Task<IdentityRoleDto> UpdateAsync(UpdateRoleInput input) |
|||
{ |
|||
return await _identityRoleAppService.UpdateAsync(input.RoleId, input.RoleInfo); |
|||
} |
|||
|
|||
|
|||
/// <summary>
|
|||
/// 删除角色
|
|||
/// </summary>
|
|||
[Authorize(IdentityPermissions.Roles.Delete)] |
|||
public async Task DeleteAsync(IdInput input) |
|||
{ |
|||
await _identityRoleAppService.DeleteAsync(input.Id); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,120 @@ |
|||
using Lion.AbpPro.BasicManagement.Roles.Dtos; |
|||
using Volo.Abp.PermissionManagement; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Roles |
|||
{ |
|||
[Authorize] |
|||
public class RolePermissionAppService : BasicManagementAppService, IRolePermissionAppService |
|||
{ |
|||
private readonly IPermissionAppService _rolePermissionAppService; |
|||
private readonly PermissionOptions _permissionOptions; |
|||
|
|||
public RolePermissionAppService(IPermissionAppService rolePermissionAppService, IOptions<PermissionOptions> permissionOptions) |
|||
{ |
|||
_rolePermissionAppService = rolePermissionAppService; |
|||
_permissionOptions = permissionOptions.Value; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取所有权限
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public async Task<PermissionOutput> GetPermissionAsync(GetPermissionInput input) |
|||
{ |
|||
var permissions = |
|||
await _rolePermissionAppService.GetAsync(input.ProviderName, input.ProviderKey); |
|||
return BuildTreeData(permissions.Groups); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 更新权限
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
[Authorize(IdentityPermissions.Roles.ManagePermissions)] |
|||
public async Task UpdatePermissionAsync(UpdateRolePermissionsInput input) |
|||
{ |
|||
await _rolePermissionAppService.UpdateAsync(input.ProviderName, input.ProviderKey, |
|||
input.UpdatePermissionsDto); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 生成权限树
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
private PermissionOutput BuildTreeData(List<PermissionGroupDto> input) |
|||
{ |
|||
var result = new PermissionOutput(); |
|||
|
|||
|
|||
var permissions = new List<PermissionTreeDto>(); |
|||
|
|||
foreach (var group in input) |
|||
{ |
|||
if (_permissionOptions.IsExclude(group.Name)) continue; |
|||
|
|||
// 获取分组信息
|
|||
var groupPermission = new PermissionTreeDto |
|||
{ |
|||
Key = group.Name, |
|||
Title = group.Name == "AbpIdentity" |
|||
? L[$"Permission:SystemManagement"] |
|||
: group.DisplayName |
|||
}; |
|||
result.Grants.Add(group.Name); |
|||
// 获取所有已授权和未授权权限集合
|
|||
foreach (var item in group.Permissions) |
|||
{ |
|||
if (_permissionOptions.IsExclude(item.Name)) continue; |
|||
|
|||
result.AllGrants.Add(item.Name); |
|||
if (item.IsGranted) |
|||
{ |
|||
result.Grants.Add(item.Name); |
|||
} |
|||
else |
|||
{ |
|||
// 只要没有授权的,就移除顶级的分组
|
|||
result.Grants.Remove(group.Name); |
|||
result.Grants.Remove(item.ParentName); |
|||
} |
|||
} |
|||
|
|||
// 递归菜单
|
|||
var childTreeMenu = RecursionMenu(group.Permissions, null); |
|||
|
|||
groupPermission.Children.AddRange(childTreeMenu.Children); |
|||
|
|||
permissions.Add(groupPermission); |
|||
} |
|||
|
|||
|
|||
result.Permissions = permissions; |
|||
return result; |
|||
} |
|||
|
|||
|
|||
/// <summary>
|
|||
/// 递归菜单
|
|||
/// </summary>
|
|||
private PermissionTreeDto RecursionMenu(List<PermissionGrantInfoDto> permissionGrantInfoDtos, |
|||
string parentName) |
|||
{ |
|||
var tree = new PermissionTreeDto(); |
|||
var permissions = permissionGrantInfoDtos |
|||
.Where(e => e.ParentName == parentName && !_permissionOptions.IsExclude(e.Name)).ToList(); |
|||
foreach (var item in permissions) |
|||
{ |
|||
var child = new PermissionTreeDto |
|||
{ |
|||
Key = item.Name, |
|||
Title = item.DisplayName |
|||
}; |
|||
child.Children.AddRange(RecursionMenu(permissionGrantInfoDtos, item.Name).Children); |
|||
tree.Children.Add(child); |
|||
} |
|||
|
|||
return tree; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,97 @@ |
|||
using Lion.AbpPro.BasicManagement.Settings.Dtos; |
|||
using Volo.Abp.SettingManagement; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Settings |
|||
{ |
|||
[Authorize(policy: BasicManagementPermissions.SystemManagement.Setting)] |
|||
public class SettingAppService : BasicManagementAppService, ISettingAppService |
|||
{ |
|||
private readonly ISettingDefinitionManager _settingDefinitionManager; |
|||
private readonly ISettingManager _settingManager; |
|||
private readonly IStringLocalizerFactory _factory; |
|||
|
|||
public SettingAppService( |
|||
ISettingDefinitionManager settingDefinitionManager, |
|||
ISettingManager settingManager, |
|||
IStringLocalizerFactory factory) |
|||
{ |
|||
_settingDefinitionManager = settingDefinitionManager; |
|||
_settingManager = settingManager; |
|||
_factory = factory; |
|||
} |
|||
|
|||
public async Task<List<SettingOutput>> GetAsync() |
|||
{ |
|||
var allSettings = _settingDefinitionManager.GetAll().ToList(); |
|||
var settings = allSettings |
|||
.Where(e => e.Properties.ContainsKey(BasicManagementSettings.Group.Default)).ToList(); |
|||
|
|||
var settingOutput = settings |
|||
.GroupBy(e => e.Properties[BasicManagementSettings.Group.Default].ToString()).Select(s => |
|||
new SettingOutput |
|||
{ |
|||
Group = s.Key, |
|||
GroupDisplayName = _factory.CreateDefaultOrNull()[s.Key] |
|||
}).ToList(); |
|||
|
|||
foreach (var item in settingOutput) |
|||
{ |
|||
var currentSettings = settings.Where(e => e.Properties.ContainsValue(item.Group)); |
|||
foreach (var itemDefinition in currentSettings) |
|||
{ |
|||
var value = await SettingProvider.GetOrNullAsync(itemDefinition.Name); |
|||
var type = itemDefinition.Properties |
|||
.FirstOrDefault(f => f.Key == BasicManagementSettings.ControlType.Default).Value |
|||
.ToString(); |
|||
|
|||
item.SettingItemOutput.Add(new SettingItemOutput( |
|||
itemDefinition.Name, |
|||
itemDefinition.DisplayName.Localize(_factory), |
|||
value, |
|||
type, |
|||
itemDefinition.Description.Localize(_factory))); |
|||
} |
|||
} |
|||
|
|||
return await Task.FromResult(settingOutput); |
|||
} |
|||
|
|||
public async Task UpdateAsync(UpdateSettingInput input) |
|||
{ |
|||
foreach (var kv in input.Values) |
|||
{ |
|||
// The key of the settingValues is in camel_Case, like "setting_Abp_Localization_DefaultLanguage",
|
|||
// change it to "Abp.Localization.DefaultLanguage" form
|
|||
if (!kv.Key.StartsWith(BasicManagementSettings.Prefix)) |
|||
{ |
|||
continue; |
|||
} |
|||
|
|||
string name = kv.Key.RemovePreFix(BasicManagementSettings.Prefix); |
|||
var setting = _settingDefinitionManager.GetOrNull(name); |
|||
if (setting == null) |
|||
{ |
|||
continue; |
|||
} |
|||
|
|||
await SetSetting(setting, kv.Value); |
|||
} |
|||
} |
|||
|
|||
private Task SetSetting(SettingDefinition setting, string value) |
|||
{ |
|||
if (setting.Providers.Any(p => p == UserSettingValueProvider.ProviderName)) |
|||
{ |
|||
return _settingManager.SetForCurrentUserAsync(setting.Name, value); |
|||
} |
|||
|
|||
if (setting.Providers.Any(p => p == TenantSettingValueProvider.ProviderName)) |
|||
{ |
|||
return _settingManager.SetForCurrentTenantAsync(setting.Name, value); |
|||
} |
|||
|
|||
|
|||
return _settingManager.SetGlobalAsync(setting.Name, value); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,73 @@ |
|||
namespace Lion.AbpPro.BasicManagement.Tenants |
|||
{ |
|||
[Authorize] |
|||
public class VoloTenantAppService : BasicManagementAppService, IVoloTenantAppService |
|||
{ |
|||
private readonly IAbpTenantAppService _abpTenantAppService; |
|||
private readonly ITenantAppService _tenantAppService; |
|||
|
|||
public VoloTenantAppService( |
|||
IAbpTenantAppService abpTenantAppService, |
|||
ITenantAppService tenantAppService) |
|||
{ |
|||
_abpTenantAppService = abpTenantAppService; |
|||
_tenantAppService = tenantAppService; |
|||
} |
|||
|
|||
public async Task<FindTenantResultDto> FindTenantByNameAsync(FindTenantByNameInput input) |
|||
{ |
|||
return await _abpTenantAppService.FindTenantByNameAsync(input.Name); |
|||
} |
|||
|
|||
|
|||
public Task<PagedResultDto<TenantDto>> ListAsync(PagingTenantInput input) |
|||
{ |
|||
var request = new GetTenantsInput |
|||
{ |
|||
Filter = input.Filter, SkipCount = input.SkipCount, MaxResultCount = input.PageSize |
|||
}; |
|||
return _tenantAppService.GetListAsync(request); |
|||
} |
|||
|
|||
[Authorize(policy:TenantManagementPermissions.Tenants.Create)] |
|||
public Task<TenantDto> CreateAsync(TenantCreateDto input) |
|||
{ |
|||
return _tenantAppService.CreateAsync(input); |
|||
} |
|||
|
|||
[Authorize(policy:TenantManagementPermissions.Tenants.Update)] |
|||
public Task<TenantDto> UpdateAsync(UpdateTenantInput input) |
|||
{ |
|||
var request = new TenantUpdateDto() |
|||
{ |
|||
Name = input.Name.Trim() |
|||
}; |
|||
return _tenantAppService.UpdateAsync(input.Id, request); |
|||
} |
|||
|
|||
[Authorize(policy:TenantManagementPermissions.Tenants.Delete)] |
|||
public Task DeleteAsync(IdInput input) |
|||
{ |
|||
return _tenantAppService.DeleteAsync(input.Id); |
|||
} |
|||
|
|||
[Authorize(TenantManagementPermissions.Tenants.ManageConnectionStrings)] |
|||
public Task<string> GetDefaultConnectionStringAsync(IdInput input) |
|||
{ |
|||
return _tenantAppService.GetDefaultConnectionStringAsync(input.Id); |
|||
} |
|||
|
|||
[Authorize(TenantManagementPermissions.Tenants.ManageConnectionStrings)] |
|||
public Task UpdateDefaultConnectionStringAsync(UpdateConnectionStringInput input) |
|||
{ |
|||
return _tenantAppService.UpdateDefaultConnectionStringAsync(input.Id, |
|||
input.ConnectionString); |
|||
} |
|||
|
|||
[Authorize(TenantManagementPermissions.Tenants.ManageConnectionStrings)] |
|||
public Task DeleteDefaultConnectionStringAsync(IdInput input) |
|||
{ |
|||
return _tenantAppService.DeleteDefaultConnectionStringAsync(input.Id); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,103 @@ |
|||
using System.IdentityModel.Tokens.Jwt; |
|||
using System.Security.Claims; |
|||
using System.Text; |
|||
using IdentityModel; |
|||
using Lion.AbpPro.BasicManagement.ConfigurationOptions; |
|||
using Lion.AbpPro.BasicManagement.Users.Dtos; |
|||
using Microsoft.IdentityModel.Tokens; |
|||
using Volo.Abp.Security.Claims; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Users |
|||
{ |
|||
public class AccountAppService : BasicManagementAppService, IAccountAppService |
|||
{ |
|||
private readonly IdentityUserManager _userManager; |
|||
private readonly JwtOptions _jwtOptions; |
|||
private readonly Microsoft.AspNetCore.Identity.SignInManager<IdentityUser> _signInManager; |
|||
|
|||
public AccountAppService( |
|||
IdentityUserManager userManager, |
|||
IOptionsSnapshot<JwtOptions> jwtOptions, |
|||
Microsoft.AspNetCore.Identity.SignInManager<IdentityUser> signInManager) |
|||
{ |
|||
_userManager = userManager; |
|||
_jwtOptions = jwtOptions.Value; |
|||
_signInManager = signInManager; |
|||
} |
|||
|
|||
|
|||
public async Task<LoginOutput> LoginAsync(LoginInput input) |
|||
{ |
|||
var result = await _signInManager.PasswordSignInAsync(input.Name, input.Password, false, true); |
|||
if (result.IsNotAllowed) |
|||
{ |
|||
throw new BusinessException(BasicManagementErrorCodes.UserLockedOut); |
|||
} |
|||
|
|||
if (!result.Succeeded) |
|||
{ |
|||
throw new BusinessException(BasicManagementErrorCodes.UserOrPasswordMismatch); |
|||
} |
|||
|
|||
var user = await _userManager.FindByNameAsync(input.Name); |
|||
return await BuildResult(user); |
|||
} |
|||
|
|||
#region 私有方法
|
|||
|
|||
|
|||
private async Task<LoginOutput> BuildResult(IdentityUser user) |
|||
{ |
|||
if (!user.IsActive) throw new BusinessException(BasicManagementErrorCodes.UserLockedOut); |
|||
var roles = await _userManager.GetRolesAsync(user); |
|||
if (roles == null || roles.Count == 0) throw new AbpAuthorizationException(); |
|||
var token = GenerateJwt(user.Id, user.UserName, user.Name, user.Email, |
|||
user.TenantId.ToString(), roles.ToList()); |
|||
var loginOutput = ObjectMapper.Map<IdentityUser, LoginOutput>(user); |
|||
loginOutput.Token = token; |
|||
loginOutput.Roles = roles.ToList(); |
|||
return loginOutput; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 生成jwt token
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
private string GenerateJwt(Guid userId, string userName, string name, string email, |
|||
string tenantId, List<string> roles) |
|||
{ |
|||
var dateNow = DateTime.Now; |
|||
var expirationTime = dateNow + TimeSpan.FromHours(_jwtOptions.ExpirationTime); |
|||
var key = Encoding.ASCII.GetBytes(_jwtOptions.SecurityKey); |
|||
|
|||
var claims = new List<Claim> |
|||
{ |
|||
new Claim(JwtClaimTypes.Audience, _jwtOptions.Audience), |
|||
new Claim(JwtClaimTypes.Issuer, _jwtOptions.Issuer), |
|||
new Claim(AbpClaimTypes.UserId, userId.ToString()), |
|||
new Claim(AbpClaimTypes.Name, name), |
|||
new Claim(AbpClaimTypes.UserName, userName), |
|||
new Claim(AbpClaimTypes.Email, email), |
|||
new Claim(AbpClaimTypes.TenantId, tenantId) |
|||
}; |
|||
|
|||
foreach (var item in roles) |
|||
{ |
|||
claims.Add(new Claim(JwtClaimTypes.Role, item)); |
|||
} |
|||
|
|||
var tokenDescriptor = new SecurityTokenDescriptor() |
|||
{ |
|||
Subject = new ClaimsIdentity(claims), |
|||
Expires = expirationTime, |
|||
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), |
|||
SecurityAlgorithms.HmacSha256Signature) |
|||
}; |
|||
var handler = new JwtSecurityTokenHandler(); |
|||
var token = handler.CreateToken(tokenDescriptor); |
|||
return handler.WriteToken(token); |
|||
} |
|||
|
|||
#endregion
|
|||
} |
|||
} |
|||
@ -0,0 +1,154 @@ |
|||
using Lion.AbpPro.BasicManagement.Users.Dtos; |
|||
using Magicodes.ExporterAndImporter.Excel; |
|||
using Magicodes.ExporterAndImporter.Excel.AspNetCore; |
|||
using Microsoft.AspNetCore.Identity; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using Volo.Abp.Account; |
|||
|
|||
namespace Lion.AbpPro.BasicManagement.Users |
|||
{ |
|||
[Authorize] |
|||
public class UserAppService : BasicManagementAppService, IUserAppService |
|||
{ |
|||
private readonly IIdentityUserAppService _identityUserAppService; |
|||
private readonly IdentityUserManager _userManager; |
|||
private readonly IIdentityUserRepository _identityUserRepository; |
|||
private readonly IExcelExporter _excelExporter; |
|||
private readonly IOptions<IdentityOptions> _options; |
|||
public UserAppService( |
|||
IIdentityUserAppService identityUserAppService, |
|||
IdentityUserManager userManager, |
|||
IIdentityUserRepository userRepository, |
|||
IExcelExporter excelExporter, |
|||
IOptions<IdentityOptions> options) |
|||
{ |
|||
_identityUserAppService = identityUserAppService; |
|||
_userManager = userManager; |
|||
_identityUserRepository = userRepository; |
|||
_excelExporter = excelExporter; |
|||
_options = options; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 分页查询用户
|
|||
/// </summary>
|
|||
public async Task<PagedResultDto<IdentityUserDto>> ListAsync(PagingUserListInput input) |
|||
{ |
|||
var request = new GetIdentityUsersInput |
|||
{ |
|||
Filter = input.Filter?.Trim(), |
|||
MaxResultCount = input.PageSize, |
|||
SkipCount = input.SkipCount, |
|||
Sorting = " LastModificationTime desc" |
|||
}; |
|||
|
|||
var count = await _identityUserRepository.GetCountAsync(request.Filter); |
|||
var source = await _identityUserRepository |
|||
.GetListAsync(request.Sorting, request.MaxResultCount, request.SkipCount, request.Filter); |
|||
|
|||
return new PagedResultDto<IdentityUserDto>(count, |
|||
base.ObjectMapper.Map<List<Volo.Abp.Identity.IdentityUser>, List<IdentityUserDto>>(source)); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 用户导出列表
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[Authorize(BasicManagementPermissions.SystemManagement.UserExport)] |
|||
public async Task<ActionResult> ExportAsync(PagingUserListInput input) |
|||
{ |
|||
var request = new GetIdentityUsersInput |
|||
{ |
|||
Filter = input.Filter?.Trim(), |
|||
MaxResultCount = input.PageSize, |
|||
SkipCount = input.SkipCount, |
|||
Sorting = " LastModificationTime desc" |
|||
}; |
|||
var source = await _identityUserRepository |
|||
.GetListAsync(request.Sorting, request.MaxResultCount, request.SkipCount, request.Filter); |
|||
var result = ObjectMapper.Map<List<Volo.Abp.Identity.IdentityUser>, List<ExportIdentityUserOutput>>(source); |
|||
var bytes = await _excelExporter.ExportAsByteArray<ExportIdentityUserOutput>(result); |
|||
return new XlsxFileResult(bytes: bytes, fileDownloadName: $"用户导出列表{DateTime.Now:yyyyMMdd}"); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增用户
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
[Authorize(IdentityPermissions.Users.Create)] |
|||
public async Task<IdentityUserDto> CreateAsync(IdentityUserCreateDto input) |
|||
{ |
|||
// abp 5.0 之后新增字段,是否运行用户登录,默认设置为true
|
|||
input.IsActive = true; |
|||
return await _identityUserAppService.CreateAsync(input); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 更新用户
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
[Authorize(IdentityPermissions.Users.Update)] |
|||
public virtual async Task<IdentityUserDto> UpdateAsync(UpdateUserInput input) |
|||
{ |
|||
input.UserInfo.IsActive = true; |
|||
return await _identityUserAppService.UpdateAsync(input.UserId, input.UserInfo); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 删除用户
|
|||
/// </summary>
|
|||
[Authorize(IdentityPermissions.Users.Delete)] |
|||
public virtual async Task DeleteAsync(IdInput input) |
|||
{ |
|||
await _identityUserAppService.DeleteAsync(input.Id); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取用户角色信息
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public async Task<ListResultDto<IdentityRoleDto>> GetRoleByUserId(IdInput input) |
|||
{ |
|||
return await _identityUserAppService.GetRolesAsync(input.Id); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 修改密码
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
public async Task<bool> ChangePasswordAsync(ChangePasswordInput input) |
|||
{ |
|||
await _options.SetAsync(); |
|||
var identityUser = await _userManager.GetByIdAsync(base.CurrentUser.GetId()); |
|||
IdentityResult result; |
|||
if (identityUser.PasswordHash == null) |
|||
{ |
|||
result = await _userManager.AddPasswordAsync(identityUser, input.NewPassword); |
|||
} |
|||
else |
|||
{ |
|||
result = await _userManager.ChangePasswordAsync(identityUser, input.CurrentPassword, input.NewPassword); |
|||
} |
|||
|
|||
return !result.Succeeded |
|||
? throw new UserFriendlyException(result?.Errors?.FirstOrDefault()?.Description) |
|||
: result.Succeeded; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 锁定用户
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
[Authorize(BasicManagementPermissions.SystemManagement.UserEnable)] |
|||
public async Task LockAsync(LockUserInput input) |
|||
{ |
|||
var identityUser = await _userManager.GetByIdAsync(input.UserId); |
|||
identityUser.SetIsActive(input.Locked); |
|||
await _userManager.UpdateAsync(identityUser); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,9 @@ |
|||
namespace Lion.AbpPro.BasicManagement; |
|||
|
|||
public static class BasicManagementConsts |
|||
{ |
|||
/// <summary>名称空间</summary>
|
|||
public const string NameSpace = "Lion.AbpPro.BasicManagement"; |
|||
/// <summary>默认语言</summary>
|
|||
public const string DefaultCultureName = "zh-Hans"; |
|||
} |
|||
@ -0,0 +1,39 @@ |
|||
namespace Lion.AbpPro.BasicManagement; |
|||
|
|||
[DependsOn( |
|||
typeof(AbpAuditLoggingDomainSharedModule), |
|||
typeof(AbpBackgroundJobsDomainSharedModule), |
|||
typeof(AbpFeatureManagementDomainSharedModule), |
|||
typeof(AbpIdentityDomainSharedModule), |
|||
typeof(AbpPermissionManagementDomainSharedModule), |
|||
typeof(AbpSettingManagementDomainSharedModule), |
|||
typeof(AbpTenantManagementDomainSharedModule) |
|||
)] |
|||
public class BasicManagementDomainSharedModule : AbpModule |
|||
{ |
|||
public override void ConfigureServices(ServiceConfigurationContext context) |
|||
{ |
|||
Configure<AbpVirtualFileSystemOptions>(options => |
|||
{ |
|||
options.FileSets.AddEmbedded<BasicManagementDomainSharedModule>(BasicManagementConsts.NameSpace); |
|||
}); |
|||
|
|||
Configure<AbpLocalizationOptions>(options => |
|||
{ |
|||
options.Resources |
|||
.Add<BasicManagementResource>(BasicManagementConsts.DefaultCultureName) |
|||
.AddVirtualJson("/Localization/AbpPro") |
|||
.AddBaseTypes(typeof(IdentityResource)) |
|||
.AddBaseTypes(typeof(AbpValidationResource)) |
|||
.AddBaseTypes(typeof(AbpLocalizationResource)) |
|||
.AddBaseTypes(typeof(AbpSettingManagementResource)); |
|||
|
|||
options.DefaultResourceType = typeof(BasicManagementResource); |
|||
}); |
|||
|
|||
Configure<AbpExceptionLocalizationOptions>(options => |
|||
{ |
|||
options.MapCodeNamespace(BasicManagementConsts.NameSpace, typeof(BasicManagementResource)); |
|||
}); |
|||
} |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
namespace Lion.AbpPro.BasicManagement; |
|||
|
|||
public static class BasicManagementErrorCodes |
|||
{ |
|||
public const string OrganizationUnitNotExist =BasicManagementConsts.NameSpace+ ":100001"; |
|||
public const string UserLockedOut =BasicManagementConsts.NameSpace+ ":100002"; |
|||
public const string UserOrPasswordMismatch =BasicManagementConsts.NameSpace+ ":100003"; |
|||
} |
|||
@ -0,0 +1,3 @@ |
|||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|||
</Weavers> |
|||
@ -0,0 +1,30 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|||
<xs:element name="Weavers"> |
|||
<xs:complexType> |
|||
<xs:all> |
|||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|||
<xs:complexType> |
|||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|||
</xs:complexType> |
|||
</xs:element> |
|||
</xs:all> |
|||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|||
<xs:annotation> |
|||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|||
<xs:annotation> |
|||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|||
<xs:annotation> |
|||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
</xs:complexType> |
|||
</xs:element> |
|||
</xs:schema> |
|||
@ -0,0 +1,19 @@ |
|||
// Global using directives
|
|||
|
|||
global using Lion.AbpPro.BasicManagement.Localization; |
|||
global using Volo.Abp.AuditLogging; |
|||
global using Volo.Abp.BackgroundJobs; |
|||
global using Volo.Abp.FeatureManagement; |
|||
global using Volo.Abp.Identity; |
|||
global using Volo.Abp.Identity.Localization; |
|||
global using Volo.Abp.Localization; |
|||
global using Volo.Abp.Localization.ExceptionHandling; |
|||
global using Volo.Abp.Localization.Resources.AbpLocalization; |
|||
global using Volo.Abp.Modularity; |
|||
global using Volo.Abp.PermissionManagement; |
|||
global using Volo.Abp.SettingManagement; |
|||
global using Volo.Abp.SettingManagement.Localization; |
|||
global using Volo.Abp.TenantManagement; |
|||
global using Volo.Abp.Validation; |
|||
global using Volo.Abp.Validation.Localization; |
|||
global using Volo.Abp.VirtualFileSystem; |
|||
@ -0,0 +1,27 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk"> |
|||
|
|||
<PropertyGroup> |
|||
<TargetFramework>net6.0</TargetFramework> |
|||
<RootNamespace>Lion.AbpPro.BasicManagement</RootNamespace> |
|||
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" /> |
|||
<PackageReference Include="Volo.Abp.Validation" /> |
|||
<PackageReference Include="Volo.Abp.Identity.Domain.Shared" /> |
|||
<PackageReference Include="Volo.Abp.BackgroundJobs.Domain.Shared" /> |
|||
<PackageReference Include="Volo.Abp.AuditLogging.Domain.Shared" /> |
|||
<PackageReference Include="Volo.Abp.TenantManagement.Domain.Shared" /> |
|||
<PackageReference Include="Volo.Abp.FeatureManagement.Domain.Shared" /> |
|||
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Shared" /> |
|||
<PackageReference Include="Volo.Abp.SettingManagement.Domain.Shared" /> |
|||
</ItemGroup> |
|||
|
|||
|
|||
<ItemGroup> |
|||
<EmbeddedResource Include="Localization\BasicManagement\*.json" /> |
|||
<Content Remove="Localization\BasicManagement\*.json" /> |
|||
</ItemGroup> |
|||
|
|||
</Project> |
|||
@ -0,0 +1,7 @@ |
|||
{ |
|||
"culture": "ar", |
|||
"texts": { |
|||
"MyAccount": "إدارة ملفى", |
|||
"SamplePageMessage": "صفحة نموذجية للوحدة النمطية BasicManagement" |
|||
} |
|||
} |
|||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue