using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace PocoDemo
{
public class FilterController:Controller
{
protected DateTime StartTime;
public override void OnActionExecuted(ActionExecutedContext context)
{
var action = context.ActionDescriptor.RouteValues["action"];
if (string.Equals(action, "index", StringComparison.CurrentCultureIgnoreCase))
{
var timespan = DateTime.Now - StartTime;
context.HttpContext.Response.Headers.Add("duration", timespan.TotalMilliseconds.ToString());
}
base.OnActionExecuted(context);
}
public override void OnActionExecuting(ActionExecutingContext context)
{
var action = context.ActionDescriptor.RouteValues["action"];
if (string.Equals(action,"index",StringComparison.CurrentCultureIgnoreCase))
{
StartTime = DateTime.Now;
}
base.OnActionExecuting(context);
}
public IActionResult Index()
{
return Ok("Just processed Filter.Index");
}
}
}