public bool ActualizarEvaluacion(object[,] VResultados, int ideval, bool estado) { try { var results = from e in db.ResultadosByEvaluacions where e.IdEvaluacion == ideval select e; int contvector = 0; for (int i = 0; i < VResultados.GetLength(0); i++) { int contador = 0; foreach (var item in results) { int idpregunta = 0; if (VResultados[contvector, 0] != null) idpregunta = Convert.ToInt32(VResultados[contvector, 0]); if (idpregunta != 0) { if (item.Resultado.IdPregunta == idpregunta) { if (VResultados[contvector, 2] != null && VResultados[contvector, 2].ToString() != "") { if (VResultados[contvector, 1] != null) { item.Resultado.Valor = (bool)VResultados[contvector, 1]; item.Resultado.Sesiones = Convert.ToInt32(VResultados[contvector, 2]); item.Resultado.Pendiente = (bool)VResultados[contvector, 3]; db.SubmitChanges(); } } else { if (VResultados[contvector, 1] != null) { item.Resultado.Valor = (bool)VResultados[contvector, 1]; item.Resultado.Pendiente = (bool)VResultados[contvector, 3]; db.SubmitChanges(); } } contador++; break; } } } if (contador == 0) { int idpregunta = 0; if (VResultados[contvector, 0] != null) idpregunta = Convert.ToInt32(VResultados[contvector, 0]); if (idpregunta != 0) { Resultado objResultados = null; if (VResultados[contvector, 2] != null && VResultados[contvector, 2].ToString() != "") { if (VResultados[contvector, 1] != null) { objResultados = new Resultado { IdPregunta = Convert.ToInt32(VResultados[contvector, 0]), Valor = Convert.ToBoolean(VResultados[contvector, 1]), Sesiones = Convert.ToInt32(VResultados[contvector, 2]), Pendiente = Convert.ToBoolean(VResultados[contvector, 3]) }; } else { objResultados = new Resultado { IdPregunta = Convert.ToInt32(VResultados[contvector, 0]) }; } } else { if (VResultados[contvector, 1] != null) { objResultados = new Resultado { IdPregunta = Convert.ToInt32(VResultados[contvector, 0]), Valor = Convert.ToBoolean(VResultados[contvector, 1]), Pendiente = Convert.ToBoolean(VResultados[contvector, 3]) }; } else { objResultados = new Resultado { IdPregunta = Convert.ToInt32(VResultados[contvector, 0]) }; } } if (objResultados != null) { db.Resultados.InsertOnSubmit(objResultados); db.SubmitChanges(); ResultadosByEvaluacion objResultadosByEvaluacion = new ResultadosByEvaluacion { IdEvaluacion = ideval, IdResultado = objResultados.IdResultados }; db.ResultadosByEvaluacions.InsertOnSubmit(objResultadosByEvaluacion); db.SubmitChanges(); } } } contvector++; } var eval = (from ev in db.Evaluacions where ev.IdEvaluacion == ideval select ev).Single(); if (estado) eval.IdEstado = 2; else eval.IdEstado = 1; db.SubmitChanges(); return true; } catch (Exception) { return false; } }
/// <summary> /// Inserta una coleccion de resultados basandose en un arreglo bidimensional /// que requiere como parametro. /// </summary> /// <param name="ResultadosByPre">Colleccion del tipo object[,] que contiene los resultados obtenidos para la evaluacion</param> /// <param name="idEvaluacion">Id de la evaluacion a la que pertenece la coleccion de resultados</param> /// <returns></returns> private bool InsertarResultados(object[,] ResultadosByPre, int idEvaluacion) { try { /*Se Crea un clico for para recorrer una coleccion bidimencioal que *almacena la informacion que se obtubo luego de responder la evaluacion*/ for (int i = 0; i < ResultadosByPre.GetLength(0); i++) { Resultado objResultados = null; /*Instancio un nuevo elemento del tipo Resultados*/ if (ResultadosByPre[i, 1] != null) { if (ResultadosByPre[i, 2] != null && ResultadosByPre[i, 2].ToString() != "") { objResultados = new Resultado { /*Asigno a los parametros de el mismo objeto los valores de la coleccion*/ IdPregunta = (int)ResultadosByPre[i, 0], Valor = (bool)ResultadosByPre[i, 1], Sesiones = Convert.ToInt32(ResultadosByPre[i, 2]), Pendiente = (bool)ResultadosByPre[i, 3] }; } else { objResultados = new Resultado { /*Asigno a los parametros de el mismo objeto los valores de la coleccion*/ IdPregunta = (int)ResultadosByPre[i, 0], Valor = (bool)ResultadosByPre[i, 1], Pendiente = (bool)ResultadosByPre[i, 3] }; } } else { if (ResultadosByPre[i, 2] != null && ResultadosByPre[i, 2].ToString() != "") { objResultados = new Resultado { /*Asigno a los parametros de el mismo objeto los valores de la coleccion*/ IdPregunta = (int)ResultadosByPre[i, 0], Sesiones = Convert.ToInt32(ResultadosByPre[i, 2]), Pendiente = (bool)ResultadosByPre[i, 3] }; } else { objResultados = new Resultado { /*Asigno a los parametros de el mismo objeto los valores de la coleccion*/ IdPregunta = (int)ResultadosByPre[i, 0], Pendiente = (bool)ResultadosByPre[i, 3] }; } } /*Realizo el proceso de insercion en el modelo de base de datos *con el objeto actual */ db.Resultados.InsertOnSubmit(objResultados); /*Ejecuto el proceso de grabado en la base de datos este proceso se realiza * por resultado para evitar perdida de informacion en un comit general */ db.SubmitChanges(); /*Obtengo el ultimo id de resultado insertado*/ int idResultado = (from r in db.Resultados select r.IdResultados).Max(); /*Instancion un objeto del tipo ResultadosByEvaluacion*/ ResultadosByEvaluacion objResultadosByEvaluacion = new ResultadosByEvaluacion { /*Asigno los valores de los parametos del metodo presente * a los parametros del objeto del tipo ResultadosByEvaluacion * actual */ IdEvaluacion = idEvaluacion, IdResultado = idResultado }; /*Realizo el proceso de insercion para el objeto ResultadosByEvaluacion*/ db.ResultadosByEvaluacions.InsertOnSubmit(objResultadosByEvaluacion); db.SubmitChanges(); } /*retorno un valor verdadero en caso de no presentar excepcion de ningun tipo*/ return true; } /*En caso de presentar una excepcion retorno un valor false*/ catch (Exception) { return false; } }
partial void DeleteResultado(Resultado instance);
partial void UpdateResultado(Resultado instance);
partial void InsertResultado(Resultado instance);
private void detach_Resultados(Resultado entity) { this.SendPropertyChanging(); entity.Pregunta = null; }