27 lines
692 B
C#
Executable File
27 lines
692 B
C#
Executable File
using ThoughtWorks.CruiseControl.WebDashboard.IO;
|
|
|
|
namespace ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise
|
|
{
|
|
public class CachingActionProxy : IAction
|
|
{
|
|
private readonly IAction proxiedAction;
|
|
private readonly IResponseCache cache;
|
|
|
|
public CachingActionProxy(IAction proxiedAction, IResponseCache cache)
|
|
{
|
|
this.proxiedAction = proxiedAction;
|
|
this.cache = cache;
|
|
}
|
|
|
|
public IResponse Execute(IRequest request)
|
|
{
|
|
IResponse cachedResponse = cache.Get(request);
|
|
if (cachedResponse != null)
|
|
return cachedResponse;
|
|
|
|
IResponse response = proxiedAction.Execute(request);
|
|
cache.Insert(request, response);
|
|
return response;
|
|
}
|
|
}
|
|
} |