Source code for ReFreSH.MobileSuit.Core.Middlewares.FinalizeMiddleware
from .. import SuitBuildUtils
from ..ISuitMiddleware import ISuitMiddleware, SuitRequestDelegate
from ..Services.HistoryService import IHistoryService
from ..SuitContext import SuitContext
from ...RequestStatus import RequestStatus
[docs]
class FinalizeMiddleware(ISuitMiddleware):
"""Middleware to finalize the command execution."""
[docs]
async def InvokeAsync(self, context: SuitContext, nextStep: SuitRequestDelegate) -> None:
"""Inherited from base class."""
if context.RequestStatus == RequestStatus.NotHandled:
context.RequestStatus = RequestStatus.CommandNotFound
history = context.ServiceProvider.GetRequiredService(IHistoryService)
history.Response = context.Response
history.Status = {
RequestStatus.Handled: RequestStatus.Ok,
RequestStatus.OnExit: RequestStatus.OnExit,
RequestStatus.NotHandled: RequestStatus.CommandNotFound,
RequestStatus.Running: RequestStatus.Running,
}.get(context.RequestStatus,context.RequestStatus)
if not (context.Properties.get(SuitBuildUtils.SuitCommandTarget) == SuitBuildUtils.SuitCommandTargetAppTask):
context.Dispose()
await nextStep(context)