PeerCastStation.UI.HTTP.AdminHost.BuildViewXml C# (CSharp) Method

BuildViewXml() private method

private BuildViewXml ( ) : byte[]
return byte[]
    private byte[] BuildViewXml()
    {
      var peercast = Application.PeerCast;
      var root = new XElement("peercast");
      var servent = new XElement("servent", new XAttribute("uptime", (int)peercast.Uptime.TotalSeconds));
      var bandwidth = new XElement("bandwidth",
        new XAttribute("in",  peercast.Channels.Sum(c => c.ChannelInfo.Bitrate)),
        new XAttribute("out", peercast.Channels.Sum(c => c.OutputStreams.Sum(os => os.UpstreamRate))));
      var connections = new XElement("connections",
        new XAttribute("total",  peercast.Channels.Sum(c => c.LocalDirects + c.LocalRelays)),
        new XAttribute("relays", peercast.Channels.Sum(c => c.LocalRelays)),
        new XAttribute("direct", peercast.Channels.Sum(c => c.LocalDirects)));
      var channels_relayed = new XElement("channels_relayed", 
        new XAttribute("total", peercast.Channels.Count));
      foreach (var c in peercast.Channels) {
        channels_relayed.Add(BuildChannelXml(c));
      }
      var channels_found = new XElement("channels_found", 
        new XAttribute("total", peercast.Channels.Count));
      foreach (var c in peercast.Channels) {
        channels_found.Add(BuildChannelXml(c));
      }
      root.Add(
        servent,
        bandwidth,
        connections,
        channels_relayed,
        channels_found);
      var res = new MemoryStream();
      using (var writer = new StreamWriter(res)) {
        root.Save(writer);
      }
      return res.ToArray();
    }