Skip to content

Commit a1efa5b

Browse files
authored
Merge pull request abpframework#2797 from abpframework/Docs-NotFoundPage
Docs not found page
2 parents 85f12f9 + 6b12534 commit a1efa5b

File tree

10 files changed

+449
-315
lines changed

10 files changed

+449
-315
lines changed

framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AbpAuditingOptions.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ public class AbpAuditingOptions
3030
/// Default: true.
3131
/// </summary>
3232
public bool IsEnabledForAnonymousUsers { get; set; }
33-
34-
/// <summary>
35-
/// Audit log on exceptions.
36-
/// Default: true.
33+
34+
/// <summary>
35+
/// Audit log on exceptions.
36+
/// Default: true.
3737
/// </summary>
3838
public bool AlwaysLogOnException { get; set; }
3939

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,35 @@
1-
using Microsoft.AspNetCore.Mvc;
2-
using Microsoft.Extensions.Options;
3-
using Volo.Abp.Auditing;
4-
5-
namespace Volo.Abp.AspNetCore.Mvc.Auditing
6-
{
7-
[Route("api/audit-test")]
8-
[Audited]
9-
public class AuditTestController : AbpController
10-
{
11-
private readonly AbpAuditingOptions _options;
12-
13-
public AuditTestController(IOptions<AbpAuditingOptions> options)
14-
{
15-
_options = options.Value;
16-
}
17-
18-
[Route("audit-success")]
19-
public IActionResult AuditSuccessForGetRequests()
20-
{
21-
return Ok();
22-
}
23-
24-
[Route("audit-fail")]
25-
public IActionResult AuditFailForGetRequests()
26-
{
27-
throw new UserFriendlyException("Exception occurred!");
28-
}
29-
[Route("audit-fail-object")]
30-
public object AuditFailForGetRequestsReturningObject()
31-
{
32-
throw new UserFriendlyException("Exception occurred!");
33-
}
34-
}
35-
}
1+
using Microsoft.AspNetCore.Mvc;
2+
using Microsoft.Extensions.Options;
3+
using Volo.Abp.Auditing;
4+
5+
namespace Volo.Abp.AspNetCore.Mvc.Auditing
6+
{
7+
[Route("api/audit-test")]
8+
[Audited]
9+
public class AuditTestController : AbpController
10+
{
11+
private readonly AbpAuditingOptions _options;
12+
13+
public AuditTestController(IOptions<AbpAuditingOptions> options)
14+
{
15+
_options = options.Value;
16+
}
17+
18+
[Route("audit-success")]
19+
public IActionResult AuditSuccessForGetRequests()
20+
{
21+
return Ok();
22+
}
23+
24+
[Route("audit-fail")]
25+
public IActionResult AuditFailForGetRequests()
26+
{
27+
throw new UserFriendlyException("Exception occurred!");
28+
}
29+
[Route("audit-fail-object")]
30+
public object AuditFailForGetRequestsReturningObject()
31+
{
32+
throw new UserFriendlyException("Exception occurred!");
33+
}
34+
}
35+
}
Lines changed: 65 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,65 @@
1-
using System;
2-
using Microsoft.Extensions.DependencyInjection;
3-
using Microsoft.Extensions.DependencyInjection.Extensions;
4-
using Microsoft.Extensions.Hosting;
5-
using Microsoft.Extensions.Options;
6-
using NSubstitute;
7-
using System.Threading.Tasks;
8-
using Volo.Abp.Auditing;
9-
using Xunit;
10-
11-
namespace Volo.Abp.AspNetCore.Mvc.Auditing
12-
{
13-
public class AuditTestController_Tests : AspNetCoreMvcTestBase
14-
{
15-
private readonly AbpAuditingOptions _options;
16-
private IAuditingStore _auditingStore;
17-
18-
public AuditTestController_Tests()
19-
{
20-
_options = ServiceProvider.GetRequiredService<IOptions<AbpAuditingOptions>>().Value;
21-
_auditingStore = ServiceProvider.GetRequiredService<IAuditingStore>();
22-
}
23-
24-
protected override void ConfigureServices(HostBuilderContext context, IServiceCollection services)
25-
{
26-
_auditingStore = Substitute.For<IAuditingStore>();
27-
services.Replace(ServiceDescriptor.Singleton(_auditingStore));
28-
base.ConfigureServices(context, services);
29-
}
30-
31-
[Fact]
32-
public async Task Should_Trigger_Middleware_And_AuditLog_Success_For_GetRequests()
33-
{
34-
_options.IsEnabledForGetRequests = true;
35-
_options.AlwaysLogOnException = false;
36-
await GetResponseAsync("api/audit-test/audit-success");
37-
await _auditingStore.Received().SaveAsync(Arg.Any<AuditLogInfo>());
38-
}
39-
40-
[Fact]
41-
public async Task Should_Trigger_Middleware_And_AuditLog_Exception_Always()
42-
{
43-
_options.IsEnabled = true;
44-
_options.AlwaysLogOnException = true;
45-
46-
try
47-
{
48-
await GetResponseAsync("api/audit-test/audit-fail", System.Net.HttpStatusCode.Forbidden);
49-
}
50-
catch { }
51-
52-
await _auditingStore.Received().SaveAsync(Arg.Any<AuditLogInfo>());
53-
}
54-
[Fact]
55-
public async Task Should_Trigger_Middleware_And_AuditLog_Exception_When_Returns_Object()
56-
{
57-
_options.IsEnabled = true;
58-
_options.AlwaysLogOnException = true;
59-
60-
await GetResponseAsync("api/audit-test/audit-fail-object", System.Net.HttpStatusCode.Forbidden);
61-
62-
await _auditingStore.Received().SaveAsync(Arg.Any<AuditLogInfo>());
63-
}
64-
}
65-
}
1+
using System;
2+
using Microsoft.Extensions.DependencyInjection;
3+
using Microsoft.Extensions.DependencyInjection.Extensions;
4+
using Microsoft.Extensions.Hosting;
5+
using Microsoft.Extensions.Options;
6+
using NSubstitute;
7+
using System.Threading.Tasks;
8+
using Volo.Abp.Auditing;
9+
using Xunit;
10+
11+
namespace Volo.Abp.AspNetCore.Mvc.Auditing
12+
{
13+
public class AuditTestController_Tests : AspNetCoreMvcTestBase
14+
{
15+
private readonly AbpAuditingOptions _options;
16+
private IAuditingStore _auditingStore;
17+
18+
public AuditTestController_Tests()
19+
{
20+
_options = ServiceProvider.GetRequiredService<IOptions<AbpAuditingOptions>>().Value;
21+
_auditingStore = ServiceProvider.GetRequiredService<IAuditingStore>();
22+
}
23+
24+
protected override void ConfigureServices(HostBuilderContext context, IServiceCollection services)
25+
{
26+
_auditingStore = Substitute.For<IAuditingStore>();
27+
services.Replace(ServiceDescriptor.Singleton(_auditingStore));
28+
base.ConfigureServices(context, services);
29+
}
30+
31+
[Fact]
32+
public async Task Should_Trigger_Middleware_And_AuditLog_Success_For_GetRequests()
33+
{
34+
_options.IsEnabledForGetRequests = true;
35+
_options.AlwaysLogOnException = false;
36+
await GetResponseAsync("api/audit-test/audit-success");
37+
await _auditingStore.Received().SaveAsync(Arg.Any<AuditLogInfo>());
38+
}
39+
40+
[Fact]
41+
public async Task Should_Trigger_Middleware_And_AuditLog_Exception_Always()
42+
{
43+
_options.IsEnabled = true;
44+
_options.AlwaysLogOnException = true;
45+
46+
try
47+
{
48+
await GetResponseAsync("api/audit-test/audit-fail", System.Net.HttpStatusCode.Forbidden);
49+
}
50+
catch { }
51+
52+
await _auditingStore.Received().SaveAsync(Arg.Any<AuditLogInfo>());
53+
}
54+
[Fact]
55+
public async Task Should_Trigger_Middleware_And_AuditLog_Exception_When_Returns_Object()
56+
{
57+
_options.IsEnabled = true;
58+
_options.AlwaysLogOnException = true;
59+
60+
await GetResponseAsync("api/audit-test/audit-fail-object", System.Net.HttpStatusCode.Forbidden);
61+
62+
await _auditingStore.Received().SaveAsync(Arg.Any<AuditLogInfo>());
63+
}
64+
}
65+
}

