private async Task PerformTransactionQuery(IDialogContext context, IAwaitable <object> result) { await context.PostAsync(PostTypingReply(context)); var selection = await result; _selectedAccount = selection as Account ?? new Account(); var queryResult = AccountDataController.GetTransactionsFromEntities(_selectedAccount, _entityProps); var reply = context.MakeMessage(); reply.AttachmentLayout = AttachmentLayoutTypes.Carousel; reply.Attachments = new List <Attachment>(); foreach (var transaction in queryResult) { reply.Attachments.Add( new ThumbnailCard() { Title = $"{transaction.Amount:C} {(transaction.TransactionType == "deposit" ? "Deposit" : "Payment")}", Subtitle = $"{transaction.RecepientName}, {transaction.DateTime:d}", Text = transaction.Description } .ToAttachment()); if (reply.Attachments.Count >= 20) { break; } } reply.Text = reply.Attachments.Count >= 20 ? "Showing first 20 results" : $"{reply.Attachments.Count} transactions found"; //TODO: Show only 5-10 transactions at once and display 'Show more' button. await context.PostAsync(reply); context.Done(true); }
private async Task ResumeAfterConfirmationPrompt(IDialogContext context, IAwaitable <bool> result) { var proceed = await result; if (proceed) { UpdateEntityProps(); AccountDataController.PerformInternalTransfer(_sourceAccount, _entityProps); var message = context.MakeMessage(); var attachment = GetReceiptCard(); message.Attachments.Add(attachment); await context.PostAsync(message); context.Done(true); } else { context.Done(false); } }
public AccountManager() { _accountDataController = new AccountDataController(); }