Merge branch 'dev' of https://github.com/abpframework/abp into test/theme-shared

pull/2069/head
mehmet-erim 6 years ago
commit 865d0b5fd7

@ -29,15 +29,15 @@
"Authorization": "Authorization",
"AuthorizationExplanation": "Advanced authorization with user, role and fine-grained permission system. Built on the Microsoft Identity library.",
"MultiTenancy": "Multi-Tenancy",
"MultiTenancyExplanation": "SaaS applications made easy! Integrated multi-tenancy from database to UI.",
"MultiTenancyExplanationShort": "SaaS applications made easy! Integrated multi-tenancy from database to UI.",
"CrossCuttingConcerns": "Cross Cutting Concerns",
"CrossCuttingConcernsExplanation": "Complete infrastructure for authorization, validation, exception handling, caching, audit logging, transaction management and so on.",
"CrossCuttingConcernsExplanationShort": "Complete infrastructure for authorization, validation, exception handling, caching, audit logging, transaction management and so on.",
"BuiltInBundlingMinification": "Built-In Bundling & Minification",
"BuiltInBundlingMinificationExplanation": "Stop to use external tools for bundling & minification. ABP offers a simpler, dynamic, powerful, modular and built-in way!",
"VirtualFileSystem": "Virtual File System",
"VirtualFileSystemExplanation": "Embed views, scripts, styles, images... into packages/libraries and reuse in different applications.",
"Theming": "Theming",
"ThemingExplanation": "Use and customize the bootstrap-based standard UI theme or create your own one.",
"ThemingExplanationShort": "Use and customize the bootstrap-based standard UI theme or create your own one.",
"BootstrapTagHelpersDynamicForms": "Bootstrap Tag Helpers & Dynamic Forms",
"BootstrapTagHelpersDynamicFormsExplanation": "Built-in background job system that can be integrated to Hangfire, RabbitMQ or any tool you like.", //TODO explanation doesn't match.
"HTTPAPIsDynamicProxies": "HTTP APIs & Dynamic Proxies",
@ -100,7 +100,6 @@
"DistributedEventBus": "Distributed Event Bus",
"DistributedEventBusWithRabbitMQIntegration": "Distributed Event Bus with RabbitMQ Integration",
"TestInfrastructure": "Test Infrastructure",
"AuditLogging": "Audit Logging",
"AuditLoggingEntityHistories": "Audit Logging & Entity Histories",
"ObjectToObjectMapping": "Object to Object Mapping",
"EmailSMSAbstractions": "Email & SMS Abstractions",

@ -29,15 +29,15 @@
"Authorization": "授权",
"AuthorizationExplanation": "具有用户,角色和细粒度权限系统的高级授权. 建立在Microsoft Identity库上.",
"MultiTenancy": "多租户",
"MultiTenancyExplanation": "SaaS应用程序变得简单! 从数据库到UI的多租户集成.",
"MultiTenancyExplanationShort": "SaaS应用程序变得简单! 从数据库到UI的多租户集成.",
"CrossCuttingConcerns": "横切关注点",
"CrossCuttingConcernsExplanation": "完整的基础架构,用于授权,验证,异常处理,缓存,审计日志记录,事务管理等.",
"CrossCuttingConcernsExplanationShort": "完整的基础架构,用于授权,验证,异常处理,缓存,审计日志记录,事务管理等.",
"BuiltInBundlingMinification": "内置Bundling & Minification",
"BuiltInBundlingMinificationExplanation": "无需使用外部工具进行Bundling & Minification. ABP提供了一种更简单,动态,功能强大,模块化和内置的方式!",
"VirtualFileSystem": "虚拟文件系统",
"VirtualFileSystemExplanation": "将视图,脚本,样式,图像...嵌入到包/库中,并在不同的应用程序中重复使用.",
"Theming": "主题",
"ThemingExplanation": "使用和定制基于bootstrap的标准UI主题,或创建自己的主题.",
"ThemingExplanationShort": "使用和定制基于bootstrap的标准UI主题,或创建自己的主题.",
"BootstrapTagHelpersDynamicForms": "Bootstrap Tag Helpers和动态表单",
"BootstrapTagHelpersDynamicFormsExplanation": "内置的后台作业系统可以集成到Hangfire,RabbitMQ或您喜欢的任何工具中.", //TODO explanation doesn't match.
"HTTPAPIsDynamicProxies": "HTTP APIs和动态代理",
@ -100,7 +100,6 @@
"DistributedEventBus": "分布式事件总线",
"DistributedEventBusWithRabbitMQIntegration": "具有RabbitMQ集成的分布式事件总线",
"TestInfrastructure": "测试基础设施",
"AuditLogging": "审计日志",
"AuditLoggingEntityHistories": "审计日志和实体历史",
"ObjectToObjectMapping": "对象映射",
"EmailSMSAbstractions": "电子邮件和短信抽象",

