コード例 #1
0
        /// <summary>
        /// Ajoute un Point de performances de vol à une Layer de la Pile
        /// Si la Layer n'existe pas, une Layer est créée pour accueillir le point
        /// </summary>
        /// <param name="newPerfPoint">Nouveau point de performance de vol</param>
        /// <param name="layerFactorValue">Facteur de la layer dans laquelle inscrire le point</param>
        /// <param name="serieFactorValue">Facteur de la série dans laquelle inscrire le point</param>
        /// <returns>True si l'ajout est réussi, False dans le cas contaire</returns>
        public bool add(PerfPoint newPerfPoint, double serieFactorValue, double layerFactorValue)
        {
            bool foundIt = false;
            bool success = false;

            // Recherche de la layer de même factorValue
            for (int count = 0; count < perfLayerList.Count; count++)
            {
                if (layerFactorValue == layerAt(count).factorValue)
                {
                    foundIt = true;
                    success = layerAt(count).add(newPerfPoint, serieFactorValue);
                    break;
                }
            }
            // Pas de Layer ayant un facteur de même valeur, on cré une nouvelle layer
            if (!foundIt)
            {
                // Création d'une nouvelle layer
                PerfLayer newLayer = new PerfLayer(layerFactorValue,
                                                   pointFactorName, pointFactorUnitCode,
                                                   serieFactorName, serieFactorUnitCode,
                                                   outputName, outputUnitCode);
                success = newLayer.add(newPerfPoint, serieFactorValue);
                if (success)
                {
                    success = add(newLayer);
                }
            }
            return(success);
        }
コード例 #2
0
        /// <summary>
        /// Formate un élément XML pour refléter un objet PerfLayer
        /// </summary>
        /// <param name="pp">Objet PerfLayer</param>
        /// <returns>Un élément XML</returns>
        private XElement xmlPerfLayer(PerfLayer pl)
        {
            XElement xElem = new XElement("Layer", new XAttribute("Name", pl.outputName),
                                          new XAttribute("Key", pl.dataBaseKey),
                                          new XAttribute("Factor", pl.factorValue),
                                          new XAttribute("PointFactorName", pl.pointFactorName),
                                          new XAttribute("PointFactorUnitCode", pl.pointFactorUnitCode),
                                          new XAttribute("SerieFactorName", pl.serieFactorName),
                                          new XAttribute("SerieFactorUnitCode", pl.serieFactorUnitCode));
            XElement xColElem = new XElement("Series");

            // Ajout de chaque série de la Layer
            for (int count = 0; count < pl.count; count++)
            {
                xColElem.Add(xmlPerfSerie(pl.SerieAt(count)));
            }
            xElem.Add(xColElem);
            return(xElem);
        }
コード例 #3
0
        /*
         *  SERVICES
         */

        /// <summary>
        /// Ajoute une layer dans la pile
        /// </summary>
        /// <param name="newPerfLayer">Nouvelle layer à ajouter à la pile</param>
        /// <returns>True si l'ajout est réussi, False dans le cas contaire</returns>
        public bool add(PerfLayer newPerfLayer)
        {
            // Deux PerfLayer ne peuvent pas avoir le même factorValue
            foreach (PerfLayer pl in perfLayerList)
            {
                if (pl.Compare(pl, newPerfLayer) == 0)
                {
                    return(false);
                }
            }

            // Insertion dans la liste classée, en réponse à une difficulté avec la fonction Sort()
            bool inserted = false;

            for (int count = 0; count < perfLayerList.Count; count++)
            {
                if (newPerfLayer.factorValue < layerAt(count).factorValue)
                {
                    perfLayerList.Insert(count, newPerfLayer);
                    inserted = true;
                }
            }
            // Si la layer n'a pas été insérée, c'est qu'il faut l'insérer à la fin de la liste
            if (!inserted)
            {
                perfLayerList.Add(newPerfLayer);
            }
            // Récupération des informations des dimensions
            pointFactorName     = newPerfLayer.pointFactorName;
            pointFactorUnitCode = newPerfLayer.pointFactorUnitCode;
            serieFactorName     = newPerfLayer.serieFactorName;
            serieFactorUnitCode = newPerfLayer.serieFactorUnitCode;
            // Le domaine de calcul est à redéfinir
            ranged = false;
            return(true);
        }