예제 #1
0
        public async Task <bool> sendResultadoExamen(string asignatura, int numRespuestasCorrectas, int numeroPreguntas, List <PreguntaRespondidaInterface> lista, long tiempo, string tipoExamen)
        {
            string json = "";
            List <RespuestaPregunta> list = new List <RespuestaPregunta>();

            if (tipoExamen == "na")
            {
                list = RespuestaPregunta.parseRespuestaPregunta(lista.Cast <PreguntaRespondida>().ToList());
            }
            else if (tipoExamen == "ma")
            {
                list = RespuestaPregunta.parseRespuestaPregunta(lista.Cast <PreguntaMultiRespondida>().ToList());
            }
            else if (tipoExamen == "pa")
            {
                list = RespuestaPregunta.parseRespuestaPregunta(lista.Cast <PreguntaParejasRespondida>().ToList());
            }
            else if (tipoExamen == "sa")
            {
                list = RespuestaPregunta.parseRespuestaPregunta(lista.Cast <PreguntaRespondidaCorta>().ToList());
            }
            else
            {
                return(false);
            }
            json = JsonConvert.SerializeObject(list);

            string response = await Comunicacion.sendResults(AplicationSettings.getToken(), AplicationSettings.getIdTest(), json, tiempo + "", numRespuestasCorrectas + "", tipoExamen);

            //Continuar por aqui...

            return(true);
        }
예제 #2
0
        public async Task <bool> getExamenCortas(string asignatura, string numPreguntas)
        {
            List <PreguntaInterface> preguntasExamen = new List <PreguntaInterface>();
            string response = await Comunicacion.getExamen(AplicationSettings.getToken(), asignatura, "sa", numPreguntas);

            JObject o = JObject.Parse(response);

            if ((string)o.SelectToken("error") == "200")
            {
                AplicationSettings.setIdTest((string)o.SelectToken("test"));
                JArray preguntas = (JArray)o.SelectToken("data");
                foreach (var p in preguntas)
                {
                    preguntasExamen.Add(new PreguntaCortaRespuesta(Convert.ToInt32((string)p.SelectToken("pk")),
                                                                   (string)p.SelectToken("enunciado"),
                                                                   (string)p.SelectToken("respuestaCorta"),
                                                                   Convert.ToInt32((string)p.SelectToken("tema"))));
                }
                if (getExanenCompletado != null)
                {
                    getExanenCompletado(this, new ExamenEventArgs(preguntasExamen));
                }
                return(true);
            }


            return(false);
        }
예제 #3
0
        public async Task <bool> getThemeFromServer(string asignatura)
        {
            List <Tema> temasAsignatura = new List <Tema>();
            string      response        = await Comunicacion.getTemaAsignatura(AplicationSettings.getToken(), asignatura);

            JObject o = JObject.Parse(response);

            if ((string)o.SelectToken("error") == "200")
            {
                JArray temas = (JArray)o.SelectToken("data");
                foreach (var t in temas)
                {
                    temasAsignatura.Add(new Tema(Convert.ToInt32((string)t.SelectToken("pk")),
                                                 (string)t.SelectToken("nombre"),
                                                 Convert.ToInt32(asignatura)));
                }

                if (getTemasServerCompletado != null)
                {
                    getTemasServerCompletado(this, new TemaEventServerArgs(temasAsignatura));
                }

                DB_Tema.insertAll(temasAsignatura);

                return(true);
            }
            return(false);
        }
        public async Task <bool> updateMensajesTablon(int idInit, int idFin, int idFaculty)
        {
            string response = await Comunicacion.updateMessages(AplicationSettings.getToken(), idInit + "", idFin + "", idFaculty + "");

            JObject json = JObject.Parse(response);

            if ((string)json.SelectToken("error") == "200")
            {
                List <UpdateMensajeTablon> listUpdate = new List <UpdateMensajeTablon>();
                JArray mensajeJArray = (JArray)json.SelectToken("data");
                foreach (var m in mensajeJArray)
                {
                    listUpdate.Add(new UpdateMensajeTablon(Convert.ToInt32((string)m.SelectToken("pk")),
                                                           Convert.ToInt32((string)m.SelectToken("num_fav")),
                                                           Convert.ToBoolean((string)m.SelectToken("user_favorited")),
                                                           Convert.ToBoolean((string)m.SelectToken("borrado"))));
                }

                dataBase.updateInfoMensajesTablon(listUpdate);

                if (updateMensajesTablonCompletado != null)
                {
                    updateMensajesTablonCompletado(this, new UpdateMensajesEventArgs(listUpdate));
                }

                return(true);
            }

            return(false);
        }
 private void BotonAgregarAsignatura_Click(object sender, RoutedEventArgs e)
 {
     //BD_AsignaturaExamen.insert(elementoSelecionadoAsignatura());
     Comunicacion_Asignatura.addAsingaturaFavorito(AplicationSettings.getToken(), elementoSelecionadoAsignatura());
     BotonAgregarAsignatura.IsEnabled = false;
     Notificacion.Text = elementoSelecionadoAsignatura().nombre + " se añadio";
 }
