Leo
Leo

Reputation: 930

APIController "Executed" method?

In an ApiController action I need to close a connection to a database as soon as the action is finished executing.

Under a controller I override OnActionExecuted to accomplish this.

How would I accomplish this under an ApiController action?

Thanks

Upvotes: 4

Views: 3619

Answers (1)

Darin Dimitrov
Darin Dimitrov

Reputation: 1038930

You could override the ExecuteAsync method:

public override Task<HttpResponseMessage> ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken)
{
    return base
        .ExecuteAsync(controllerContext, cancellationToken)
        .ContinueWith(t => 
        {
            // the controller action has finished executing, 
            // your custom code could come here ...

            return t.Result;
        });
}

Upvotes: 7

Related Questions