Esempio n. 1
0
        //Aqui se ejecutan los formularios para extraer la informacion que se necesite acorde a la denuncia
        #region FormDenunciation
        public async Task DenunciationFormComplete(IDialogContext context, IAwaitable <DenunciationForm> result)
        {
            try
            {
                var denunciation = await result;

                int    idtipocaso = 2; //Tipo de caso: denuncia
                int    idstatus   = 1; //Estado: No revisado
                string folio;
                int    idciudadano = 1;
                var    fecha       = DateTime.UtcNow;

                //Creación de folio
                folio = denunciation.Name.Substring(0, 2).ToUpper() + idciudadano + "_" + idtipocaso;

                //****Log to DataBase****
                ConnectionDB.Chatbot_PGBEntities DB = new ConnectionDB.Chatbot_PGBEntities();
                ConnectionDB.Casos NewCaso          = new ConnectionDB.Casos();
                NewCaso.idtipocaso         = idtipocaso;
                NewCaso.idstatus           = idstatus;
                NewCaso.folio              = folio;
                NewCaso.idciudadano        = idciudadano;
                NewCaso.nombre             = denunciation.Name;
                NewCaso.email              = denunciation.Contact;
                NewCaso.descripcion        = denunciation.Denunciation;
                NewCaso.nombre_funcionario = denunciation.Functionary;
                NewCaso.nombre_dependencia = denunciation.Dependency;
                NewCaso.fecha_registro     = DateTime.UtcNow;
                DB.Casos.Add(NewCaso);
                DB.SaveChanges();

                await context.PostAsync(ChatResponse.Thanks);

                await context.PostAsync(ChatResponse.Checkid + "Folio: " + folio);

                await context.PostAsync(ChatResponse.Status);

                await context.PostAsync(ChatResponse.Step5Else);
            }
            catch (FormCanceledException)
            {
                await context.PostAsync(ChatResponse.formCanceled);
            }
            catch (Exception)
            {
                await context.PostAsync(ChatResponse.Error);
            }

            finally
            {
                context.Wait(MessageReceived);
            }
        }
Esempio n. 2
0
        //private async Task InformationRFormStatusComplete(IDialogContext context, IAwaitable<InformationRFormStatus> result)
        //{

        #endregion

        #region Status
        private async Task FormStatusComplete(IDialogContext context, IAwaitable <FormStatus> result)
        {
            /*Se agrego conexion para consulta de casos*/
            Activity replyToConversation = (Activity)context.MakeMessage();

            replyToConversation.Recipient = replyToConversation.Recipient;
            replyToConversation.Type      = "Message";

            IdentifyLanguage();

            var    consultstatus = await result;
            string idsuggestion  = ChatResponse.idstring;
            var    folio         = consultstatus.Checkid;

            try
            {
                ConnectionDB.Chatbot_PGBEntities DB = new ConnectionDB.Chatbot_PGBEntities();
                //Obteniendo el caso
                var status = (from UserLog in DB.Casos
                              where UserLog.folio == folio
                              select UserLog);
                System.Text.StringBuilder sb = new System.Text.StringBuilder();
                sb.Append("Usted escribió:\n\n");

                foreach (var caso in status)
                {
                    //var tcaso = caso.idtipocaso;
                    //var tipocaso = (from UserLogStatus in DBCaso.TipoCasos
                    //                where UserLogStatus.tipocaso = tcaso
                    //                where UserLogStatus);
                    //Añadiendo el caso a la respuesta
                    sb.Append(String.Format("Caso: {0} \n\n Estatus: {1} \n\n Folio: {2} \n\n Nombre: {3} \n\n Descripción del caso: {4} \n\n Nombre del funcionario: {5} \n\n Dependencia: {6} \n\n Fecha de registro: {7}\n\n"
                                            , caso.idcaso
                                            , caso.idstatus
                                            , caso.folio
                                            , caso.nombre
                                            , caso.descripcion
                                            , caso.nombre_funcionario
                                            , caso.nombre_dependencia
                                            , caso.fecha_registro));
                    string response = sb.ToString();
                    await context.PostAsync(response);

                    string elsem = ChatResponse.Step5Else;
                    await context.PostAsync(elsem);
                }

                //PRUEBAS CON VISTAS
                //Conexion para la Vista
                //ConnectionDB.Chatbot_PGBEntities1 Vistas = new ConnectionDB.Chatbot_PGBEntities1();
                //Creando una respuesta
                //var vista = (from UserLogV in Vistas.desc_tipo_caso_denuncia
                //             where UserLogV.folio == folio
                //             select UserLogV);
                //foreach (var view in vista)
                //{
                //    //Añadiendo el caso a la respuesta
                //    sb.Append(String.Format("Caso: {0} \n\n Estatus: {1} \n\n Folio: {2} \n\n Nombre: {3} \n\n Descripción del caso: {4} \n\n Nombre del funcionario: {5} \n\n Dependencia: {6} \n\n Fecha de registro: {7}\n\n"
                //            , view.tipocaso
                //            , view.status
                //            , view.folio
                //            , view.nombre
                //            , view.descripcion
                //            , view.nombre_funcionario
                //            , view.nombre_dependencia
                //            , view.fecha_registro));
                //    string response = sb.ToString();
                //    await context.PostAsync(response);
                //}
            }
            catch (FormCanceledException)
            {
                await context.PostAsync(ChatResponse.formCanceled);
            }
            catch (Exception exc)
            {
                await context.PostAsync(ChatResponse.Error + " + " + exc);
            }

            finally
            {
                context.Wait(MessageReceived);
            }
        }