예제 #6
0
        private async void Enviar_Click(object sender, RoutedEventArgs e)
        {
            if (ListItemCurso.SelectedItem == null || ListItemCurso.SelectedItem.ToString() == "")
            {
                MessageBox.Show("Selecciona un curso");
                return;
            }
            if (ListItemAño.SelectedItem == null || ListItemAño.SelectedItem.ToString() == "")
            {
                MessageBox.Show("Selecciona un año");
                return;
            }
            if (ListItemAsignatura.SelectedItem == null || ListItemAsignatura.SelectedItem.ToString() == "")
            {
                MessageBox.Show("Selecciona una asignatura");
                return;
            }
            if (botonPulsado == 0)
            {
                MessageBox.Show("Selecciona almenos una imagen (Pulsa el boton + )");
                return;
            }
            GridCargando.Visibility = System.Windows.Visibility.Visible;
            string eltema = null;

            if (ListItemTema.SelectedItem != null && ListItemTema.SelectedItem.ToString() != "")
            {
                eltema = searchIdTheme() + "";
            }
            string masDeUnaImagen = "True";

            if (botonPulsado > 1)
            {
                masDeUnaImagen = "False";
            }
            string token = await Comunicacion.createDocument(AplicationSettings.getToken(),
                                                             searchIdAsignatrua() + "",
                                                             eltema,
                                                             ListItemAño.SelectedItem.ToString(),
                                                             "",
                                                             "notes",
                                                             masDeUnaImagen,
                                                             TextBoxDescription.Text,
                                                             fotos.ElementAt(0));

            for (int i = 1; i < fotos.Count; i++)
            {
                if (i + 1 == fotos.Count)
                {
                    await Comunicacion.updateDocument(token, "notes", "True", (i + 1) + "", fotos.ElementAt(i));
                }
                else
                {
                    await Comunicacion.updateDocument(token, "notes", "False", (i + 1) + "", fotos.ElementAt(i));
                }
            }
            GridCargando.Visibility = System.Windows.Visibility.Collapsed;
            MessageBox.Show("Mensaje subido, gracias por tu colaboracion");
        }
