Hi,
finally figured it out - but if anyone can provide a more elegant solution please do!
Anyway - here is the code for anyone whose interested:
public static int countRemaining(string myUserName, string myAzureKey, string myAzureBalanceUrl)
{
string myNumber = string.Empty;
int myReturn = 0;
StreamReader StreamHandler;
XmlDocument myXmlDoc = new XmlDocument();
bool myTranslatorFlag = false;
Uri targetUri = new Uri(myAzureBalanceUrl);
NetworkCredential myCredentials = new NetworkCredential(myUserName, myAzureKey);
try
{
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(targetUri);
myHttpWebRequest.Credentials = myCredentials;
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
if (myHttpWebRequest.HaveResponse)
{
if (myHttpWebResponse.StatusCode == HttpStatusCode.OK)
{
StreamHandler = new System.IO.StreamReader(myHttpWebResponse.GetResponseStream());
myXmlDoc.LoadXml(StreamHandler.ReadToEnd());
XmlNodeList myParentNodeList = myXmlDoc.ChildNodes;
XmlNode myFeed = myParentNodeList[0];
XmlNodeList myEntryList = myFeed.ChildNodes;
foreach (XmlNode myAzureNode in myEntryList)
{
if (myAzureNode.Name == "entry")
{
XmlNodeList myContent = myAzureNode.ChildNodes;
foreach (XmlNode myEntryNode in myContent)
{
if (myEntryNode.Name == "title" && myEntryNode.InnerText == "Microsoft Translator")
{
myTranslatorFlag = true;
}
if (myEntryNode.Name == "content" && myTranslatorFlag)
{
XmlNodeList myTemp = myEntryNode.ChildNodes;
XmlNode myTempNode = myTemp[0];
XmlNodeList myProperties = myTempNode.ChildNodes;
foreach (XmlNode myValueNode in myProperties)
{
if (myValueNode.Name == "d:ResourceBalance")
{
myNumber = myValueNode.InnerText;
}
}
}
}
}
}
}
}
}
catch (Exception)
{
myNumber = "0";
}
bool myTest = Int32.TryParse(myNumber, out myReturn);
if (!myTest) myReturn = 0;
return myReturn;
}