modules/docs/src/Volo.Docs.Web/DocsWebModule.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
using Volo.Abp.AspNetCore.Mvc.Localization;
66
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap;
77
using Volo.Abp.AspNetCore.Mvc.UI.Bundling;
8+
using Volo.Abp.AspNetCore.Mvc.UI.Packages;
89
using Volo.Abp.AspNetCore.Mvc.UI.Packages.Prismjs;
10+
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared;
911
using Volo.Abp.AutoMapper;
1012
using Volo.Abp.Modularity;
1113
using Volo.Abp.VirtualFileSystem;
@@ -18,7 +20,11 @@ namespace Volo.Docs
1820
{
1921
[DependsOn(
2022
typeof(DocsHttpApiModule),
21-
typeof(AbpAspNetCoreMvcUiBootstrapModule)
23+
typeof(AbpAutoMapperModule),
24+
typeof(AbpAspNetCoreMvcUiBootstrapModule),
25+
typeof(AbpAspNetCoreMvcUiThemeSharedModule),
26+
typeof(AbpAspNetCoreMvcUiPackagesModule),
27+
typeof(AbpAspNetCoreMvcUiBundlingModule)
2228
)]
2329
public class DocsWebModule : AbpModule
2430
{

0 commit comments

Comments
 (0)