//Transforma los alumnos del curso en alumnos de esta instancia especifica. private void TransformarAlumnosCurso(Curso c) { List<AlumnoTemplate> listAlumnosTemporales = new List<AlumnoTemplate>(); foreach (Alumno al in c.Alumnos) { AlumnoTemplate alch = new AlumnoTemplate(al); listAlumnosTemporales.Add(alch); } c.Alumnos.Clear(); foreach (AlumnoTemplate ac in listAlumnosTemporales) { c.Alumnos.Add(ac); } }
public void GuardarCurso(Curso c, List<Alumno> alumnos) { XmlWriterSettings xws = new XmlWriterSettings(); xws.Indent = true; xws.Encoding = Encoding.UTF8; XmlWriter writer = XmlWriter.Create(xmlpath, xws); c.PathArchivoCurso = xmlpath; writer.WriteStartElement("root"); writer.WriteStartElement("Curso"); //atributos de curso writer.WriteAttributeString("nivel", c.Nivel.ToString(CultureInfo.InvariantCulture)); writer.WriteAttributeString("letra", c.Letra); writer.WriteAttributeString("id", c.Id.ToString(CultureInfo.InvariantCulture)); writer.WriteAttributeString("idInstitucion", c.idInstitucion.ToString(CultureInfo.InvariantCulture)); writer.WriteAttributeString("academicPeriodId", c.AcademicPeriodId.ToString(CultureInfo.InvariantCulture)); BaseTools.SymbolIdentificator = 1; //alumnos foreach (Alumno a in alumnos) { if (string.IsNullOrEmpty(a.Simbolo)) { a.Simbolo = "Icono" + BaseTools.GetSymbolIdentificator() + ".png"; } c.Alumnos.Add(a); writer.WriteStartElement("Alumno"); writer.WriteAttributeString("id", a.ID.ToString(CultureInfo.InvariantCulture)); writer.WriteAttributeString("nombre", a.Nombre); writer.WriteAttributeString("apellido", a.Apellido); writer.WriteAttributeString("Dni", a.Dni); writer.WriteAttributeString("simbolo", a.Simbolo); writer.WriteEndElement(); } //end para curso writer.WriteEndElement(); //Inicio Plugins writer.WriteStartElement("Plugins"); //end para Plugins writer.WriteEndElement(); //end para root writer.WriteEndElement(); writer.Close(); }
/// <summary> /// Se entregan los datos del arbol XML respectivo para poder cargar los datos del juego. /// </summary> /// <param name="nodos"></param> public void loadData(Curso c, XmlNodeList nodos) { //Guardamos los nodos originales GameContext.Instance.nodosIniciales = nodos; //Transformamos los alumnos del curso TransformarAlumnosCurso(c); //Guardamos una instancia del curso actual para poder ver datos posteriores. GameContext.Instance.cursoJuego = c; foreach (XmlNode node in nodos[0]) { if (node.NodeType == XmlNodeType.Comment) continue; #region Cargado de Sesion int id = Convert.ToInt32(node.Attributes["id"].Value); int id_pred = Convert.ToInt32(node.Attributes["predecesora"].Value); DateTime inicio = DateTime.Now; DateTime final = inicio; if (node.Attributes["inicio"].Value != "") { inicio = DateTime.Parse(node.Attributes["inicio"].Value); } if (node.Attributes["final"].Value != "") { final = DateTime.Parse(node.Attributes["final"].Value); } SesionTemplate sc = new SesionTemplate(id, id_pred, inicio, true); c.Sesiones.Add((Sesion)sc); #endregion /* INSERTAR CODIGO DE LECTURA DE DATOS */ } #region Creacion de nueva Sesion Sesion s = c.getUltimaSesion(); SesionTemplate nuevaSesion; if (s != null) { nuevaSesion = new SesionTemplate(s.NumeroSesion + 1, s.NumeroSesion, DateTime.Now, false); } else { nuevaSesion = new SesionTemplate(1, -1, DateTime.Now, false); } c.SesionActual = nuevaSesion; c.Sesiones.Add((Sesion)nuevaSesion); #endregion }
/// <summary> /// Lee los alumnos de un xml de un curso. /// </summary> /// <param name="reader"></param> /// <param name="curso"></param> private void LeerAlumnosCurso(XmlReader reader, Curso curso) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (reader.Name == "Alumno") { int id = int.Parse(reader.GetAttribute("id"), CultureInfo.InvariantCulture); string nombre = reader.GetAttribute("nombre"); string apellidop = reader.GetAttribute("apellido"); string simbolo = reader.GetAttribute("simbolo"); Alumno alumno = new Alumno(id, nombre, apellidop, simbolo); curso.AgregarAlumno(alumno); } } else if (reader.NodeType == XmlNodeType.EndElement && reader.Name != "Alumno") { break; } } }