private async Task ProcessDataRequest(DataRequest request) { request.Headers.Add("Access-Control-Allow-Origin", "astral://prototype"); Uri uri = new Uri(request.Url); AppContainer.SchemeFileDbLink item = this.schemeMap[uri.Scheme]; string str = string.Concat(item.PathPrefix, uri.GetComponents(UriComponents.Path, UriFormat.Unescaped)); string mimeType = this.GetMimeType(this.GetExtension(str)); IFileDb fileDb = Instances.FileDatabases[item.DatabaseName]; using (Stream stream = fileDb.GetStream(str.ToLowerInvariant())) { MemoryStream memoryStream = new MemoryStream(); await stream.CopyToAsync(memoryStream); memoryStream.Seek((long)0, SeekOrigin.Begin); request.SetData(memoryStream, mimeType); } }
private async Task ProcessDataRequest(DataRequest request) { request.Headers.Add("Access-Control-Allow-Origin", "astral://prototype"); Uri uri = new Uri(request.Url); AppContainer.SchemeFileDbLink schemeData = this.schemeMap[uri.Scheme]; string path = schemeData.PathPrefix + uri.GetComponents(UriComponents.Path, UriFormat.Unescaped); string extension = this.GetExtension(path); string mimeType = this.GetMimeType(extension); IFileDb database = Instances.FileDatabases[schemeData.DatabaseName]; using (Stream stream = database.GetStream(path.ToLowerInvariant())) { MemoryStream memoryStream = new MemoryStream(); await stream.CopyToAsync((Stream) memoryStream); memoryStream.Seek(0L, SeekOrigin.Begin); request.SetData((Stream) memoryStream, mimeType); } }