public void SaveChanges(string name) { var fileName = ConfigurationManager.AppSettings[name]; switch (name) { case GROUP: XmlFileWriter.Serialize(fileName, FileMode.Create, Groups); break; case SCHEDULE: XmlFileWriter.Serialize(fileName, FileMode.Create, Schedules); break; case STUDENT: XmlFileWriter.Serialize(fileName, FileMode.Create, Students); break; case LESSON: XmlFileWriter.Serialize(fileName, FileMode.Create, Lessons); break; case ABSENT: XmlFileWriter.Serialize(fileName, FileMode.Create, Absents); break; } }
public FileResult ExportXML(int idRel) { StringBuilder path = new StringBuilder(); XmlWriterSettings xmlPostavke = new XmlWriterSettings(); xmlPostavke.Indent = true; path.Append(Server.MapPath("/")).Append("Relations\\").Append("REL-").Append(idRel).Append(".xml"); DataTable tbl = relacijaRepository.GetTblRelacije(); DataRow relRow = null; relRow = tbl.Rows.OfType <DataRow>().First(k => int.Parse(k["IDRelacija"].ToString()) == idRel); if (relRow != null) { Relacija r = new Relacija(); r.IDRelacija = idRel; r.GradPolazakID = int.Parse(relRow["GradPolazakID"].ToString()); r.GradDolazakID = int.Parse(relRow["GradDolazakID"].ToString()); r.PutniNalogID = int.Parse(relRow["PutniNalogID"].ToString()); r.Kilometraza = int.Parse(relRow["Kilometraza"].ToString()); r.PrijevozIznos = int.Parse(relRow["PrijevozIznos"].ToString()); XmlFileWriter writer = new XmlFileWriter(r); writer.Write(path.ToString()); byte[] xmlBytes = System.IO.File.ReadAllBytes(path.ToString()); return(File(xmlBytes, System.Net.Mime.MediaTypeNames.Application.Octet, Path.GetFileName(path.ToString()))); } return(null); }
static void ExportAsXML() { var reviews = GetReviews(); var writer = new XmlFileWriter(_xmlRootDir); XMLCreator xmlCreator = new XMLCreator(writer, _xmlRootDir); xmlCreator.CreateXMLsFrom(reviews); }
private void Awake() { instance = this; _boardManager = GetComponent <BoardManager>(); xmlFileWriter = GetComponent <XmlFileWriter>(); InitGame(); }
static void Main(string[] args) { // Phase 1 // Wir legen zwei Objekte an, die Daten unerschiedlichen // Formats in Dateien schreiben XmlFileWriter myXmlFileWriter = new XmlFileWriter(); myXmlFileWriter.SetName("DataFile.xml"); myXmlFileWriter.WriteToFile("MessdatenMessdaten"); //IWriter Writer1 = new JsonFileWriter(); //Writer1.SetName("DataFile1"); // keine Element des Interfaces! //Writer1.WriteToFile("MessdatenMessdaten"); // Phase 2 ("Closely coupled classes") // Wir wollen die Methoden abermals erweitern // und die Daten vor dem Schreiben filtern // Dazu implementieren wir eine neue Klasse //WriteDataToXml xmlWriter = new WriteDataToXml(myXmlFileWriter); //xmlWriter.Write("DatenDatenDaten"); // Was stört? // 1. Sobald wir "XmlFileWriter" anpassen, muss auch // FilteredDataToXML korrigiert werden // 2. Wir schreiben eine Klasse für xml, eine für json usw. :-( // Phase 2 ("Losely coupled classes") // Wir ersetzen die "feste Integration" durch ein // Interface. Jede Klasse die dieses Interface bedient, kann dann // eingebundne werden. WriteData xmlOutput = new WriteData(myXmlFileWriter); xmlOutput.Write("DiesUndJenes"); JsonFileWriter myJsonFileWriter = new JsonFileWriter(); myJsonFileWriter.SetName("Data.json"); WriteData jsonOutput = new WriteData(myJsonFileWriter); jsonOutput.Write("UndNochWasAnderes"); // Ziel erreicht :-) }
/// <summary> /// Charge la configuration de l'historique de création. /// </summary> /// <param name="classByTableMap">Map nom de table => classe de la table.</param> /// <param name="configurationFilePath">Chemin du fichier de configuration.</param> private static void LoadConfigurationHistoriqueCreation(IDictionary <string, ModelClass> classByTableMap, string configurationFilePath) { if (!File.Exists(configurationFilePath)) { Console.WriteLine("Fichier de configuration absent : " + configurationFilePath); return; } Console.WriteLine("Chargement de la configuration de l'historique de création des colonnes..."); // Chargement du fichier de configuration. var xDoc = XDocument.Load(configurationFilePath); // Lecture et affectation des ordres de colonnes. var tablesNode = xDoc.Root.Element("Tables"); var tableNodes = tablesNode.Elements().ToList(); foreach (XElement tableNode in tableNodes) { var tableName = tableNode.Attribute("name").Value; ModelClass clazz; if (!classByTableMap.TryGetValue(tableName, out clazz)) { Console.WriteLine("Nom de table inconnu : " + tableName); continue; } var propertyByColumnMap = clazz.PersistentPropertyList.ToDictionary(x => x.DataMember.Name); var index = 0; foreach (XElement columnNode in tableNode.Elements()) { var columnName = columnNode.Attribute("name").Value; ModelProperty property; if (!propertyByColumnMap.TryGetValue(columnName, out property)) { Console.WriteLine("Colonne inconnue : " + tableName + "." + columnName); continue; } // Stockage de l'ordre index++; property.DataMember.Order = index; } // Calcul de l'ordre pour les nouvelles colonnes. var addedColumnList = propertyByColumnMap.Values.Where(x => x.DataMember.Order == null).ToList(); foreach (var property in addedColumnList) { index++; property.DataMember.Order = index; } // Ajout des nouvelles colonnes à l'XML de configuration, à la fin de la table. var addedElementList = addedColumnList.Select(x => new XElement( "Column", new XAttribute("name", x.DataMember.Name))); foreach (var newItem in addedElementList) { tableNode.Add(newItem); } } // Créé les nouvelles tables. var tableNodeMap = tableNodes.ToDictionary(x => x.Attribute("name").Value); Dictionary <string, ModelClass> classByTableMapSansView = new Dictionary <string, ModelClass>(); foreach (var kvp in classByTableMap) { if (!kvp.Value.IsView) { classByTableMapSansView.Add(kvp.Key, kvp.Value); } } var addedTableNameList = classByTableMapSansView.Keys.Where(x => !tableNodeMap.ContainsKey(x)).ToList(); var addedTableNodeList = addedTableNameList.Select(tableName => { var clazz = classByTableMap[tableName]; XElement tableNode = new XElement("Table", new XAttribute("name", tableName)); foreach (var column in clazz.PersistentPropertyList) { var columnNode = new XElement("Column", new XAttribute("name", column.DataMember.Name)); tableNode.Add(columnNode); } return(tableNode); }).ToList(); // Ajoute les nouvelles tables aux anciennes. tableNodes.AddRange(addedTableNodeList); // Trie les tables par ordre alphabétiques. tableNodes = tableNodes.OrderBy(x => x.Attribute("name").Value).ToList(); // Remplace la collection dans le document XML. tablesNode.RemoveNodes(); tablesNode.Add(tableNodes.ToArray()); Console.WriteLine("Chargement de la configuration de l'historique de création des colonnes terminé."); // Sauvegarde du fichier avec les nouvelles colonnes. try { Console.WriteLine("Sauvegarde de la configuration de l'historique de création des colonnes...."); using (TextWriter tw = new XmlFileWriter(configurationFilePath)) { xDoc.Save(tw); } Console.WriteLine("Sauvegarde de la configuration de l'historique de création des colonnes terminé."); } catch (Exception ex) { Console.WriteLine("Echec de la sauvegarde de " + configurationFilePath); Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); } }
public WriteDataToXml(XmlFileWriter xmlWriter) { _xmlWriter = xmlWriter; }