private async Task <string> GetStock(string strStock) { string strRet = string.Empty; double?dblStock = await Yahoo.GetStockPriceAsync(strStock); // return our reply to the user if (null == dblStock) { strRet = string.Format("Stock {0} doesn't appear to be valid", strStock.ToUpper()); } else { strRet = string.Format("Stock: {0}, Value: {1}", strStock.ToUpper(), dblStock); } return(strRet); }
#pragma warning disable 1998 public static IForm <StockOrder> MakeForm() { FormBuilder <StockOrder> _Order = new FormBuilder <StockOrder>(); return(_Order .Message("Welcome to the Stock Bot!") .Field("StockTicker", validate: async(state, value) => { ValidateResult vResult = new ValidateResult(); var str = value as string; double?dblStock = await Yahoo.GetStockPriceAsync(str); if (null == dblStock) { vResult.Feedback = string.Format("{0} is not a valid stock ticker.", str.ToUpper()); vResult.IsValid = false; } else { vResult.Feedback = string.Format("{0} is currently at {1}", str.ToUpper(), dblStock); vResult.IsValid = true; } return vResult; }) .Field(nameof(StockOrder.BuySell)) .Field(nameof(StockOrder.OrderDate)) .Field(nameof(StockOrder.NumberOfShares)) .AddRemainingFields() .Confirm("Do you want to {BuySell} {NumberOfShares} shares of {StockTicker} on {OrderDate}? ") .OnCompletionAsync(async(session, StockOrder) => { Debug.WriteLine("{0}", StockOrder); }) .Build()); }