PeerCastStation.UI.HTTP.HTMLHost.SendResponseFileContent C# (CSharp) Метод

SendResponseFileContent() приватный Метод

private SendResponseFileContent ( OWINEnv env, CancellationToken cancel_token ) : Task
env OWINEnv
cancel_token CancellationToken
Результат Task
    private async Task SendResponseFileContent(OWINEnv env, CancellationToken cancel_token)
    {
      var localpath = GetPhysicalPath(env);
      if (localpath==null) throw new HTTPError(HttpStatusCode.Forbidden);
      if (Directory.Exists(localpath)) {
        localpath = Path.Combine(localpath, "index.html");
        if (!File.Exists(localpath)) throw new HTTPError(HttpStatusCode.Forbidden);
      }
      if (File.Exists(localpath)) {
        var contents = File.ReadAllBytes(localpath);
        var content_desc = GetFileDesc(Path.GetExtension(localpath));
        env.SetResponseHeader("Content-Type",   content_desc.MimeType);
        env.SetResponseHeader("Content-Length", contents.Length.ToString());
        if (env.AccessControlInfo.AuthenticationKey!=null) {
          env.SetResponseHeader("Set-Cookie", "auth=" + HTTPUtils.CreateAuthorizationToken(env.AccessControlInfo.AuthenticationKey));
        }
        if (env.RequestMethod=="GET") {
          await env.ResponseBody.WriteAsync(contents, 0, contents.Length, cancel_token);
        }
      }
      else {
        throw new HTTPError(HttpStatusCode.NotFound);
      }
    }