/// <summary> /// Carga la lista de preguntas al objeto usuario /// </summary> /// <param name="user"></param> static public void CargarListaPreguntas(Usuario user) { user.Preguntas = ABMPregunta.GetPreguntas(user.IdUsuario); foreach (Pregunta p in user.Preguntas) { string estadoInicial = p.Estado; p.ChequearEstado(); string estadoFinal = p.Estado; if (estadoInicial != estadoFinal) { // Se debe cambiar el estado de la pregunta en la base de datos ABMPregunta.ActualizarEstado(p.IdPregunta, estadoFinal); } } // Asignar la referencia al user para cada una de sus preguntas // y cargar sus listas de respuestas foreach (Pregunta p in user.Preguntas) { p.UserPregunta = user; CargarListaRespuestas(p); } }
/// <summary> /// Crea una nueva pregunta sin imagen en la base de datos y recarga la lista de preguntas del usuario /// </summary> /// <param name="userPregunta"></param> /// <param name="tituloPreg"></param> /// <param name="descripcionPreg"></param> public static void HacerPregunta(Usuario userPregunta, string tituloPreg, string descripcionPreg) { // Alta en base de datos ABMPregunta.AltaPregunta(userPregunta.IdUsuario, tituloPreg, descripcionPreg); // Recarga la lista de preguntas CargarListaPreguntas(userPregunta); }
/// <summary> /// Actualiza la base de datos en la pregunta /// con la respuesta seleccionada /// y vincula la referencia a la solucion en la pregunta /// </summary> /// <param name="resp"></param> /// <param name="preg"></param> public static void SolucionarPregunta(Respuesta resp, Pregunta preg) { if (preg.EstaSolucionada() == false) { ABMPregunta.UpdateSolucionPregunta(preg.IdPregunta, resp.IdRespuesta); preg.Solucion = resp; preg.IdSolucion = resp.IdRespuesta; preg.Estado = "Solucionada"; } }
/// <summary> /// Retorna una lista de preguntas con sus listas de respuestas cargadas /// </summary> /// <returns></returns> public static List <Pregunta> ObtenerTodasLasPreguntas() { List <Pregunta> todasLasPreguntas = ABMPregunta.GetPreguntas(); foreach (Pregunta p in todasLasPreguntas) { string estadoInicial = p.Estado; p.ChequearEstado(); string estadoFinal = p.Estado; if (estadoInicial != estadoFinal) { // Se debe cambiar el estado de la pregunta en la base de datos ABMPregunta.ActualizarEstado(p.IdPregunta, estadoFinal); } } todasLasPreguntas.ForEach(p => p.UserPregunta = ABMUsuario.GetUsuario(p.IdUserPregunta)); todasLasPreguntas.ForEach(p => CargarListaRespuestas(p)); return(todasLasPreguntas); }
/// <summary> /// Elimina una pregunta de la base de datos /// y la quita de la lista de preguntas del usuario /// </summary> /// <param name="preg"></param> public static void EliminarPregunta(Pregunta preg) { ABMPregunta.BajaPregunta(preg.IdPregunta); preg.UserPregunta.Preguntas.Remove(preg); }