//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); } }
//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); } }
//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); } }