Ejemplo n.º 1
0
        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.");
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 5
0
        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);
            }
        }