From 1e918584d1d11525ef7d13fef47fb5a9b84bd1b1 Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 4 Jun 2020 00:40:19 +0800 Subject: chore(back): Fix some warnings. --- Timeline/Models/Http/ActionContextAccessorExtensions.cs | 14 ++++++++++++++ Timeline/Models/Http/Timeline.cs | 15 +++++---------- Timeline/Models/Http/UserInfo.cs | 5 ++--- 3 files changed, 21 insertions(+), 13 deletions(-) create mode 100644 Timeline/Models/Http/ActionContextAccessorExtensions.cs (limited to 'Timeline/Models') diff --git a/Timeline/Models/Http/ActionContextAccessorExtensions.cs b/Timeline/Models/Http/ActionContextAccessorExtensions.cs new file mode 100644 index 00000000..bcc55c5a --- /dev/null +++ b/Timeline/Models/Http/ActionContextAccessorExtensions.cs @@ -0,0 +1,14 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Infrastructure; +using System; + +namespace Timeline.Models.Http +{ + public static class ActionContextAccessorExtensions + { + public static ActionContext AssertActionContextForUrlFill(this IActionContextAccessor accessor) + { + return accessor.ActionContext ?? throw new InvalidOperationException(Resources.Models.Http.Exception.ActionContextNull); + } + } +} diff --git a/Timeline/Models/Http/Timeline.cs b/Timeline/Models/Http/Timeline.cs index 9e2aefd0..fb767f10 100644 --- a/Timeline/Models/Http/Timeline.cs +++ b/Timeline/Models/Http/Timeline.cs @@ -58,11 +58,8 @@ namespace Timeline.Models.Http public TimelineInfoLinks Resolve(Timeline source, TimelineInfo destination, TimelineInfoLinks destMember, ResolutionContext context) { - if (_actionContextAccessor.ActionContext == null) - throw new InvalidOperationException("No action context, can't fill urls."); - - var urlHelper = _urlHelperFactory.GetUrlHelper(_actionContextAccessor.ActionContext); - + var actionContext = _actionContextAccessor.AssertActionContextForUrlFill(); + var urlHelper = _urlHelperFactory.GetUrlHelper(actionContext); return new TimelineInfoLinks { @@ -85,10 +82,8 @@ namespace Timeline.Models.Http public TimelinePostContentInfo Resolve(TimelinePost source, TimelinePostInfo destination, TimelinePostContentInfo destMember, ResolutionContext context) { - if (_actionContextAccessor.ActionContext == null) - throw new InvalidOperationException("No action context, can't fill urls."); - - var urlHelper = _urlHelperFactory.GetUrlHelper(_actionContextAccessor.ActionContext); + var actionContext = _actionContextAccessor.AssertActionContextForUrlFill(); + var urlHelper = _urlHelperFactory.GetUrlHelper(actionContext); var sourceContent = source.Content; @@ -113,7 +108,7 @@ namespace Timeline.Models.Http } else { - throw new InvalidOperationException("Unknown content type."); + throw new InvalidOperationException(Resources.Models.Http.Exception.UnknownPostContentType); } } } diff --git a/Timeline/Models/Http/UserInfo.cs b/Timeline/Models/Http/UserInfo.cs index b4bf14c1..0acb1a80 100644 --- a/Timeline/Models/Http/UserInfo.cs +++ b/Timeline/Models/Http/UserInfo.cs @@ -37,10 +37,9 @@ namespace Timeline.Models.Http public UserInfoLinks Resolve(User source, UserInfo destination, UserInfoLinks destMember, ResolutionContext context) { - if (_actionContextAccessor.ActionContext == null) - throw new InvalidOperationException("No action context, can't fill urls."); + var actionContext = _actionContextAccessor.AssertActionContextForUrlFill(); + var urlHelper = _urlHelperFactory.GetUrlHelper(actionContext); - var urlHelper = _urlHelperFactory.GetUrlHelper(_actionContextAccessor.ActionContext); var result = new UserInfoLinks { Self = urlHelper.ActionLink(nameof(UserController.Get), nameof(UserController)[0..^nameof(Controller).Length], new { destination.Username }), -- cgit v1.2.3