Esempio n. 3
0
        //private async Task ComplaintFormStatusComplete(IDialogContext context, IAwaitable<ComplaintFormStatus> result)
        //{
        //}
        #endregion

        #region FormInformationR
        public async Task InformationRFormComplete(IDialogContext context, IAwaitable <InformationRForm> result)
        {
            Activity replyToConversation = (Activity)context.MakeMessage();

            replyToConversation.Recipient = replyToConversation.Recipient;
            replyToConversation.Type      = "Message";

            IdentifyLanguage();

            try
            {
                var informationr = await result;

                int    idtipocaso = 4; //Tipo de caso: solicitud de informacion
                int    idstatus   = 1; //Estado: No revisado
                string folio;
                int    idciudadano = 1;
                var    fecha       = DateTime.UtcNow;

                //Creación de folio
                folio = informationr.Name.Substring(0, 2).ToUpper() + idciudadano + "_" + idtipocaso;

                //****Log to DataBase****
                ConnectionDB.Chatbot_PGBEntities DB = new ConnectionDB.Chatbot_PGBEntities();
                ConnectionDB.Casos NewCaso          = new ConnectionDB.Casos();
                NewCaso.idtipocaso     = idtipocaso;
                NewCaso.idstatus       = idstatus;
                NewCaso.folio          = folio;
                NewCaso.idciudadano    = idciudadano;
                NewCaso.nombre         = informationr.Name;
                NewCaso.email          = informationr.Contact;
                NewCaso.descripcion    = informationr.Information;
                NewCaso.fecha_registro = DateTime.UtcNow;
                DB.Casos.Add(NewCaso);
                DB.SaveChanges();

                ConnectionDB.Chatbot_PGBEntities1 DBot          = new ConnectionDB.Chatbot_PGBEntities1();
                ConnectionDB.UserLogin            NewUserLogBot = new ConnectionDB.UserLogin();
                NewUserLogBot.Channel  = replyToConversation.ChannelId;
                NewUserLogBot.UserID   = replyToConversation.From.Id;
                NewUserLogBot.UserName = replyToConversation.From.Name;
                NewUserLogBot.Created  = DateTime.UtcNow;
                NewUserLogBot.Message  = ChatResponse.Thanks + " " + ChatResponse.Checkid + " Folio: " + folio + " " + ChatResponse.Status + " " + ChatResponse.Step5Else;
                DBot.UserLogins.Add(NewUserLogBot);
                DBot.SaveChanges();
                DBot.Dispose();

                await context.PostAsync(ChatResponse.Thanks);

                await context.PostAsync(ChatResponse.Checkid + ": " + folio);

                await context.PostAsync(ChatResponse.Status);

                await context.PostAsync(ChatResponse.Step5Else);
            }
            catch (FormCanceledException)
            {
                await context.PostAsync(ChatResponse.formCanceled);
            }
            catch (Exception)
            {
                await context.PostAsync(ChatResponse.Error);
            }

            finally
            {
                context.Wait(MessageReceived);
            }
        }