Skip to content

Instantly share code, notes, and snippets.

@meboz
Created June 19, 2012 04:51
Show Gist options
  • Save meboz/2952344 to your computer and use it in GitHub Desktop.
Save meboz/2952344 to your computer and use it in GitHub Desktop.
Open exchange rates c# language example
[Test]
public void can_deserialize_exchange_rate_data()
{
var latest = "https://raw.github.com/currencybot/open-exchange-rates/master/latest.json";
var client = new RestClient(latest);
var request = new RestRequest(Method.GET);
var response = client.Execute(request);
var exchangeRates = response.Content;
var exchangeRateData = JsonConvert.DeserializeObject<ExchangeRate>(exchangeRates);
exchangeRateData.Disclaimer.Length.ShouldBeGreaterThan(100);
exchangeRateData.Licence.Length.ShouldBeGreaterThan(100);
exchangeRateData.Timestamp.ShouldBeGreaterThan(1340080115);
exchangeRateData.Base.ShouldEqual("USD");
exchangeRateData.Rates.Count.ShouldBeGreaterThan(20);
exchangeRateData.Rates["USD"].ShouldEqual(1.0);
var repo = new MongoRepository();
repo.Save(exchangeRateData);
}
public class ExchangeRate : MongoBase
{
[JsonProperty("disclaimer")]
public string Disclaimer { get; set; }
[JsonProperty("license")]
public string Licence { get; set; }
[JsonProperty("timestamp")]
public long Timestamp { get; set; }
[JsonProperty("base")]
public string Base { get; set; }
[JsonProperty("rates")]
public Dictionary<string, decimal> Rates { get; set; }
}
[TestFixture]
public class OpenExchangeRatesTests
{
[Test]
public void can_fetch_and_store_data()
{
var latest = "https://raw.github.com/currencybot/open-exchange-rates/master/latest.json";
var client = new RestClient(latest);
var request = new RestRequest(Method.GET);
var response = client.Execute(request);
var exchangeRates = response.Content;
var mongoServer = MongoServer.Create("mongodb://localhost:27017");
var mongoDatabase = mongoServer.GetDatabase("openexchangerates");
var mongoCollection = mongoDatabase.GetCollection("exchangerates");
var document = new BsonDocument("rates", exchangeRates);
mongoCollection.Save(document);
}
}
@kiquenet
Copy link

What is RestClient ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment