// GET api/employees //public IEnumerable<Employee> Get() //{ // return list; //} public IEnumerable <Employee> Get() { IEnumerable <Employee> employees = null; if (traceWriter != null) { traceWriter.TraceBeginEnd( Request, TraceCategories.FormattingCategory, System.Web.Http.Tracing.TraceLevel.Info, "EmployeesController", "Get", beginTrace: (tr) => { tr.Message = "Entering Get"; }, execute: () => { System.Threading.Thread.Sleep(1000); // Simulate delay employees = list; }, endTrace: (tr) => { tr.Message = "Leaving Get"; }, errorTrace: null); } return(employees); }
public CorsResult EvaluatePolicy(CorsRequestContext requestContext, CorsPolicy policy) { CorsResult corsResult = null; _traceWriter.TraceBeginEnd( null, TraceCategories.CorsCategory, TraceLevel.Info, _innerCorsEngine.GetType().Name, MethodName, beginTrace: null, execute: () => { corsResult = _innerCorsEngine.EvaluatePolicy(requestContext, policy); }, endTrace: (tr) => { if (corsResult != null) { tr.Message = String.Format(CultureInfo.CurrentCulture, SRResources.TraceEndCorsResultReturned, corsResult); } else { tr.Message = SRResources.TraceEndNoCorsResultReturned; } }, errorTrace: null); return(corsResult); }
HttpControllerDescriptor IHttpControllerSelector.SelectController(HttpRequestMessage request) { HttpControllerDescriptor controllerDescriptor = null; _traceWriter.TraceBeginEnd( request, TraceCategories.ControllersCategory, TraceLevel.Info, _innerSelector.GetType().Name, SelectControllerMethodName, beginTrace: (tr) => { tr.Message = Error.Format( SRResources.TraceRouteMessage, FormattingUtilities.RouteToString(request.GetRouteData())); }, execute: () => { controllerDescriptor = _innerSelector.SelectController(request); }, endTrace: (tr) => { tr.Message = controllerDescriptor == null ? SRResources.TraceNoneObjectMessage : controllerDescriptor.ControllerName; }, errorTrace: null); if (controllerDescriptor != null && !(controllerDescriptor is HttpControllerDescriptorTracer)) { return(new HttpControllerDescriptorTracer(controllerDescriptor.Configuration, controllerDescriptor.ControllerName, controllerDescriptor.ControllerType, controllerDescriptor, _traceWriter)); } return(controllerDescriptor); }
public ICorsPolicyProvider GetCorsPolicyProvider(HttpRequestMessage request) { ICorsPolicyProvider policyProvider = null; _traceWriter.TraceBeginEnd( request, TraceCategories.CorsCategory, TraceLevel.Info, _innerPolicyProviderFactory.GetType().Name, MethodName, beginTrace: (tr) => { tr.Message = String.Format(CultureInfo.CurrentCulture, SRResources.TraceCorsRequestContext, request.GetCorsRequestContext()); }, execute: () => { policyProvider = _innerPolicyProviderFactory.GetCorsPolicyProvider(request); }, endTrace: (tr) => { if (policyProvider != null) { tr.Message = String.Format(CultureInfo.CurrentCulture, SRResources.TraceEndPolicyProviderReturned, policyProvider); } else { tr.Message = SRResources.TraceEndNoPolicyProviderReturned; } }, errorTrace: null); if (policyProvider != null) { return(new CorsPolicyProviderTracer(policyProvider, _traceWriter)); } return(null); }
HttpActionDescriptor IHttpActionSelector.SelectAction(HttpControllerContext controllerContext) { HttpActionDescriptor actionDescriptor = null; _traceWriter.TraceBeginEnd( controllerContext.Request, TraceCategories.ActionCategory, TraceLevel.Info, _innerSelector.GetType().Name, SelectActionMethodName, beginTrace: null, execute: () => { actionDescriptor = _innerSelector.SelectAction(controllerContext); }, endTrace: (tr) => { tr.Message = Error.Format( SRResources.TraceActionSelectedMessage, FormattingUtilities.ActionDescriptorToString(actionDescriptor)); }, errorTrace: null); // Intercept returned HttpActionDescriptor with a tracing version if (actionDescriptor != null && !(actionDescriptor is HttpActionDescriptorTracer)) { return(new HttpActionDescriptorTracer(controllerContext, actionDescriptor, _traceWriter)); } return(actionDescriptor); }
public override IHttpController CreateController(HttpRequestMessage request) { IHttpController controller = null; _traceWriter.TraceBeginEnd( request, TraceCategories.ControllersCategory, TraceLevel.Info, _innerDescriptor.GetType().Name, CreateControllerMethodName, beginTrace: null, execute: () => { controller = _innerDescriptor.CreateController(request); }, endTrace: (tr) => { tr.Message = controller == null ? SRResources.TraceNoneObjectMessage : HttpControllerTracer.ActualControllerType(controller).FullName; }, errorTrace: null); if (controller != null && !(controller is HttpControllerTracer)) { return(new HttpControllerTracer(request, controller, _traceWriter)); } return(controller); }
public override void OnAuthorization(HttpActionContext actionContext) { _traceStore.TraceBeginEnd( actionContext.ControllerContext.Request, TraceCategories.FiltersCategory, TraceLevel.Info, _innerFilter.GetType().Name, OnAuthorizationMethodName, beginTrace: (tr) => { HttpResponseMessage response = actionContext.Response; if (response != null) { tr.Status = response.StatusCode; } }, execute: () => { _innerFilter.OnAuthorization(actionContext); }, endTrace: (tr) => { HttpResponseMessage response = actionContext.Response; if (response != null) { tr.Status = response.StatusCode; } }, errorTrace: (tr) => { HttpResponseMessage response = actionContext.Response; if (response != null) { tr.Status = response.StatusCode; } }); }
IHttpController IHttpControllerActivator.Create(HttpControllerContext controllerContext, Type controllerType) { IHttpController controller = null; _traceWriter.TraceBeginEnd( controllerContext.Request, TraceCategories.ControllersCategory, TraceLevel.Info, _innerActivator.GetType().Name, CreateMethodName, beginTrace: null, execute: () => { controller = _innerActivator.Create(controllerContext, controllerType); }, endTrace: (tr) => { tr.Message = controller == null ? SRResources.TraceNoneObjectMessage : controller.GetType().FullName; }, errorTrace: null); if (controller != null && !(controller is HttpControllerTracer)) { controller = new HttpControllerTracer(controller, _traceWriter); } return(controller); }
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) { _traceWriter.TraceBeginEnd( actionExecutedContext.Request, TraceCategories.FiltersCategory, TraceLevel.Info, _innerFilter.GetType().Name, ActionExecutedMethodName, beginTrace: (tr) => { tr.Message = Error.Format( SRResources.TraceActionFilterMessage, FormattingUtilities.ActionDescriptorToString( actionExecutedContext.ActionContext.ActionDescriptor)); tr.Exception = actionExecutedContext.Exception; HttpResponseMessage response = actionExecutedContext.Response; if (response != null) { tr.Status = response.StatusCode; } }, execute: () => { _innerFilter.OnActionExecuted(actionExecutedContext); }, endTrace: (tr) => { tr.Exception = actionExecutedContext.Exception; HttpResponseMessage response = actionExecutedContext.Response; if (response != null) { tr.Status = response.StatusCode; } }, errorTrace: (tr) => { HttpResponseMessage response = actionExecutedContext.Response; if (response != null) { tr.Status = response.StatusCode; } }); }
public ContentNegotiationResult Negotiate( Type type, HttpRequestMessage request, IEnumerable <MediaTypeFormatter> formatters ) { ContentNegotiationResult result = null; _traceWriter.TraceBeginEnd( request, TraceCategories.FormattingCategory, TraceLevel.Info, _innerNegotiator.GetType().Name, NegotiateMethodName, beginTrace: (tr) => { tr.Message = Error.Format( SRResources.TraceNegotiateFormatter, type.Name, FormattingUtilities.FormattersToString(formatters) ); }, execute: () => { result = _innerNegotiator.Negotiate(type, request, formatters); }, endTrace: (tr) => { tr.Message = Error.Format( SRResources.TraceSelectedFormatter, result == null ? SRResources.TraceNoneObjectMessage : MediaTypeFormatterTracer .ActualMediaTypeFormatter(result.Formatter) .GetType().Name, result == null || result.MediaType == null ? SRResources.TraceNoneObjectMessage : result.MediaType.ToString() ); }, errorTrace: null ); if (result != null) { result.Formatter = MediaTypeFormatterTracer.CreateTracer( result.Formatter, _traceWriter, request ); } return(result); }
IHttpController IHttpControllerFactory.CreateController(HttpControllerContext controllerContext, string controllerName) { IHttpController controller = null; _traceWriter.TraceBeginEnd( controllerContext.Request, TraceCategories.ControllersCategory, TraceLevel.Info, _innerFactory.GetType().Name, CreateControllerMethodName, beginTrace: (tr) => { tr.Message = Error.Format( SRResources.TraceControllerNameAndRouteMessage, controllerName, FormattingUtilities.RouteToString(controllerContext.RouteData)); }, execute: () => { controller = _innerFactory.CreateController(controllerContext, controllerName); }, endTrace: (tr) => { tr.Message = controller == null ? SRResources.TraceNoneObjectMessage : HttpControllerTracer.ActualControllerType(controller).FullName; }, errorTrace: null); if (controller != null && !(controller is HttpControllerTracer)) { controller = new HttpControllerTracer(controller, _traceWriter); } return(controller); }
// Trace beginning and end of GetControllerTypes() invocations. Error tracing should never occur since base // implementation swallows all exceptions. public override ICollection <Type> GetControllerTypes(IAssembliesResolver assembliesResolver) { ICollection <Type> result = null; _traceWriter.TraceBeginEnd(request: null, category: TraceCategories.ControllersCategory, level: TraceLevel.Debug, operatorName: _innerTypeName, operationName: "GetControllerTypes", beginTrace: null, execute: () => { result = _innerResolver.GetControllerTypes(assembliesResolver); }, endTrace: null, errorTrace: null); return(result); }
void IDisposable.Dispose() { IDisposable disposable = _innerController as IDisposable; if (disposable != null) { _traceWriter.TraceBeginEnd( _request, TraceCategories.ControllersCategory, TraceLevel.Info, _innerController.GetType().Name, DisposeMethodName, beginTrace: null, execute: disposable.Dispose, endTrace: null, errorTrace: null); } }
// GET api/employees/12345 public Employee Get(int id) { Employee employee = null; if (traceWriter != null) { traceWriter.TraceBeginEnd( Request, TraceCategories.FormattingCategory, TraceLevel.Info, "EmployeesController", "Get", beginTrace: (tr) => { tr.Message = "Entering Get"; }, execute: () => { System.Threading.Thread.Sleep(1000); //Simulate delay employee = list.First(e => e.Id == id); }, endTrace: (tr) => { tr.Message = "Leaving Get"; }, errorTrace: null); /* * traceWriter.Info(Request, "EmployeesController", String.Format($"Getting employee {id}")); * traceWriter.Trace(Request, * "System.Web.Http.Conrollers", System.Web.Http.Tracing.TraceLevel.Info, * (traceRecord) => * { * traceRecord.Message = String.Format($"Getting employee {id}"); * traceRecord.Operation = "Get(int)"; * traceRecord.Operator = "EmployeeController"; * }); */ } return(employee); }
public override void OnException(HttpActionExecutedContext actionExecutedContext) { _traceStore.TraceBeginEnd( actionExecutedContext.Request, TraceCategories.FiltersCategory, TraceLevel.Info, _innerFilter.GetType().Name, OnExceptionMethodName, beginTrace: (tr) => { HttpResponseMessage response = actionExecutedContext.Response; if (response != null) { tr.Status = response.StatusCode; } }, execute: () => { _innerFilter.OnException(actionExecutedContext); }, endTrace: (tr) => { Exception returnedException = actionExecutedContext.Exception; tr.Level = returnedException == null ? TraceLevel.Info : TraceLevel.Error; tr.Exception = returnedException; HttpResponseMessage response = actionExecutedContext.Response; if (response != null) { tr.Status = response.StatusCode; } }, errorTrace: (tr) => { HttpResponseMessage response = actionExecutedContext.Response; if (response != null) { tr.Status = response.StatusCode; } }); }