Files
gtav-src/tools_ng/bin/CruiseControl/WebDashboard/MVC/HtmlFragmentResponse.cs
T
2025-09-29 00:52:08 +02:00

48 lines
1.2 KiB
C#
Executable File

using System.Web;
using ThoughtWorks.CruiseControl.WebDashboard.IO;
namespace ThoughtWorks.CruiseControl.WebDashboard.MVC
{
public class HtmlFragmentResponse : IResponse
{
private readonly string htmlFragment;
private ConditionalGetFingerprint serverFingerprint;
public HtmlFragmentResponse(string htmlFragment)
{
this.htmlFragment = htmlFragment;
}
public string ResponseFragment
{
get { return htmlFragment; }
}
public void Process(HttpResponse response)
{
if (IsClientSideCacheable())
{
AddHeadersToEnable403Cacheing(response);
}
response.Write(htmlFragment);
}
private void AddHeadersToEnable403Cacheing(HttpResponse response)
{
response.AppendHeader("Last-Modified", serverFingerprint.LastModifiedTime.ToString("r"));
response.AppendHeader("ETag", serverFingerprint.ETag);
response.AppendHeader("Cache-Control", "private, max-age=0");
}
private bool IsClientSideCacheable()
{
return !(ConditionalGetFingerprint.NOT_AVAILABLE.Equals(ServerFingerprint));
}
public ConditionalGetFingerprint ServerFingerprint
{
get { return serverFingerprint; }
set { serverFingerprint = value; }
}
}
}