public override IEnumerable<string> Execute(IrcEventArgs e)
{
IList<string> lines = new List<string>();
try
{
ExchangeOptions options = OptionParser.ParseByOrder<ExchangeOptions>(e.Data.Message);
double amount;
var expression = string.Join("", e.Data.MessageArray.Where(x => !letterFilter.IsMatch(x)));
try
{
amount = eval.Evaluate(expression);
}
catch
{
amount = double.Parse(options.Amount);
}
string query = string.Format(url, amount, options.From, options.To);
string json = HttpHelper.GetFromUrl(query);
JObject o = JObject.Parse(json);
string result = (string)o.SelectToken("rhs");
string resultAmount = result.Split('.').FirstOrDefault();
if (!string.IsNullOrEmpty(resultAmount))
lines.Add(amount.ToString() + " " + options.From.ToUpper() + " = " + resultAmount + " " + options.To.ToUpper());
}
catch (Exception ex)
{
log.Error("Error calculating exchange", ex);
}
return lines;
}