Bot.Commands.Exchange.Execute C# (CSharp) Method

Execute() public method

public Execute ( IrcEventArgs e ) : IEnumerable
e Meebey.SmartIrc4net.IrcEventArgs
return IEnumerable
        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;
        }