
Untitled
By: a guest on
Aug 1st, 2012 | syntax:
None | size: 0.77 KB | hits: 4 | expires: Never
/// <summary>
/// This filter will manage the session for all of the controllers that needs a Raven Document Session.
/// It does so by automatically injecting a session to the first public property of type IDocumentSession available
/// on the controller.
/// </summary>
public class RavenActionFilterAttribute : ActionFilterAttribute {
public override void OnActionExecuting(HttpActionContext filterContext) {
filterContext.Request.Properties["RavenDocumentStore"] =
DocumentStoreHolder.TryAddSession(filterContext.ControllerContext.Controller);
}
public override void OnActionExecuted(HttpActionExecutedContext filterContext)
{
DocumentStoreHolder
.TryComplete(filterContext.ActionContext.ControllerContext.Controller, filterContext.Exception == null);
}
}