private async Task OnSchedulingOptionSelected(IDialogContext context, IAwaitable <string> result) { try { var optionSelected = await result; switch (optionSelected) { case NewAppointment: PromptDialog.Choice(context, ResumeAfterHospitalSearchTypeSelected, new[] { ByDoctorsNameOption, FindNearHospitalsOption }, "How do you want to inform your hospital?"); break; case MyAppointments: var repo = UserRepositoryFactory.CreateUserRepository(); var user = context.UserData.GetValue <User>("user"); var appointments = repo.SearchAppointments(user.Number, user.AccessKey); await ShowAppointments(context, appointments); context.Done <object>(null); break; } } catch (TooManyAttemptsException ex) { System.Diagnostics.Trace.TraceError($"Error: {ex.Message}"); await context.PostAsync($"Ooops! Too many attempts. Don't worry, I'm trying to solve this issue, please try again."); } }
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable <object> result) { var unused = await result as IMessageActivity; var repo = UserRepositoryFactory.CreateUserRepository(); var user = context.UserData.GetValue <User>("user"); var refunds = repo.SearchRefunds(user.Number, user.AccessKey); await ShowRefunds(context, refunds); context.Done <object>(null); }
private async Task AfterFormFilled(IDialogContext context, IAwaitable <BalanceSlipQuery> result) { var query = await result; var user = context.UserData.GetValue <User>("user"); var repo = UserRepositoryFactory.CreateUserRepository(); var fileUrl = repo.RequestBalanceSlip(user.Number, user.AccessKey, query.Year); var message = context.MakeMessage(); message.Attachments.Add(new Attachment { ContentUrl = fileUrl, ContentType = "image/jpg" }); await context.PostAsync(message); context.Done <object>(null); }
private static async Task AfterFormFilled(IDialogContext context, IAwaitable <BillPaymentQuery> result) { var query = await result; var user = context.UserData.GetValue <User>("user"); var repo = UserRepositoryFactory.CreateUserRepository(); var urlArquivo = repo.GenerateBarcodeBill(user.Number, user.AccessKey, query.Year, query.Month); var message = context.MakeMessage(); message.Attachments.Add(new Attachment { ContentUrl = urlArquivo, ContentType = "image/jpg" }); await context.PostAsync(message); context.Done <object>(null); }
private async Task ResumeAfterAutentication(IDialogContext context, IAwaitable <Credentials> result) { var credencials = await result; var repo = UserRepositoryFactory.CreateUserRepository(); var user = repo.Search(credencials.Number, credencials.AccessKey); if (user == null) { PromptDialog.Confirm(context, RetriesAfterAuthenticationFail, "Unfortunately I couldn't find you in my database. Do you wanna try again?", "It's not a valid option!"); } else { context.UserData.SetValue("user", user); var message = context.MakeMessage(); message.Text = $"Right {user.Name}, now tell me how I can help you today?"; await context.PostAsync(message); ShowCards(context); context.Wait(MessageReceivedAsync); } }