public override void OnActionExecuting(HttpActionContext actionContext) { try { if (actionContext != null) { var requestContext = actionContext.RequestContext; if (requestContext != null && requestContext.RouteData != null) { var route = requestContext.RouteData.Route; if (route != null && route.DataTokens != null) { // check whether route is marked as deprecated if (route.DataTokens.ContainsKey(Infrastructure.RouteCollectionExtensions.DeprecatedKey)) { var request = actionContext.Request; _analytics.DeprecatedApiUsed( route.RouteTemplate, ToString(request.Headers.UserAgent), ToString(request.Method), request.RequestUri.AbsolutePath); } } } } base.OnActionExecuting(actionContext); } catch (Exception ex) { _traceFactory.GetTracer().TraceWarning("Trace deprecated error: {0}", ex.ToString()); } }