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;
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #4
0
    private void Awake()
    {
        instance      = this;
        _boardManager = GetComponent <BoardManager>();
        xmlFileWriter = GetComponent <XmlFileWriter>();

        InitGame();
    }
Beispiel #5
0
    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 :-)
    }
Beispiel #6
0
        /// <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);
            }
        }
Beispiel #7
0
 public WriteDataToXml(XmlFileWriter xmlWriter)
 {
     _xmlWriter = xmlWriter;
 }