@ -14,7 +14,7 @@ This tutorial explains how to start ABP from scratch with minimal dependencies.
3. Press to the create button:
![create-aspnet-core-application](D:\Github\abp\docs\en\images\create-aspnet-core-application.png)
![create-aspnet-core-application](images/create-aspnet-core-application.png)
## Install Volo.Abp.AspNetCore.Mvc Package

@ -71,18 +71,13 @@ namespace Volo.Abp.Cli.Commands
}
var outputFolder = commandLineArgs.Options.GetOrNull(Options.OutputFolder.Short, Options.OutputFolder.Long);
if (outputFolder != null)
{
if (!Directory.Exists(outputFolder))
{
Directory.CreateDirectory(outputFolder);
}
outputFolder = Path.GetFullPath(outputFolder);
}
else
outputFolder = Path.Combine(outputFolder != null ? Path.GetFullPath(outputFolder) : Directory.GetCurrentDirectory(),
SolutionName.Parse(commandLineArgs.Target).FullName);
if (!Directory.Exists(outputFolder))
{
outputFolder = Directory.GetCurrentDirectory();
Directory.CreateDirectory(outputFolder);
}
Logger.LogInformation("Output folder: " + outputFolder);

@ -224,15 +224,15 @@ namespace Volo.Abp.EntityFrameworkCore
return;
}
var localEvents = generatesDomainEventsEntity.GetLocalEvents().ToArray();
if (localEvents.Any())
var localEvents = generatesDomainEventsEntity.GetLocalEvents()?.ToArray();
if (localEvents != null && localEvents.Any())
{
changeReport.DomainEvents.AddRange(localEvents.Select(eventData => new DomainEventEntry(entityAsObj, eventData)));
generatesDomainEventsEntity.ClearLocalEvents();
}
var distributedEvents = generatesDomainEventsEntity.GetDistributedEvents().ToArray();
if (distributedEvents.Any())
var distributedEvents = generatesDomainEventsEntity.GetDistributedEvents()?.ToArray();
if (distributedEvents != null && distributedEvents.Any())
{
changeReport.DistributedEvents.AddRange(distributedEvents.Select(eventData => new DomainEventEntry(entityAsObj, eventData)));
generatesDomainEventsEntity.ClearDistributedEvents();

@ -359,8 +359,8 @@ namespace Volo.Abp.Domain.Repositories.MongoDB
return;
}
var localEvents = generatesDomainEventsEntity.GetLocalEvents().ToArray();
if (localEvents.Any())
var localEvents = generatesDomainEventsEntity.GetLocalEvents()?.ToArray();
if (localEvents != null && localEvents.Any())
{
foreach (var localEvent in localEvents)
{
@ -370,8 +370,8 @@ namespace Volo.Abp.Domain.Repositories.MongoDB
generatesDomainEventsEntity.ClearLocalEvents();
}
var distributedEvents = generatesDomainEventsEntity.GetDistributedEvents().ToArray();
if (distributedEvents.Any())
var distributedEvents = generatesDomainEventsEntity.GetDistributedEvents()?.ToArray();
if (distributedEvents != null && distributedEvents.Any())
{
foreach (var distributedEvent in distributedEvents)
{

@ -16,7 +16,7 @@ namespace Volo.Abp.Identity
UserLookupServiceProvider = userLookupServiceProvider;
}
public virtual virtual async Task<UserData> FindByIdAsync(Guid id)
public virtual async Task<UserData> FindByIdAsync(Guid id)
{
var userData = await UserLookupServiceProvider.FindByIdAsync(id);
if (userData == null)
@ -27,7 +27,7 @@ namespace Volo.Abp.Identity
return new UserData(userData);
}
public virtual virtual async Task<UserData> FindByUserNameAsync(string userName)
public virtual async Task<UserData> FindByUserNameAsync(string userName)
{
var userData = await UserLookupServiceProvider.FindByUserNameAsync(userName);
if (userData == null)

@ -117,6 +117,7 @@ namespace AuthServer.Host
commonScopes.Union(new[] { "BackendAdminAppGateway", "IdentityService", "ProductService" }),
new[] { "hybrid" },
commonSecret,
permissions: new[] { IdentityPermissions.Users.Default, "ProductManagement.Product" },
redirectUri: "http://localhost:51954/signin-oidc",
postLogoutRedirectUri: "http://localhost:51954/signout-callback-oidc"
);

@ -54,7 +54,6 @@ namespace BackendAdminApp.Host
})
.AddCookie("Cookies", options =>
{
options.Cookie.Expiration = TimeSpan.FromDays(365);
options.ExpireTimeSpan = TimeSpan.FromDays(365);
})
.AddOpenIdConnect("oidc", options =>
@ -100,6 +99,7 @@ namespace BackendAdminApp.Host
app.UseVirtualFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseAbpRequestLocalization();
app.UseSwagger();
app.UseSwaggerUI(options =>

@ -52,7 +52,6 @@ namespace PublicWebSite.Host
})
.AddCookie("Cookies", options =>
{
options.Cookie.Expiration = TimeSpan.FromDays(365);
options.ExpireTimeSpan = TimeSpan.FromDays(365);
})
.AddOpenIdConnect("oidc", options =>

@ -16,7 +16,7 @@
<PackageReference Include="Serilog.Sinks.File" Version="4.0.0" />
<PackageReference Include="Serilog.Sinks.Elasticsearch" Version="6.5.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0-rc4" />
<PackageReference Include="Ocelot" Version="13.5.2" />
<PackageReference Include="Ocelot" Version="13.8.0" />
<PackageReference Include="IdentityServer4.AccessTokenValidation" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="3.0.0" />

@ -103,7 +103,11 @@ namespace BackendAdminAppGateway.Host
app.MapWhen(
ctx => ctx.Request.Path.ToString().StartsWith("/api/abp/") ||
ctx.Request.Path.ToString().StartsWith("/Abp/"),
app2 => { app2.UseMvcWithDefaultRouteAndArea(); }
app2 =>
{
app2.UseRouting();
app2.UseMvcWithDefaultRouteAndArea();
}
);
app.UseOcelot().Wait();

@ -16,7 +16,7 @@
<PackageReference Include="Serilog.Sinks.File" Version="4.0.0" />
<PackageReference Include="Serilog.Sinks.Elasticsearch" Version="6.5.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0-rc4" />
<PackageReference Include="Ocelot" Version="13.5.2" />
<PackageReference Include="Ocelot" Version="13.8.0" />
<PackageReference Include="IdentityServer4.AccessTokenValidation" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="3.0.0" />

@ -94,7 +94,11 @@ namespace InternalGateway.Host
ctx.Request.Path.ToString().StartsWith("/api/abp/") ||
ctx.Request.Path.ToString().StartsWith("/Abp/") ||
ctx.Request.Path.ToString().StartsWith("/Test/"),
app2 => { app2.UseMvcWithDefaultRouteAndArea(); }
app2 =>
{
app2.UseRouting();
app2.UseMvcWithDefaultRouteAndArea();
}
);
app.UseOcelot().Wait();

@ -16,7 +16,7 @@
<PackageReference Include="Serilog.Sinks.File" Version="4.0.0" />
<PackageReference Include="Serilog.Sinks.Elasticsearch" Version="6.5.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0-rc4" />
<PackageReference Include="Ocelot" Version="13.5.2" />
<PackageReference Include="Ocelot" Version="13.8.0" />
<PackageReference Include="IdentityServer4.AccessTokenValidation" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="3.0.0" />

@ -90,7 +90,11 @@ namespace PublicWebSiteGateway.Host
app.MapWhen(
ctx => ctx.Request.Path.ToString().StartsWith("/api/abp/") ||
ctx.Request.Path.ToString().StartsWith("/Abp/"),
app2 => { app2.UseMvcWithDefaultRouteAndArea(); }
app2 =>
{
app2.UseRouting();
app2.UseMvcWithDefaultRouteAndArea();
}
);
app.UseOcelot().Wait();

Loading…
Cancel
Save