예제 #7
0
        public string Register()
        {
            string response     = "Operation Timeout Register";
            char   comunication = 'r';

            // We are re-using the _socket object initialized in the Connect method
            if (_socket != null)
            {
                //Creo los credenciales del registro.
                //ChatRegister credenciales = new ChatRegister(AplicationSettings.getToken(), AplicationSettings.getIdUniversidadUsuario());
                MensajeMovilLogin credenciales = new MensajeMovilLogin(AplicationSettings.getToken(), AplicationSettings.getIdUniversidadUsuario());

                //Paso la credencial a un string que tenga el JSON
                string credencialesJSON = JsonConvert.SerializeObject(credenciales);

                // Create SocketAsyncEventArgs context object
                SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs();

                // Set properties on context object
                socketEventArg.RemoteEndPoint = _socket.RemoteEndPoint;
                socketEventArg.UserToken      = null;

                // Inline event handler for the Completed event.
                // Note: This event handler was implemented inline in order
                // to make this method self-contained.
                socketEventArg.Completed += new EventHandler <SocketAsyncEventArgs>(delegate(object s, SocketAsyncEventArgs e)
                {
                    if (comunication == 'r')
                    {
                        response = e.SocketError.ToString();

                        // Unblock the UI thread
                        _clientDone_register.Set();
                    }
                });

                // Add the data to be sent into the buffer
                byte[] payload = Encoding.UTF8.GetBytes(credencialesJSON);
                socketEventArg.SetBuffer(payload, 0, payload.Length);

                // Sets the state of the event to nonsignaled, causing threads to block
                _clientDone_register.Reset();

                // Make an asynchronous Send request over the socket
                _socket.SendAsync(socketEventArg);

                // Block the UI thread for a maximum of TIMEOUT_MILLISECONDS milliseconds.
                // If no response comes back within this time then proceed
                _clientDone_register.WaitOne(TIMEOUT_MILLISECONDS);
            }
            else
            {
                response = "Socket is not initialized";
            }

            return(response);
        }
예제 #8
0
 private async Task <bool> sendImagePerfilServer(byte[] b)
 {
     if (b.Length > 0)
     {
         Comunicacion.sendImagePerfil(AplicationSettings.getToken(), b);
         return(true);
     }
     return(false);
 }
예제 #9
0
        private async void obtenerExamenApuntes(string idSubject, string idTheme, string type)
        {
            var doc = await Comunicacion.getDocuments(AplicationSettings.getToken(), idSubject, idTheme, type);

            foreach (var d in doc)
            {
                documentos.Add(d);
            }
            this.OnPropertyChanged("Documentos");
        }
예제 #10
0
        private void BotonBorrarAsignatura_Click(object sender, RoutedEventArgs e)
        {
            Comunicacion_Asignatura.deleteAsingaturaFavorito(AplicationSettings.getToken(), elementoSelecionadoAsignatura());
            var asignatura = elementoSelecionadoAsignatura().nombre;

            Notificacion.Text = asignatura + " ha sido borrada";
            asignaturas.Remove(elementoSelecionadoAsignatura());
            rellenarList();
            BotonBorrarAsignatura.IsEnabled = false;
            Notificacion.Text = "";
        }
        public async Task <bool> borrarMensaje(string idMensaje)
        {
            string response = await Comunicacion.deleteMensaje(AplicationSettings.getToken(), idMensaje);

            JObject json = JObject.Parse(response);

            if ((string)json.SelectToken("error") == "200")
            {
                return(true);
            }
            return(false);
        }
        public async Task <bool> getMensajesTablonFromServer(string idFacultad)
        {
            List <MensajeTablon> mensajesNuevos = new List <MensajeTablon>();
            var    asd      = dataBase.getMAXIdFormMensajeTablon(idFacultad);
            string response = await Comunicacion.getMensajes(AplicationSettings.getToken(), dataBase.getMAXIdFormMensajeTablon(idFacultad) + "", idFacultad);

            JObject json = JObject.Parse(response);

            if ((string)json.SelectToken("error") == "200")
            {
                List <int> idUsuariosDistintos = new List <int>();

                JArray jArray = (JArray)json["data"];
                foreach (var mensaje in jArray)
                {
                    JObject userInfo        = (JObject)mensaje.SelectToken("usuario");
                    string  asdasdasdsa     = (string)userInfo.SelectToken("image");
                    int     idUsuarioActual = Convert.ToInt32((string)userInfo.SelectToken("pk"));
                    mensajesNuevos.Add(new MensajeTablon(
                                           Convert.ToInt32((string)mensaje.SelectToken("pk")),
                                           idUsuarioActual,
                                           (string)userInfo.SelectToken("username"),
                                           (string)mensaje.SelectToken("texto"),
                                           //Comunicacion.baseURL  +  (string)userInfo.SelectToken("image"),
                                           Comunicacion.baseURL + "media/users/pic_image_" + (string)userInfo.SelectToken("pk") + ".jpg",
                                           Convert.ToInt32((string)mensaje.SelectToken("fecha_creacion")),
                                           Convert.ToInt32(idFacultad),
                                           Convert.ToInt32((string)mensaje.SelectToken("num_fav")),
                                           Convert.ToBoolean((string)mensaje.SelectToken("user_favorited"))));
                    if (idUsuariosDistintos.Contains(idUsuarioActual))
                    {
                        idUsuariosDistintos.Add(idUsuarioActual);
                    }
                }

                dataBase.insertAll(mensajesNuevos);

                if (getMensajesTablonServerCompletado != null)
                {
                    getMensajesTablonServerCompletado(this, new MensajesTablonServerEventArgs(mensajesNuevos));
                }
                return(true);
            }
            else if ((string)json.SelectToken("error") == "201")
            {
                if (getMensajesTablonServerCompletado != null)
                {
                    getMensajesTablonServerCompletado(this, new MensajesTablonServerEventArgs(mensajesNuevos));
                }
            }
            return(false);
        }
        public async Task <bool> favMesajeTablon(MensajeTablon message)
        {
            string response = await Comunicacion.favoriteMessage(AplicationSettings.getToken(), message.identificador + "");

            JObject json = JObject.Parse(response);

            if ((string)json.SelectToken("error") == "200")
            {
                dataBase.updateMessage(message);
                return(true);
            }
            return(false);
        }
