public HttpFileInfo(HttpFileDescriptor descriptor, HttpClient httpClient) { this.Exists = descriptor.Exists; this.IsDirectory = descriptor.IsDirectory; this.LastModified = descriptor.LastModified; this.Length = descriptor.Length; this.Name = descriptor.Name; this.PhysicalPath = descriptor.PhysicalPath; _httpClient = httpClient; }
public async Task InvokeAsync(HttpContext context) { if (context.Request.Query.ContainsKey("dir-meta")) { var dirContents = _fileProvider.GetDirectoryContents(context.Request.Path); var dirDecriptor = new HttpDirectoryContentsDescriptor(dirContents, CreatePhysicalPathResolver(context, true)); await context.Response.WriteAsync(JsonConvert.SerializeObject(dirDecriptor)); } else if (context.Request.Query.ContainsKey("file-meta")) { var fileInfo = _fileProvider.GetFileInfo(context.Request.Path); var fileDescriptor = new HttpFileDescriptor(fileInfo, CreatePhysicalPathResolver(context, false)); await context.Response.WriteAsync(JsonConvert.SerializeObject(fileDescriptor)); } else { await context.Response.SendFileAsync(_fileProvider.GetFileInfo(context.Request.Path)); } }