protected void SendTemplateResponse(string TemplateName, Type ModelType, object Model, string CacheFileName = "")
{
// Send Response
HttpResponse Response = Client.Response;
Response.ContentType = "text/html";
Response.Response.AddHeader("Cache-Control", "no-cache, no-store, must-revalidate");
Response.Response.AddHeader("Expires", "0");
Response.ResponseBody.Append(Engine.Razor.Run(TemplateName + ".cshtml", ModelType, Model));
Response.Send();
// Process cache
if (Program.Config.BF2S_CacheEnabled && !String.IsNullOrWhiteSpace(CacheFileName))
{
try
{
// Make sure we have loaded this file
if (CacheFile == null)
CacheFile = new FileInfo(Path.Combine(Program.RootPath, "Web", "Bf2Stats", "Cache", CacheFileName + ".html"));
using (FileStream Stream = CacheFile.Open(FileMode.OpenOrCreate, FileAccess.Write))
using (StreamWriter Writer = new StreamWriter(Stream))
{
Writer.BaseStream.SetLength(0);
Writer.Write(Response.ResponseBody.ToString());
Writer.Flush();
}
// Manually set write time!!!
CacheFile.LastWriteTime = DateTime.Now;
}
catch (Exception e)
{
Program.ErrorLog.Write("WARNING: [Controller.CreateCacheFile] " + e.Message);
}
}
}