Exemplo n.º 1
0
        private async Task SendEmail(UserModel userModel, MedicalAppointmentModel medicalAppointmentModel)
        {
            string contentEmail = $"Hola  {userModel.fullName} , </b> <b>Tu cita medica :" +
                                  $"<br>📅Fecha: {medicalAppointmentModel.date.ToShortDateString()}" +
                                  $"<br>⏰ Hora: {medicalAppointmentModel.time}</b><b> horas." +
                                  $"<br> " +
                                  $"<br> Eecuerda presentarte 15 minutos antes de tu cita y entregar tu carnet al asistente mèdico." +
                                  $"<br> " +
                                  $"<br> Siempre hay una solución para cada problema, una sonrisa para cada lágrima y un abrazo (aunque sea virtual) para cada tristeza." +
                                  $"<br> " +
                                  $"  <br> En  VIDACOVID   estamos atentos y comprometidos para vivir al máximo el elemento más importante de nuestra cultura: “Las personas van primero”.Cuenten con nosotros para enfrentar este difícil momento. " +
                                  $" <br>  " +
                                  $"<br> Ayudame entrando al link para sacarte un analisis https://9di.es/yyzlqjde" +

                                  $"<br> " +
                                  $"<br> " +
                                  $"<br>Cordialmente" +
                                  $"<br> " +
                                  $"<br> DANIEL TATAJE ALARCON " +
                                  $"<br> CEO";

            await _sendGridEmailService.Execute(
                "*****@*****.**",
                "BOT CITA MEDICA - VIDACOVID",
                userModel.email,
                userModel.fullName,
                "Confirmacion de Cita",
                "",
                contentEmail
                );
        }
Exemplo n.º 2
0
        private async Task <DialogTurnResult> FinalProcess(WaterfallStepContext stepContext, CancellationToken cancellationToken)
        {
            var userConfirmation = stepContext.Context.Activity.Text;

            if (userConfirmation.ToLower().Equals("si"))
            {
                //GUARDAR BASE DE DATOS
                string userId    = stepContext.Context.Activity.From.Id;
                var    userModel = await _dataBaseService.User.FirstOrDefaultAsync(x => x.id == userId);

                var userStateModel = await _userState.GetAsync(stepContext.Context, () => new BotStateModel());

                if (!userStateModel.medicalData)
                {
                    //UDATE USER
                    userModel.phone    = newUserModel.phone;
                    userModel.fullName = newUserModel.fullName;
                    userModel.email    = newUserModel.email;

                    _dataBaseService.User.Update(userModel);
                    await _dataBaseService.SaveAsync();
                }



                // GUARDAR LA CITA MEDICA
                medicalAppointmentModel.id     = Guid.NewGuid().ToString();
                medicalAppointmentModel.idUser = userId;
                await _dataBaseService.MedicalAppointment.AddAsync(medicalAppointmentModel);

                await _dataBaseService.SaveAsync();

                await stepContext.Context.SendActivityAsync("TU CITA SE GUARDO CON EXITO.", cancellationToken : cancellationToken);

                userStateModel.medicalData = true;
                //MOSTRAR LA INFORMACION
                string summaryMedical = $"Para :{userModel.fullName}" +
                                        $"{Environment.NewLine}📞 Telefono: {userModel.phone}" +
                                        $"{Environment.NewLine}📧 Email:{userModel.email}" +
                                        $"{Environment.NewLine}📅 Fecha:{ medicalAppointmentModel.date}" +
                                        $"{Environment.NewLine}⏰ Hora:{ medicalAppointmentModel.time}";
                await stepContext.Context.SendActivityAsync(summaryMedical, cancellationToken : cancellationToken);

                //SEND EMAIL
                await SendEmail(userModel, medicalAppointmentModel);
                await SendSMS(userModel, medicalAppointmentModel);


                await Task.Delay(1000);

                await stepContext.Context.SendActivityAsync("¿En qué más puedo ayudarte ?", cancellationToken : cancellationToken);

                medicalAppointmentModel = new MedicalAppointmentModel();
            }
            else
            {
                await stepContext.Context.SendActivityAsync("No hay problema, sera la proxima", cancellationToken : cancellationToken);
            }
            return(await stepContext.ContinueDialogAsync(cancellationToken : cancellationToken));
        }
Exemplo n.º 3
0
        private async Task SendSMS(UserModel userModel, MedicalAppointmentModel medicalAppointmentModel)
        {
            string message = $"{userModel.fullName}, su cita ha sido registrado para:" +
                             $"{Environment.NewLine}Fecha: {medicalAppointmentModel.date.ToString("dd/MM/yyyy")}" +
                             $"{Environment.NewLine}Hora: {medicalAppointmentModel.time}";

            await _twilioSMSService.SendMessage(message, userModel.phone);
        }
        private async Task <DialogTurnResult> FinalProcess(WaterfallStepContext stepContext, CancellationToken cancellationToken)
        {
            var userConfirmation = stepContext.Context.Activity.Text;

            if (userConfirmation.ToLower().Equals("sim"))
            {
                //Save DataBase
                string userId    = stepContext.Context.Activity.From.Id;
                var    userModel = await _databaseService.User.FirstOrDefaultAsync(x => x.id == userId);

                // Update user
                userModel.phone    = newUserModel.phone;
                userModel.fullName = newUserModel.fullName;
                userModel.email    = newUserModel.email;

                _databaseService.User.Update(userModel);
                await _databaseService.SaveAsync();

                //Save medical appointment
                medicalAppointment.id     = Guid.NewGuid().ToString();
                medicalAppointment.idUser = userId;
                await _databaseService.MedicalAppointments.AddAsync(medicalAppointment);

                await _databaseService.SaveAsync();

                await stepContext.Context.SendActivityAsync("Sua consulta foi salva com êxito!", cancellationToken : cancellationToken);

                //Show sumary
                string sumaryMedical = $"Para: {userModel.fullName}" +
                                       $"{Environment.NewLine} 📞 Telefone: {userModel.phone}" +
                                       $"{Environment.NewLine} 📧 Email: {userModel.email}" +
                                       $"{Environment.NewLine} 📅 Data: {medicalAppointment.date}" +
                                       $"{Environment.NewLine} ⏰ Hora: {medicalAppointment.time}";



                await stepContext.Context.SendActivityAsync(sumaryMedical, cancellationToken : cancellationToken);

                await Task.Delay(1000);

                await stepContext.Context.SendActivityAsync("Em que mais posso ajudar?", cancellationToken : cancellationToken);

                medicalAppointment = new MedicalAppointmentModel();
            }
            else
            {
                await stepContext.Context.SendActivityAsync("Não tem problema, será na próxima", cancellationToken : cancellationToken);
            }
            return(await stepContext.ContinueDialogAsync(cancellationToken));
        }