1. using System.Linq;
  2. using System.Xml.Linq;
  3. using clempaul.Dreamhost.ResponseData;
  4. using System.Collections.Generic;
  5.  
  6. namespace clempaul.Dreamhost
  7. {
  8.     public class AccountRequests
  9.     {
  10.         DreamhostAPI api = null;
  11.  
  12.         internal AccountRequests(DreamhostAPI api)
  13.         {
  14.             this.api = api;
  15.         }
  16.  
  17.         #region account-domain_usage
  18.  
  19.         public IEnumerable<DomainUsage> DomainUsage()
  20.         {
  21.             XDocument response = api.SendCommand("account-domain_usage");
  22.  
  23.             // Handle Response
  24.  
  25.             return from data in response.Element("dreamhost").Elements("data")
  26.                    select new DomainUsage
  27.                    {
  28.                        domain = data.Element("domain").AsString(),
  29.                        type = data.Element("type").AsString(),
  30.                        bw = data.Element("bw").AsInt()
  31.                    };
  32.         }
  33.  
  34.         #endregion
  35.  
  36.         #region account-status
  37.  
  38.         public IEnumerable<KeyValuePair<string,XElement>> Status()
  39.         {
  40.             XDocument response = api.SendCommand("account-status");
  41.  
  42.             // Handle Response
  43.  
  44.             return from data in response.Element("dreamhost").Elements("data")
  45.                    select new KeyValuePair<string, XElement>
  46.                        (data.Element("key").AsString(), data.Element("value"));
  47.         }
  48.  
  49.         #endregion
  50.  
  51.         #region account-user_usage
  52.  
  53.         public IEnumerable<UserUsage> UserUsage()
  54.         {
  55.             XDocument response = api.SendCommand("account-user_usage");
  56.  
  57.             // Handle Response
  58.  
  59.             return from data in response.Element("dreamhost").Elements("data")
  60.                    select new UserUsage
  61.                    {
  62.                        user = data.Element("user").AsString(),
  63.                        disk = data.Element("disk").AsDouble(),
  64.                        disk_as_of = data.Element("disk_as_of").AsDateTime(),
  65.                        bw = data.Element("bw").AsDouble()
  66.                    };
  67.         }
  68.  
  69.         #endregion
  70.     }
  71. }
  72.