mirror of
https://github.com/RaidMax/IW4M-Admin.git
synced 2025-06-10 23:31:13 -05:00
fix restart command (thanks .net upgrade)
reworking a little bit of stuff to allow depedency injection to start creeping in... it's coming
This commit is contained in:
@ -1,15 +1,29 @@
|
||||
using SharedLibraryCore.Interfaces;
|
||||
using SharedLibraryCore;
|
||||
using SharedLibraryCore.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace IW4MAdmin.Application.Misc
|
||||
{
|
||||
class MiddlewareActionHandler : IMiddlewareActionHandler
|
||||
{
|
||||
private static readonly IDictionary<string, IList<object>> _actions = new Dictionary<string, IList<object>>();
|
||||
private readonly IDictionary<string, IList<object>> _actions;
|
||||
private readonly ILogger _logger;
|
||||
|
||||
public MiddlewareActionHandler(ILogger logger)
|
||||
{
|
||||
_actions = new Dictionary<string, IList<object>>();
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Executes the action with the given name
|
||||
/// </summary>
|
||||
/// <typeparam name="T">Execution return type</typeparam>
|
||||
/// <param name="value">Input value</param>
|
||||
/// <param name="name">Name of action to execute</param>
|
||||
/// <returns></returns>
|
||||
public async Task<T> Execute<T>(T value, string name = null)
|
||||
{
|
||||
string key = string.IsNullOrEmpty(name) ? typeof(T).ToString() : name;
|
||||
@ -22,8 +36,11 @@ namespace IW4MAdmin.Application.Misc
|
||||
{
|
||||
value = await ((IMiddlewareAction<T>)action).Invoke(value);
|
||||
}
|
||||
// todo: probably log this somewhere
|
||||
catch { }
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.WriteWarning($"Failed to invoke middleware action {name}");
|
||||
_logger.WriteDebug(e.GetExceptionInfo());
|
||||
}
|
||||
}
|
||||
|
||||
return value;
|
||||
@ -32,6 +49,13 @@ namespace IW4MAdmin.Application.Misc
|
||||
return value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Registers an action by name
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="actionType">Action type specifier</param>
|
||||
/// <param name="action">Action to perform</param>
|
||||
/// <param name="name">Name of action</param>
|
||||
public void Register<T>(T actionType, IMiddlewareAction<T> action, string name = null)
|
||||
{
|
||||
string key = string.IsNullOrEmpty(name) ? typeof(T).ToString() : name;
|
||||
|
Reference in New Issue
Block a user