Beispiel #1
0
        public IntentoModel ObtenerIntento(string intentId)
        {
            var intento = new IntentoModel();

            try
            {
                var fileSavePath = System.Web.HttpContext.Current.Server.MapPath("~/Dialogflow.json/") + ConstantesWeb.DialogFlow.FilePrivateKeyIdJson;

                if ((System.IO.File.Exists(fileSavePath)))
                {
                    var cred = GoogleCredential.FromFile(fileSavePath);

                    var channel = new Channel(SessionsClient.DefaultEndpoint.Host, SessionsClient.DefaultEndpoint.Port, cred.ToChannelCredentials());

                    var client = IntentsClient.Create(channel);

                    GetIntentRequest request = new GetIntentRequest
                    {
                        IntentName = new IntentName(ConstantesWeb.DialogFlow.ProjectId, intentId),
                        IntentView = IntentView.Full
                    };


                    var intent = client.GetIntent(request);

                    intento.Id     = intent.IntentName.IntentId;
                    intento.Nombre = intent.DisplayName;

                    var objResult = oIBLSolicitud.ObtenerIntencion(intento.Nombre);
                    var intencion = objResult.OneResult;

                    intento.FechaCreacion             = intencion.StrFechaCreacion;
                    intento.DescripcionIntencionPadre = intencion.DescripcionIntencionPadre;

                    if (intencion.IdPadreIntencion.Equals(0))
                    {
                        intento.Nombre = string.Empty;
                    }



                    //Frases de Entrenamiento
                    var feId = 1;
                    foreach (var trainingPhrase in intent.TrainingPhrases)
                    {
                        var fraseEntrenamiento = new FraseEntrenamientoModel();
                        fraseEntrenamiento.Id    = feId++;
                        fraseEntrenamiento.StrId = trainingPhrase.Name;
                        foreach (var phrasePart in trainingPhrase.Parts)
                        {
                            fraseEntrenamiento.Descripcion = phrasePart.Text;
                        }
                        intento.FrasesEntrenamiento.Add(fraseEntrenamiento);
                    }

                    //Respuestas
                    foreach (var message in intent.Messages)
                    {
                        if (message.Text != null)
                        {
                            var idRespuesta = 0;
                            foreach (var text in message.Text.Text_)
                            {
                                idRespuesta++;
                                var respuesta = new RespuestaIntentoModel();
                                respuesta.Id          = idRespuesta + string.Empty;
                                respuesta.Descripcion = text;
                                intento.Respuestas.Add(respuesta);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(intento);
        }