예제 #14
0
        public static async Task <bool> CambiarFacultad(string idFacultad, string pass)
        {
            string result = await Comunicacion.cambiarFacultad(AplicationSettings.getToken(), pass, idFacultad);

            JObject o = JObject.Parse(result);

            if ((string)o.SelectToken("error") == "200")
            {
                return(true);
            }
            else
            {
                AplicationSettings.setErrorServer((string)o.SelectToken("error_msg"));
                return(false);
            }
        }
예제 #15
0
        public static async Task <bool> CambiarContraseña(string antiguaPass, string nuevaPass)
        {
            string result = await Comunicacion.cambiarContraseña(AplicationSettings.getToken(), antiguaPass, nuevaPass);

            JObject o = JObject.Parse(result);

            if ((string)o.SelectToken("error") == "200")
            {
                return(true);
            }
            else
            {
                AplicationSettings.setErrorServer((string)o.SelectToken("error_msg"));
                return(false);
            }
        }
예제 #16
0
        private async void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
        {
            ////Pie Chart Data Source
            //ObservableCollection<PieData> PieDataCollection = new ObservableCollection<PieData>()
            //{
            //    new PieData() { Title = "Correctas", Value = 60 },
            //    new PieData() { Title = "Falladas", Value = 25 },
            //    new PieData() { Title = "Sin Contestar", Value = 5 }
            //};
            //PieChart.DataSource = PieDataCollection;

            ////Line Chart Data Source
            //ObservableCollection<LineData> LineDataCollection = new ObservableCollection<LineData>()
            //{
            //    new LineData { Category = "E1", Line1 = 80, Line2 = 40, Line3 = 50 },
            //    new LineData { Category = "E2", Line1 = 50, Line2 = 70, Line3 = 40 },
            //    new LineData { Category = "E3", Line1 = 60, Line2 = 50, Line3 = 20 },
            //    new LineData { Category = "E4", Line1 = 10, Line2 = 30, Line3 = 50 },
            //    new LineData { Category = "E5", Line1 = 40, Line2 = 10, Line3 = 70 }
            //};
            //LineChart.DataSource = LineDataCollection;
            estadisticas = await Comunicacion.getStatic(AplicationSettings.getToken());

            if (estadisticas.test != null)
            {
                ObservableCollection <PieData> PieDataCollection = new ObservableCollection <PieData>();
                PieDataCollection.Add(new PieData("Correctas", estadisticas.per_correcta));
                PieDataCollection.Add(new PieData("Incorrectas", estadisticas.per_incorrecta));
                PieDataCollection.Add(new PieData("No Respondidas", estadisticas.per_noRespondida));

                PieChart.DataSource = PieDataCollection;

                ObservableCollection <LineData> LineDataCollection = new ObservableCollection <LineData>();
                int i = 1;
                foreach (var a in estadisticas.test)
                {
                    LineDataCollection.Add(new LineData {
                        Category = "Test" + i, Line1 = a.correctasSobreCien(), Line2 = a.falladasSobreCien(), Line3 = a.sinResponderSobreCien()
                    });
                    i++;
                }
                LineChart.DataSource = LineDataCollection;

                NotaMedia.Text   = (double)(estadisticas.per_correcta / 10) + "";
                TiempoMedio.Text = (double)(estadisticas.avg_tiempo / 1000) + " s";
            }
        }
        public async Task <bool> postMensajeTablon(string mensaje, string idFacultad)
        {
            string response = await Comunicacion.postMensaje(AplicationSettings.getToken(), mensaje, idFacultad);

            JObject json = JObject.Parse(response);

            if ((string)json.SelectToken("error") == "200")
            {
                List <MensajeTablon> mensajesNuevos = new List <MensajeTablon>();
                //HAY QUE PONER EL ID DEL USUARIO CORRECTO!!!!
                JArray mensajeJArray = (JArray)json.SelectToken("data");

                foreach (var mensajeJson in mensajeJArray)
                {
                    mensajesNuevos.Add(new MensajeTablon(Convert.ToInt32((string)mensajeJson.SelectToken("pk")),
                                                         Convert.ToInt32((string)mensajeJson.SelectToken("usuario").SelectToken("pk")),
                                                         (string)mensajeJson.SelectToken("usuario").SelectToken("username"),
                                                         mensaje,
                                                         Comunicacion.baseURL + "media/users/pic_image_" + (string)mensajeJson.SelectToken("usuario").SelectToken("pk") + ".jpg",
                                                         Convert.ToInt32((string)mensajeJson.SelectToken("fecha_creacion")),
                                                         Convert.ToInt32(idFacultad),
                                                         0,
                                                         false));
                }

                //dbConn = new SQLiteConnection(DB_PATH);
                //dbConn.InsertAll(mensajesNuevos);
                if (AplicationSettings.GetAnonimo())
                {
                    mensajesNuevos[0].nombre = "Anónimo";
                    mensajesNuevos[0].foto   = Comunicacion.baseURL + "media/users/no_image.png";
                }
                dataBase.insertAll(mensajesNuevos);

                if (getMensajesTablonServerCompletado != null)
                {
                    getMensajesTablonServerCompletado(this, new MensajesTablonServerEventArgs(mensajesNuevos));
                }

                return(true);
            }
            return(false);
        }
