Ejemplo n.º 1
0
        public async Task Predecir(IDialogContext context, LuisResult result)
        {
            if (string.IsNullOrWhiteSpace(alumno.TiempoViaje) ||
                string.IsNullOrWhiteSpace(alumno.TiempoEstudio) ||
                string.IsNullOrWhiteSpace(alumno.Internet) ||
                string.IsNullOrWhiteSpace(alumno.G1) ||
                string.IsNullOrWhiteSpace(alumno.G2))
            {
                await context.PostAsync($"Para predecir tu calificación final necesito los siguientes datos faltantes: " +
                                        (string.IsNullOrWhiteSpace(alumno.TiempoViaje) ? "\n\nCategoría de tiempo de viaje" : "") +
                                        (string.IsNullOrWhiteSpace(alumno.TiempoEstudio) ? "\n\nCategoría de tiempo de estudio" : "") +
                                        (string.IsNullOrWhiteSpace(alumno.Internet) ? "\n\nSi cuentas o no con servicio de internet" : "") +
                                        (string.IsNullOrWhiteSpace(alumno.G1) ? "\n\nCalificación del primer periodo" : "") +
                                        (string.IsNullOrWhiteSpace(alumno.G2) ? "\n\nCalificación del segundo periodo." : "") +
                                        "\n\nEnvía estos datos indicando el tipo y el valor e intenta la predicción de nuevo");
            }
            else
            {
                await context.PostAsync($"Enviando datos...");

                var calificacionFinal = await ServicioPrediccion.PredecirCalificacion(alumno);

                await context.PostAsync($"Tu calificación esperada es: {calificacionFinal}");
            }
        }
        async void btnPredecir_Clicked(object sender, EventArgs e)
        {
            Loading(true);

            var id         = txtID.Text;
            var nombre     = txtNombre.Text;
            var logTime    = txtLogTime.Text;
            var ingles     = swtIngles.IsToggled ? "Yes" : "No";
            var graduadoC  = swtGraduadoC.IsToggled ? "Yes" : "No";
            var gpa        = txtGPA.Text;
            var diferencia = txtDiferencia.Text;
            var graduadoB  = swtGraduadoB.IsToggled ? "Y" : "N";

            var cursoA      = txtCursoA.Text;
            var califA      = pckCalifA.SelectedItem.ToString();
            var passFailA   = pckPassFailA.SelectedItem.ToString();
            var semestreA   = pckSemestreA.SelectedItem.ToString();
            var añosA       = txtAñosA.Text;
            var instructorA = txtInstructorA.Text;

            var cursoB      = txtCursoB.Text;
            var semestreB   = pckSemestreB.SelectedItem.ToString();
            var instructorB = txtInstructorB.Text;

            var transicion = $"{cursoA} TO {cursoB}";
            var instructor = (instructorA == instructorB ? "Same" : "Different") + " Instructor";

            var datos = new
            {
                Inputs = new Dictionary <string, StringTable>()
                {
                    {
                        "input1",
                        new StringTable()
                        {
                            ColumnNames = new string[] { "CollegeGraduate", "CourseA.CourseID", "CourseA.GradeID", "CourseA.PassFailGrade", "CourseA.Semester", "CourseA.YearsSinceHighSchool", "CourseB.CourseID", "CourseB.OverallGPA", "CourseB.PassFailGrade", "CourseB.Semester", "GPADifferenceFromCourseAtoB", "HighSchoolGraduate", "LogTimeBetweenClasses", "NativeEnglishSpeaker", "SameInstructor", "Transition", "CourseA.Instructor", "CourseB.Instructor", "SID", "Student Name" },
                            Values      = new string[, ] {
                                { graduadoC, cursoA, califA, passFailA, semestreA, añosA, cursoB, gpa, "NULL", semestreB, diferencia, graduadoB, logTime, ingles, instructor, transicion, instructorA, instructorB, id, nombre },
                            }
                        }
                    },
                },
                GlobalParameters = new Dictionary <string, string>()
                {
                }
            };

            var json      = Newtonsoft.Json.JsonConvert.SerializeObject(datos);
            var resultado = await ServicioPrediccion.PredecirCalificacion(json);

            await DisplayAlert("¿Aprobado o En Riesgo?", resultado, "OK");

            Loading(false);
        }