public bool crearAlerta(bd_simaEntitie db, MAlerta Malerta) { bool creada = true; try { Alertas alerta = new Alertas { creador = Malerta.creador, eliminada = Malerta.eliminada, fecha_creada = Malerta.fecha_creada, id = Malerta.id, mensaje = Malerta.mensaje, perfil_ver = Malerta.perfil_ver, tipo_alerta = Malerta.tipo_alerta, titulo = Malerta.titulo, vista = Malerta.vista }; db.Alertas.Add(alerta); db.SaveChanges(); } catch (Exception) { creada = false; } return(creada); }
public String guardar(bd_simaEntitie db, FormCollection datos_notas) { Sesion sesion = new Sesion(); String guardado = "OK"; String asignatura = sesion.getMateria_nota(); String programa = sesion.getPrgrama_notas(); String grupo = sesion.getGrupo_nota(); String id_docente = sesion.getIdUsuario(); try { using (var transaccion = new TransactionScope()) { using (var contestTransaccion = new bd_simaEntitie()) { // se comprueba que las columnas contenca una nota y las filas un estuniente como minimo // se bene de restar los datos difrente a los de la tabla que vengan (datos_notas.AllKeys.ToList().Count()-1) if ((datos_notas.GetValues(0).Count() - 1 > 2) && (datos_notas.AllKeys.ToList().Count() - 1 > 2)) { List <String> cabezaTabla = datos_notas.GetValues(0).ToList(); // no se permite q el nombre de las actividades sean las misma if (cabezaTabla.Distinct().Count() == cabezaTabla.Count()) { eliminaCalificaciones(db, id_docente, programa, grupo, asignatura); calificaciones_periodo calificacion = new calificaciones_periodo { asignatura = asignatura, corte = 1, fecha_registro = DateTime.Now, grupo = grupo, id_docente = id_docente, periodo = MConfiguracionApp.getPeridoActual(db), programa = programa }; db.calificaciones_periodo.Add(calificacion); db.SaveChanges(); List <String> claves = datos_notas.AllKeys.ToList(); // cabeceras tabla int n = datos_notas.GetValues(0).Count(); double valorNota = 0; NumberFormatInfo provider = new NumberFormatInfo(); provider.NumberDecimalSeparator = ","; /// se recorren las filas de la tabla // si se envian otros valores en el formulario, se debe de restar en el (claves.Count()-n) del primer for // siempre se suma -1 porque la ultima fila siempre esta vacia // se inicia en 1 porque la primera fila es la que contiene el nombre de las actividades for (int i = 1; i < claves.Count() - 1; i++) { List <String> dato = datos_notas.GetValues(claves[i]).ToList(); guardado = validaFila(cabezaTabla.Count(), dato, provider); if (guardado.Equals("OK")) { /// se recorren las columnas, las dos primeras columnas no se toman /// //se suma -1 porque la ultma columna siempre esta vacia for (int j = 2; j < n - 1; j++) { valorNota = Convert.ToDouble(dato[j], provider); Notas nota = new Notas { id_calificaciones_periodo = calificacion.id, id_estudiante = dato[0], tipo = cabezaTabla[j], valor = valorNota }; db.Notas.Add(nota); db.SaveChanges(); } } else { break; } } if (guardado.Equals("OK")) { MAlerta alerta = new MAlerta { creador = "SIMA", eliminada = 0, fecha_creada = DateTime.Now, mensaje = "Actualización de calificaciones del estudiante ", perfil_ver = "Administrador", tipo_alerta = "Notas", titulo = "CALIFICACIONES " + asignatura, vista = 0 }; alerta.crearAlerta(db, alerta); transaccion.Complete(); } } else { guardado = "El nombre de las actividades no pueden ser el mismo."; } } else { guardado = "Se debe de registrar como minimo una nota y un estunate antes de guardar."; } } } } catch (Exception) { guardado = "Error al guardar"; } return(guardado); }