public string Execute(Intent context, MonzoResource resource) { var accounts = _monzoClient.GetAccounts().Result; var enabledAccounts = accounts.Where(x => !x.Closed).ToList(); string message; if (enabledAccounts.Count > 1) { message = $"You have {enabledAccounts.Count} accounts with Monzo. "; for (var i = 0; i < enabledAccounts.Count; i++) { var account = enabledAccounts[i]; var type = account.Type.Replace("uk_", ""); message += $"The {(i+1).ToOrdinalWords()} account is for {account.Description} and is a {type} card. "; } } else { var account = enabledAccounts.First(); var type = account.Type.Replace("uk_", ""); message = $"There is one account for {account.Description} which is a {type} card."; } return(message); }
public string Execute(Intent context, MonzoResource resource) { var accounts = _monzoClient.GetAccounts().Result; var validAccount = accounts.First(x => !x.Closed); var balance = _monzoClient.GetBalance(validAccount).Result; var amountData = CurrencyHelper.GetAmountString(balance); var message = string.Empty; if (amountData.Major < 0 || amountData.Minor < 0) { message = $"Your account is overdrawn by {amountData.Amount}"; } if (!string.IsNullOrEmpty(amountData.Amount)) { message = $"There is {amountData.Amount} available in your account"; } else if (amountData.Minor == 0 && amountData.Major == 0) { message = "There is no money available in your account."; } return(message); }
public string Execute(Intent context, MonzoResource resource) { var account = _monzoClient.GetAccounts().Result; var validAccount = account.First(x => !x.Closed); var today = DateTime.SpecifyKind(DateTime.Today, DateTimeKind.Utc); var transactions = _monzoClient.GetTransactions(validAccount, today).Result; var totalAmount = transactions?.Sum(x => x.Amount) ?? 0; var currencyData = CurrencyHelper.GetAmountString(Math.Abs(totalAmount)); return(totalAmount == 0 ? "You haven't spent anything today" : $"Today you've spent a total of {currencyData.Amount}"); }
public string Execute(Intent context, MonzoResource resource) { var merchant = context.Slots["Merchant"].Value; var account = _monzoClient.GetAccounts().Result; var validAccount = account.First(x => !x.Closed); var transactions = _monzoClient.GetTransactions(validAccount).Result; var merchantTransactions = transactions.Where(x => x.Description.Contains(merchant, StringComparison.OrdinalIgnoreCase)); var lastTransaction = merchantTransactions.OrderByDescending(x => x.Created).FirstOrDefault(); if (lastTransaction == null) { return($"I'm sorry, I couldn't find any transactions for {merchant}"); } var amount = CurrencyHelper.GetAmountString(Math.Abs(lastTransaction.Amount)); var isYesterday = DateTime.Now.Date.AddDays(-1) == lastTransaction.Created.Date; var isToday = DateTime.Now.Date.AddDays(0) == lastTransaction.Created.Date; string dateMessage; if (isYesterday) { dateMessage = "yesterday"; } else if (isToday) { dateMessage = "today"; } else { var day = lastTransaction.Created.Day.ToOrdinalWords(); var month = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(lastTransaction.Created.Month); var year = lastTransaction.Created.Year; dateMessage = $"on the {day} of {month} {year}"; } return($"Your last transaction at {merchant} was {dateMessage} for {amount.Amount}"); }
public string Execute(Intent context, MonzoResource resource) { return(resource.HelpMessage); }
public string Execute(Intent context, MonzoResource resource) { return("I'm sorry, I'm afraid I don't understand."); }
public string Execute(Intent context, MonzoResource resource) { return("Goodbye!"); }