using System; using ln.http.resources; using System.IO; using ln.skyscanner.entities; using ln.skyscanner.checks; using ln.types.net; using System.Linq; using ln.skyscanner.perfvalue; namespace ln.skyscanner.http { public class SkyScannerHttpApplication : ResourceApplication { public SkyScanner SkyScanner { get; } public String BasePath { get; private set; } public String TemplatesBasePath { get; private set; } ReflectiveResource refChecker; ReflectiveResource refEntities; public SkyScannerHttpApplication(SkyScanner skyScanner) { SkyScanner = skyScanner; BasePath = Path.GetFullPath("."); TemplatesBasePath = Path.Combine(BasePath, "templates", "static"); /* Development hint */ if (Directory.Exists("../../templates/static")) TemplatesBasePath = Path.Combine(BasePath, "..", "..", "templates", "static"); DirectoryResource staticTemplates = new DirectoryResource(RootResource, TemplatesBasePath); staticTemplates.ResourceTypeHook = ResourceTypeHook; staticTemplates.DefaultResource = staticTemplates.GetResource("index.html"); RootResource.DefaultResource = staticTemplates; SkyScannerHttpApi api = new SkyScannerHttpApi(this); } private Resource ResourceTypeHook(DirectoryResource directoryResource, FileInfo fileInfo) { if (fileInfo.Extension.Equals(".html")) return new TemplateResource(directoryResource, fileInfo.FullName); return null; } } }