예제 #18
0
 private async void ListPicker_CursoSeleccioando(object sender, SelectionChangedEventArgs e)
 {
     if (ListItemCurso.SelectedItem != null && ListItemCurso.SelectedItem.ToString() != "")
     {
         List <string> asig = new List <string>();
         asig.Add("");
         asignaturas = BD_AsignaturaCurso.getAsignaturasDelCurso(ListItemCurso.SelectedItem.ToString());
         if (asignaturas.Count == 0)
         {
             asignaturas = await Comunicacion_Asignatura.getAsignaturas(AplicationSettings.getToken(), ListItemCurso.SelectedItem.ToString(), AplicationSettings.getIdFacultadUsuario());
         }
         foreach (var a in asignaturas)
         {
             asig.Add(a.abreviatura);
         }
         ListItemAsignatura.ItemsSource = asig;
         ListItemAsignatura.IsEnabled   = true;
     }
 }
예제 #19
0
        public async void sincronizarFavConServer()
        {
            var asignaturasFromDB = await Comunicacion_Asignatura.getAsignaturaFavoritasFromServer(AplicationSettings.getToken());

            var a = new ObservableCollection <Asignatura>();

            foreach (var asignaturaInsertar in asignaturasFromDB)
            {
                a.Add(asignaturaInsertar);
            }
            Asignaturas = a;
        }
