Exemplo n.º 1
0
        /// <summary>
        /// Sérialize, c'est à dire met les informations souhaitées au format XML.
        /// On utilise les références using System.IO pour l'écriture de fichier (de C# vers Editix)
        /// et System.Xml.Serialization pour les méthodes relatives à la mise au format XML
        /// </summary>
        public void SerializerXML()
        {
            DaoProvider daoProvider = new DaoProvider();
            //On récupère tous les fournisseurs de la base de données dont au moins un des produits qu'il fournissent ont
            //leur stock actuel inférieur à leur stock minimal
            List <Provider> providers = daoProvider.ReadAllWithProductToRestock();
            //On crée la liste des Fournisseur que l'on mettra dans le fichier XML.
            //Elle a comme attributs le nom du fournisseur et les produits à réapprovisionner
            //qui ont aussi une classe dédiée (Nom du produit et la quantité à commander [stock max - stock actuel])
            List <ProviderXML> providersXML = new List <ProviderXML>();

            //On parcourt chaque fournisseur de la liste
            foreach (Provider provider in providers)
            {
                //On récupère la liste des produits fournis par ce fournisseur dont leur stock actuel est inférieur à leur
                //stock minimal

                //On crée la liste des ProduitXML (classe définie en dessous)
                List <ProductXML> productsXML = new List <ProductXML>();

                //On parcourt chaque produit de la liste de produits à réapprovisionner de chaque fournisseur
                foreach (Product product in provider.Products)
                {
                    ProductXML productXML = new ProductXML
                    {
                        Nom = product.Name,
                        Quantite_A_Commander = product.QuantityToOrder
                    };
                    productsXML.Add(productXML);
                }
                ProviderXML providerXML = new ProviderXML(provider);
                providerXML.Produits = productsXML;
                providersXML.Add(providerXML);
            }
            // Instanciation des outils ( StreamWriter et Serializer )
            XmlSerializer xs = new XmlSerializer(typeof(List <ProviderXML>)); // l'outil de sérialisation
            StreamWriter  wr = new StreamWriter("Fournisseurs.xml");          // accès en écriture d'un fichier ( texte )

            //On veut récupérer seulement certains attributs de nos classes produits et fournisseurs
            xs.Serialize(wr, providersXML); // action de sérialiser en XML l'objet Fxml
            wr.Close();
        }