using System;
using System.Net;
namespace XAMLFinance.DataSource.XmlDataSource
{
/// <summary>
/// An XML datasource that uses the Scott Logic website to
/// obtain data.
/// </summary>
internal class XmlDataSource : IXmlDataSource
{
internal XmlDataSource()
{
}
public void GetFTSE100(Action<string> action)
{
RequestData("http://www.scottlogic.co.uk/marketdata/listStocks?in=UKX", action);
}
public void GetInstrumentSummary(string isin, Action<string> action)
{
RequestData("http://www.scottlogic.co.uk/marketdata/shareData?ss=" + isin, action);
}
public void GetInstrumentPriceHistory(string isin, Action<string> action)
{
RequestData("http://www.scottlogic.co.uk/marketdata/ts?grp=ss&start=c800d&symbol=" + isin + "&gran=1d", action);
}
public void GetFTSE100PriceHistory(Action<string> action)
{
RequestData("http://www.scottlogic.co.uk/marketdata/ts?grp=in&start=c800d&symbol=UKX&gran=1d", action);
}
private void RequestData(string uri, Action<string> action)
{
var client = new WebClient();
client.DownloadStringCompleted += (s,e) => action(e.Result);
client.DownloadStringAsync(new Uri(uri));
}
}
}