public override async Task RunAsync(IWwtContext context, CancellationToken token) { string query = context.Request.Params["Q"]; string[] values = query.Split(','); int level = Convert.ToInt32(values[0]); int tileX = Convert.ToInt32(values[1]); int tileY = Convert.ToInt32(values[2]); string type = values[3]; int demSize = 513 * 2; string wwtDemDir = _options.WWTDEMDir; string filename = String.Format(wwtDemDir + @"\toast\moon\Chunks\{0}\{1}.chunk", level, tileY); if (File.Exists(filename)) { byte[] data = new byte[demSize]; FileStream fs = File.OpenRead(filename); fs.Seek((long)(demSize * tileX), SeekOrigin.Begin); fs.Read(data, 0, demSize); fs.Close(); await context.Response.OutputStream.WriteAsync(data, 0, demSize, token); } else { byte[] data = new byte[demSize]; await context.Response.OutputStream.WriteAsync(data, 0, demSize, token); } context.Response.End(); }
public override void Run(IWwtContext context) { string query = context.Request.Params["Q"]; string[] values = query.Split(','); //int level = Convert.ToInt32(values[0]); //int tileX = Convert.ToInt32(values[1]); //int tileY = Convert.ToInt32(values[2]); string alt = context.Request.Params["alt"]; string proj = context.Request.Params["proj"]; float altitude = float.Parse(alt); int demSize = 33 * 33; if (proj.ToLower().StartsWith("t")) { demSize = 17 * 17; } BinaryWriter bw = new BinaryWriter(context.Response.OutputStream); for (int i = 0; i < demSize; i++) { bw.Write(altitude); } bw = null; context.Response.OutputStream.Flush(); context.Response.End(); }
public override void Run(IWwtContext context) { string query = context.Request.Params["Q"]; string[] values = query.Split(','); int level = Convert.ToInt32(values[0]); int tileX = Convert.ToInt32(values[1]); int tileY = Convert.ToInt32(values[2]); if (level < 18) { // context.Response.ContentType = "image/png"; UInt32 index = ComputeHash(level, tileX, tileY) % 400; Stream s = PlateFile2.GetFileStream(String.Format(@"\\wwt-mars\marsroot\dem\marsToastDem_{0}.plate", index), -1, level, tileX, tileY); if (s == null || (int)s.Length == 0) { context.Response.Clear(); context.Response.ContentType = "text/plain"; context.Response.Write("No image"); context.Response.End(); return; } int length = (int)s.Length; byte[] data = new byte[length]; s.Read(data, 0, length); context.Response.OutputStream.Write(data, 0, length); context.Response.Flush(); context.Response.End(); return; } }
public override async Task RunAsync(IWwtContext context, CancellationToken token) { string query = context.Request.Params["Q"]; string[] values = query.Split(','); int level = Convert.ToInt32(values[0]); int tileX = Convert.ToInt32(values[1]); int tileY = Convert.ToInt32(values[2]); if (level < 18) { using (var s = await _plateTiles.GetStreamAsync(@"\\wwtfiles.file.core.windows.net\wwtmars\MarsDem", "marsToastDem.plate", -1, level, tileX, tileY, token)) { if (s == null || (int)s.Length == 0) { context.Response.Clear(); context.Response.ContentType = "text/plain"; await context.Response.WriteAsync("No image", token); context.Response.End(); } else { await s.CopyToAsync(context.Response.OutputStream, token); context.Response.Flush(); context.Response.End(); } } } }
public override void Run(IWwtContext context) { string etag = context.Request.Headers["If-None-Match"]; context.Response.ClearHeaders(); context.Response.Clear(); context.Response.ContentType = "application/x-wtml"; string toursXML = null; UpdateCacheEx(); toursXML = (string)HttpContext.Current.Cache["WWTXMLTours"]; if (toursXML != null) { int version = (int)HttpContext.Current.Cache.Get("Version"); string newEtag = version.ToString(); if (newEtag != etag) { context.Response.AddHeader("etag", newEtag); context.Response.AddHeader("Cache-Control", "no-cache"); context.Response.Write(toursXML); } else { context.Response.Status = "304 Not Modified"; } } context.Response.End(); }
public override void Run(IWwtContext context) { double lat = double.Parse(context.Request.Params["lat"]); double lng = double.Parse(context.Request.Params["lng"]); double ra = double.Parse(context.Request.Params["ra"]); double dec = double.Parse(context.Request.Params["dec"]); double time = 0; int width = int.Parse(context.Request.Params["width"]); int height = int.Parse(context.Request.Params["height"]); if (context.Request.Params["jtime"] != null) { time = double.Parse(context.Request.Params["jtime"]); } else { if (context.Request.Params["time"] != null) { time = Calc.ToJulian(DateTime.Parse(context.Request.Params["time"])); } else { time = Calc.ToJulian(DateTime.Now.ToUniversalTime()); } } Bitmap chart = GetChart(lat, lng, time, ra, dec, width, height); chart.Save(context.Response.OutputStream, ImageFormat.Png); chart.Dispose(); }
public override Task RunAsync(IWwtContext context, CancellationToken token) { if (!context.Request.ContainsCookie("fullclient") && context.Request.Params["wtml"] == null) { context.Response.Redirect("http://www.worldwidetelescope.org/webclient/default.aspx?wtml=" + WebUtility.UrlEncode(context.Request.Url.ToString() + "&wtml=true")); return(Task.CompletedTask); } string name = context.Request.Params["object"]; double ra = 0; if (context.Request.Params["ra"] != null) { ra = Math.Max(0, Math.Min(24.0, Convert.ToDouble(context.Request.Params["ra"]))); } double dec = 0; if (context.Request.Params["dec"] != null) { dec = Math.Max(-90, Math.Min(90, Convert.ToDouble(context.Request.Params["dec"]))); } double zoom = .25; if (context.Request.Params["zoom"] != null) { zoom = Math.Max(0.001373291015625, Math.Min(360, Convert.ToDouble(context.Request.Params["zoom"]))); } string xml = string.Format("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Folder Group=\"Goto\">\n<Place Name=\"{0}\" RA=\"{1}\" Dec=\"{2}\" ZoomLevel=\"{3}\" DataSetType=\"Sky\"/>\n</Folder>", name, ra, dec, zoom); return(context.Response.WriteAsync(xml, token)); }
public override void Run(IWwtContext context) { string query = context.Request.Params["Q"]; string[] values = query.Split(','); int level = Convert.ToInt32(values[0]); int tileX = Convert.ToInt32(values[1]); int tileY = Convert.ToInt32(values[2]); if (level < 18) { Stream s = PlateFile2.GetFileStream(@"\\wwtfiles.file.core.windows.net\wwtmars\MarsDem\marsToastDem.plate", -1, level, tileX, tileY); if (s == null || (int)s.Length == 0) { context.Response.Clear(); context.Response.ContentType = "text/plain"; context.Response.Write("No image"); context.Response.End(); return; } int length = (int)s.Length; byte[] data = new byte[length]; s.Read(data, 0, length); context.Response.OutputStream.Write(data, 0, length); context.Response.Flush(); context.Response.End(); return; } }
public override void Run(IWwtContext context) { string query = context.Request.Params["Q"]; string[] values = query.Split(','); int level = Convert.ToInt32(values[0]); int tileX = Convert.ToInt32(values[1]); int tileY = Convert.ToInt32(values[2]); string type = values[3]; int demSize = 513 * 2; string wwtDemDir = ConfigurationManager.AppSettings["WWTDEMDir"]; string filename = String.Format(wwtDemDir + @"\toast\moon\Chunks\{0}\{1}.chunk", level, tileY); if (File.Exists(filename)) { byte[] data = new byte[demSize]; FileStream fs = File.OpenRead(filename); fs.Seek((long)(demSize * tileX), SeekOrigin.Begin); fs.Read(data, 0, demSize); fs.Close(); context.Response.OutputStream.Write(data, 0, demSize); context.Response.OutputStream.Flush(); } else { byte[] data = new byte[demSize]; context.Response.OutputStream.Write(data, 0, demSize); context.Response.OutputStream.Flush(); } context.Response.End(); }
public override void Run(IWwtContext context) { string query = context.Request.Params["Q"]; string[] values = query.Split(','); int level = Convert.ToInt32(values[0]); int tileX = Convert.ToInt32(values[1]); int tileY = Convert.ToInt32(values[2]); string file = "2massoctset"; string wwtTilesDir = ConfigurationManager.AppSettings["WWTTilesDir"]; if (level < 8) { context.Response.ContentType = "image/png"; Stream s = PlateTilePyramid.GetFileStream(String.Format(wwtTilesDir + "\\{0}.plate", file), level, tileX, tileY); int length = (int)s.Length; byte[] data = new byte[length]; s.Read(data, 0, length); context.Response.OutputStream.Write(data, 0, length); context.Response.Flush(); context.Response.End(); return; } }
public override void Run(IWwtContext context) { string returnString = "Erorr: No URL Specified"; string url = ""; if (context.Request.Params["targeturl"] != null) { url = context.Request.Params["targeturl"]; try { if (url.ToLower().StartsWith("http") && !url.Contains("127.0.0.1") && !url.ToLower().Contains("localhost")) { Uri target = new Uri(url); ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; using (WebClient wc = new WebClient()) { byte[] data = wc.DownloadData(url); context.Response.ContentType = wc.ResponseHeaders["Content-type"].ToString(); int length = data.Length; context.Response.OutputStream.Write(data, 0, length); } } } catch (System.Exception e) { returnString = e.Message; context.Response.Write(returnString); } } }
public override void Run(IWwtContext context) { //if (context.Request.Cookies["alphakey"] != null && context.Request.Params["wtml"] == null) if (context.Request.Cookies["fullclient"] == null && context.Request.Params["wtml"] == null) { context.Response.Redirect("http://www.worldwidetelescope.org/webclient/default.aspx?wtml=" + HttpUtility.UrlEncode(context.Request.Url.ToString() + "&wtml=true")); return; } string name = context.Request.Params["object"]; double ra = 0; if (context.Request.Params["ra"] != null) { ra = Math.Max(0, Math.Min(24.0, Convert.ToDouble(context.Request.Params["ra"]))); } double dec = 0; if (context.Request.Params["dec"] != null) { dec = Math.Max(-90, Math.Min(90, Convert.ToDouble(context.Request.Params["dec"]))); } double zoom = .25; if (context.Request.Params["zoom"] != null) { zoom = Math.Max(0.001373291015625, Math.Min(360, Convert.ToDouble(context.Request.Params["zoom"]))); } string xml = string.Format("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Folder Group=\"Goto\">\n<Place Name=\"{0}\" RA=\"{1}\" Dec=\"{2}\" ZoomLevel=\"{3}\" DataSetType=\"Sky\"/>\n</Folder>", name, ra, dec, zoom); context.Response.Write(xml); }
public override void Run(IWwtContext context) { context.Response.AddHeader("Cache-Control", "no-cache"); string webDir = ConfigurationManager.AppSettings["WWTWEBDIR"]; context.Response.WriteFile(webDir + @"\wwt2\version.txt"); }
public override async Task RunAsync(IWwtContext context, CancellationToken token) { string query = context.Request.Params["Q"]; string[] values = query.Split(','); int level = Convert.ToInt32(values[0]); int tileX = Convert.ToInt32(values[1]); int tileY = Convert.ToInt32(values[2]); if (level < 19) { context.Response.ContentType = "image/png"; UInt32 index = ComputeHash(level, tileX, tileY) % 300; using (Stream s = await _plateTiles.GetStreamAsync(@"\\wwt-mars\marsroot\hirise", $"hiriseV5_{index}.plate", -1, level, tileX, tileY, token)) { if (s == null || (int)s.Length == 0) { context.Response.Clear(); context.Response.ContentType = "text/plain"; await context.Response.WriteAsync("No image", token); context.Response.End(); return; } await s.CopyToAsync(context.Response.OutputStream, token); context.Response.Flush(); context.Response.End(); return; } } }
public override void Run(IWwtContext context) { string etag = context.Request.Headers["If-None-Match"]; string filename = ""; string webDir = Path.Combine(ConfigurationManager.AppSettings["DataDir"], "data"); if (context.Request.Params["Q"] != null) { string query = context.Request.Params["Q"]; query = query.Replace("..", ""); query = query.Replace("\\", ""); query = query.Replace("/", ""); filename = Path.Combine(webDir, query + ".txt"); } else if (context.Request.Params["X"] != null) { context.Response.Clear(); context.Response.ContentType = "application/xml"; string query = context.Request.Params["X"]; query = query.Replace("..", ""); query = query.Replace("\\", ""); query = query.Replace("/", ""); filename = Path.Combine(webDir, query + ".xml"); } else if (context.Request.Params["W"] != null) { context.Response.Clear(); context.Response.ContentType = "application/xml"; string query = context.Request.Params["W"]; query = query.Replace("..", ""); query = query.Replace("\\", ""); query = query.Replace("/", ""); filename = Path.Combine(webDir, query + ".wtml"); } if (!string.IsNullOrEmpty(filename)) { var fi = new FileInfo(filename); fi.LastWriteTimeUtc.ToString(); string newEtag = fi.LastWriteTimeUtc.ToString(); if (newEtag != etag) { context.Response.AddHeader("etag", fi.LastWriteTimeUtc.ToString()); context.Response.AddHeader("Cache-Control", "no-cache"); context.Response.WriteFile(filename); } else { context.Response.Status = "304 Not Modified"; } } }
public override void Run(IWwtContext context) { string query = context.Request.Params["Q"]; string[] values = query.Split(','); int level = Convert.ToInt32(values[0]); int tileX = Convert.ToInt32(values[1]); int tileY = Convert.ToInt32(values[2]); double tileWidth = (4 / (Math.Pow(2, level))); double Sy = ((double)tileY * tileWidth) - 2; double Fy = Sy + tileWidth; double Sx = ((double)tileX * tileWidth) - 4; double Fx = Sx + tileWidth; context.Response.Clear(); Bitmap b = new Bitmap(256, 256); double x, y, x1, y1, xx, xmin, xmax, ymin, ymax = 0.0; int looper, s, z = 0; double intigralX, intigralY = 0.0; xmin = Sx; ymin = Sy; xmax = Fx; ymax = Fy; intigralX = (xmax - xmin) / 256; intigralY = (ymax - ymin) / 256; x = xmin; for (s = 0; s < 256; s++) { y = ymin; for (z = 0; z < 256; z++) { x1 = 0; y1 = 0; looper = 0; while (looper < 2048 && ((x1 * x1) + (y1 * y1)) < 4) { looper++; xx = (x1 * x1) - (y1 * y1) + x; y1 = 2 * x1 * y1 + y; x1 = xx; } b.SetPixel(s, z, ((looper % 2) == 1) ? Color.White : Color.Black); y += intigralY; } x += intigralX; } b.Save(context.Response.OutputStream, ImageFormat.Jpeg); b.Dispose(); context.Response.End(); }
public override async Task RunAsync(IWwtContext context, CancellationToken token) { string query = context.Request.Params["Q"]; string[] values = query.Split(','); int level = Convert.ToInt32(values[0]); int tileX = Convert.ToInt32(values[1]); int tileY = Convert.ToInt32(values[2]); if (level > 20) { await context.Response.WriteAsync("No image", token); context.Response.Close(); } else if (level < 8) { context.Response.ContentType = "image/png"; using (Stream s = await _plateTiles.GetStreamAsync(_options.WwtTilesDir, "BmngMerBase.plate", level, tileX, tileY, token)) { await s.CopyToAsync(context.Response.OutputStream, token); context.Response.Flush(); context.Response.End(); } } else if (level < 10) { int L = level; int X = tileX; int Y = tileY; int powLev5Diff = (int)Math.Pow(2, L - 2); int X32 = X / powLev5Diff; int Y32 = Y / powLev5Diff; int L5 = L - 2; int X5 = X % powLev5Diff; int Y5 = Y % powLev5Diff; context.Response.ContentType = "image/png"; using (Stream s = await _plateTiles.GetStreamAsync(_options.WwtTilesDir, $"BmngMerL2X{X32}Y{Y32}.plate", L5, X5, Y5, token)) { await s.CopyToAsync(context.Response.OutputStream, token); context.Response.Flush(); context.Response.End(); } } else { using var veTile = await _veDownloader.DownloadVeTileAsync(VirtualEarthTile.Ortho, level, tileX, tileY, token); await veTile.CopyToAsync(context.Response.OutputStream, token); } }
public override async Task RunAsync(IWwtContext context, CancellationToken token) { await context.Response.WriteAsync("ClientVersion:", token); context.Response.WriteFile(context.MapPath(Path.Combine("..", "wwt2", "ExcelAddinVersion.txt"))); await context.Response.WriteAsync("\nUpdateUrl:", token); context.Response.WriteFile(context.MapPath(Path.Combine("..", "wwt2", "ExcelAddinUpdateUrl.txt"))); }
public override async Task RunAsync(IWwtContext context, CancellationToken token) { string query = context.Request.Params["Q"]; string[] values = query.Split(','); int level = Convert.ToInt32(values[0]); int tileX = Convert.ToInt32(values[1]); int tileY = Convert.ToInt32(values[2]); int demSize = 33 * 33; int parentL = Math.Max(1, level - 3); int DemGeneration = level - parentL; int count = (int)Math.Pow(2, 3 - DemGeneration); int tileSize = (int)Math.Pow(2, DemGeneration); int offsetX = (tileX % tileSize) * count * 32; int offsetY = (tileY % tileSize) * count * 32; var parentX = tileX / tileSize; var parentY = tileY / tileSize; using var stream = await _veDownloader.DownloadVeTileAsync(VirtualEarthTile.Ecn, parentL, parentX, parentY, token); DemTile tile = DemCodec.Decompress(stream); if (tile != null) { float[] DemData = new float[demSize]; int yh = 0; for (int yl = 0; yl < 33; yl++) { int xh = 0; for (int xl = 0; xl < 33; xl++) { int indexI = xl + (32 - yl) * 33; DemData[indexI] = (float)tile.AltitudeInMeters(yh + offsetY, xh + offsetX); xh += count; } yh += count; } var data = new byte[DemData.Length * 4]; using var ms = new MemoryStream(data); var bw = new BinaryWriter(ms); foreach (float sample in DemData) { bw.Write(sample); } bw.Flush(); await context.Response.OutputStream.WriteAsync(data, 0, data.Length, token); } context.Response.End(); }
public override void Run(IWwtContext context) { string query = context.Request.Params["Q"]; string[] values = query.Split(','); int level = Convert.ToInt32(values[0]); int tileX = Convert.ToInt32(values[1]); int tileY = Convert.ToInt32(values[2]); int demSize = 33 * 33; //string wwtDemDir = ConfigurationManager.AppSettings["WWTDEMDir"]; //string filename = String.Format(wwtDemDir + @"\Mercator\Chunks\{0}\{1}.chunk", level, tileY); string urlBase = "http://ecn.t{0}.tiles.virtualearth.net/tiles/d{1}.elv?g=1&n=z"; string id = WWTUtil.GetTileID(tileX, tileY, level, false); int server = WWTUtil.GetServerID(tileX, tileY); WebClient client = new WebClient(); string url = string.Format(urlBase, server, id); byte[] data = client.DownloadData(url); MemoryStream stream = new MemoryStream(data); DemTile tile = DemCodec.Decompress(stream); if (tile != null) { float[] DemData = new float[demSize]; int yh = 0; for (int yl = 0; yl < 33; yl++) { int xh = 0; for (int xl = 0; xl < 33; xl++) { int indexI = xl + (32 - yl) * 33; DemData[indexI] = (float)tile.AltitudeInMeters(yh, xh); // Response.Write( tile.AltitudeInMeters(yh, xh).ToString() + "\n"); xh += 8; //Response.Write(indexI); } yh += 8; } data = new byte[DemData.Length * 4]; MemoryStream ms = new MemoryStream(data); BinaryWriter bw = new BinaryWriter(ms); foreach (float sample in DemData) { bw.Write(sample); } bw.Flush(); context.Response.BinaryWrite(data); } context.Response.End(); }
public override void Run(IWwtContext context) { string webDir = ConfigurationManager.AppSettings["WWTWEBDIR"]; context.Response.AddHeader("Cache-Control", "no-cache"); context.Response.Write("ClientVersion:"); context.Response.WriteFile(webDir + @"\wwt2\ExcelAddinVersion.txt"); context.Response.Write("\nUpdateUrl:"); context.Response.WriteFile(webDir + @"\wwt2\ExcelAddinUpdateUrl.txt"); }
public override async Task RunAsync(IWwtContext context, CancellationToken token) { string query = context.Request.Params["Q"]; string[] values = query.Split(','); int level = Convert.ToInt32(values[0]); int tileX = Convert.ToInt32(values[1]); int tileY = Convert.ToInt32(values[2]); string filename = $@"\\wwt-mars\marsroot\dem\Merged4\{level}\{tileX}\DL{level}X{tileX}Y{tileY}.dem"; if (File.Exists(filename)) { using (Stream stream = File.OpenRead(filename)) using (Stream s = await MergeMolaDemTileStream(level, tileX, tileY, stream, token)) { if (s.Length == 0) { context.Response.Clear(); context.Response.ContentType = "text/plain"; await context.Response.WriteAsync("No image", token); context.Response.End(); return; } await s.CopyToAsync(context.Response.OutputStream, token); context.Response.Flush(); context.Response.End(); return; } } else { using (Stream ss = await GetMolaDemTileStreamAsync(level, tileX, tileY, token)) { if (ss.Length == 0) { context.Response.Clear(); context.Response.ContentType = "text/plain"; await context.Response.WriteAsync("No image", token); context.Response.End(); return; } await ss.CopyToAsync(context.Response.OutputStream, token); context.Response.Flush(); context.Response.End(); return; } } }
public override async Task RunAsync(IWwtContext context, CancellationToken token) { string name = context.Request.Params["name"]; using var stream = await _tileAccessor.GetThumbnailAsync(name, token); if (stream != null) { await stream.CopyToAsync(context.Response.OutputStream, token); } }
public override void Run(IWwtContext context) { string name = context.Request.Params["name"]; string type = context.Request.Params["class"]; using (var s = WWTThumbnail.GetThumbnailStream(name, type)) { s.CopyTo(context.Response.OutputStream); context.Response.Flush(); context.Response.End(); } }
public override void Run(IWwtContext context) { string guid; if (context.Request.Params["GUID"] != null) { guid = context.Request.Params["GUID"]; } else { context.Response.End(); return; } string tourcache = ConfigurationManager.AppSettings["WWTTOURCACHE"]; string localDir = tourcache; string filename = WWTUtil.GetCurrentConfigShare("WWTToursTourFileUNC", true) + String.Format(@"\{0}_AuthorThumb.bin", guid); string localfilename = localDir + String.Format(@"\{0}_AuthorThumb.bin", guid); if (!File.Exists(localfilename)) { try { if (File.Exists(filename)) { if (!Directory.Exists(localDir)) { Directory.CreateDirectory(localDir); } File.Copy(filename, localfilename); } } catch { } } if (File.Exists(localfilename)) { try { context.Response.ContentType = "image/png"; context.Response.WriteFile(localfilename); return; } catch { } } else { context.Response.Status = "404 Not Found"; } }
public override async Task RunAsync(IWwtContext context, CancellationToken token) { string wwtTilesDir = Path.Combine(_options.WwtTilesDir, "LROWAC"); string query = context.Request.Params["Q"]; string[] values = query.Split(','); int level = Convert.ToInt32(values[0]); int tileX = Convert.ToInt32(values[1]); int tileY = Convert.ToInt32(values[2]); if (level > 10) { await context.Response.WriteAsync("No image", token); context.Response.Close(); return;; } if (level < 7) { context.Response.ContentType = "image/png"; using (Stream s = await _plateTiles.GetStreamAsync(wwtTilesDir, "LROWAC_L0X0Y0.plate", level, tileX, tileY, token)) { await s.CopyToAsync(context.Response.OutputStream, token); context.Response.Flush(); context.Response.End(); return;; } } else { int powLev5Diff = (int)Math.Pow(2, level - 3); int X32 = tileX / powLev5Diff; int Y32 = tileY / powLev5Diff; int L5 = level - 3; int X5 = tileX % powLev5Diff; int Y5 = tileY % powLev5Diff; context.Response.ContentType = "image/png"; using (Stream s = await _plateTiles.GetStreamAsync(wwtTilesDir, $"LROWAC_L3X{X32}Y{Y32}.plate", L5, X5, Y5, token)) { await s.CopyToAsync(context.Response.OutputStream, token); context.Response.Flush(); context.Response.End(); return;; } } }
public override void Run(IWwtContext context) { string wwt2dir = ConfigurationManager.AppSettings["WWT2DIR"]; context.Response.AddHeader("Cache-Control", "no-cache"); context.Response.Write("ClientVersion:"); context.Response.WriteFile(wwt2dir + @"\version.txt"); context.Response.Write("\n"); context.Response.WriteFile(wwt2dir + @"\dataversion.txt"); context.Response.Write("\nMessage:"); context.Response.WriteFile(wwt2dir + @"\message.txt"); }
public override void Run(IWwtContext context) { //string etag = context.Request.Headers["If-None-Match"]; string tourcache = ConfigurationManager.AppSettings["WWTTOURCACHE"]; context.Response.ClearHeaders(); context.Response.Clear(); context.Response.ContentType = "application/x-wtt"; context.Response.WriteFile(MakeTourFromXML(context, context.Request.InputStream, tourcache + "\\temp\\")); //context.Response.OutputStream }
public override async Task RunAsync(IWwtContext context, CancellationToken token) { string name = context.Request.Params["name"]; string type = context.Request.Params["class"]; using (var s = await GetThumbnailAsync(name, type, token)) { await s.CopyToAsync(context.Response.OutputStream, token); context.Response.Flush(); context.Response.End(); } }
public override async Task RunAsync(IWwtContext context, CancellationToken token) { string query = context.Request.Params["Q"]; string[] values = query.Split(','); int level = Convert.ToInt32(values[0]); int tileX = Convert.ToInt32(values[1]); int tileY = Convert.ToInt32(values[2]); if (level > 12) { await context.Response.WriteAsync("No image", token); context.Response.Close(); } else if (level < 8) { context.Response.ContentType = "image/png"; using (var s = await _plateTile.GetStreamAsync(_options.WwtTilesDir, "DSSTerraPixel.plate", level, tileX, tileY, token)) { await s.CopyToAsync(context.Response.OutputStream, token); context.Response.Flush(); context.Response.End(); } } else { int powLev5Diff = (int)Math.Pow(2, level - 5); int X32 = tileX / powLev5Diff; int Y32 = tileY / powLev5Diff; int L5 = level - 5; int X5 = tileX % powLev5Diff; int Y5 = tileY % powLev5Diff; context.Response.ContentType = "image/png"; string filename = $"DSSPngL5to12_x{X32}_y{Y32}.plate"; using (var s = await _plateTile.GetStreamAsync(_options.DssTerapixelDir, filename, L5, X5, Y5, token)) { await s.CopyToAsync(context.Response.OutputStream); context.Response.Flush(); context.Response.End(); } } }