예제 #20
0
        private async void Enviar_Click(object sender, RoutedEventArgs e)
        {
            if (ListItemCurso.SelectedItem == null || ListItemCurso.SelectedItem.ToString() == "")
            {
                MessageBox.Show("Selecciona un curso");
                return;
            }
            if (ListItemAño.SelectedItem == null || ListItemAño.SelectedItem.ToString() == "")
            {
                MessageBox.Show("Selecciona un año");
                return;
            }
            if (ListItemAsignatura.SelectedItem == null || ListItemAsignatura.SelectedItem.ToString() == "")
            {
                MessageBox.Show("Selecciona una asignatura");
                return;
            }
            if (ListItemMes.SelectedItem == null || ListItemMes.SelectedItem.ToString() == "")
            {
                MessageBox.Show("Selecciona un mes");
                return;
            }
            if (botonPulsado == 0)
            {
                MessageBox.Show("Selecciona almenos una imagen (Pulsa el boton + )");
                return;
            }
            //MessageBox.Show("Mandado.");
            GridCargando.Visibility = System.Windows.Visibility.Visible;
            string eltema = null;

            if (ListItemTema.SelectedItem != null && ListItemTema.SelectedItem.ToString() != "")
            {
                eltema = searchIdTheme() + "";
            }
            string masDeUnaImagen = "True";

            if (botonPulsado > 1)
            {
                masDeUnaImagen = "False";
            }
            string token = await Comunicacion.createDocument(AplicationSettings.getToken(),
                                                             searchIdAsignatrua() + "",
                                                             eltema,
                                                             ListItemAño.SelectedItem.ToString(),
                                                             monthToNumber() + "",
                                                             "exam",
                                                             masDeUnaImagen,
                                                             "",
                                                             foto1);

            switch (botonPulsado)
            {
            case 2:
                await Comunicacion.updateDocument(token, "exam", "True", "2", foto2);

                break;

            case 3:
                await Comunicacion.updateDocument(token, "exam", "False", "2", foto2);

                await Comunicacion.updateDocument(token, "exam", "True", "3", foto3);

                break;

            case 4:
                await Comunicacion.updateDocument(token, "exam", "False", "2", foto2);

                await Comunicacion.updateDocument(token, "exam", "False", "3", foto3);

                await Comunicacion.updateDocument(token, "exam", "True", "4", foto4);

                break;

            case 5:
                await Comunicacion.updateDocument(token, "exam", "False", "2", foto2);

                await Comunicacion.updateDocument(token, "exam", "False", "3", foto3);

                await Comunicacion.updateDocument(token, "exam", "False", "4", foto4);

                await Comunicacion.updateDocument(token, "exam", "True", "5", foto5);

                break;
            }

            GridCargando.Visibility = System.Windows.Visibility.Collapsed;
            MessageBox.Show("Mensaje subido, gracias por tu colaboracion");
        }
예제 #21
0
        private async void obtenerAsignaturas()
        {
            var asignaturasFromDB = BD_Asignaturas.getAsignaturasExamen();

            if (asignaturasFromDB.Count == 0)
            {
                asignaturasFromDB = await Comunicacion_Asignatura.getAsignaturaFavoritasFromServer(AplicationSettings.getToken());
            }

            foreach (var asignaturaInsertar in asignaturasFromDB)
            {
                Asignaturas.Add(asignaturaInsertar);
            }
        }