示例#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>
        /// Ajoute un Point de performances de vol à une Serie de la layer
        /// Si la Serie n'existe pas, une Serie est créée pour accueillir le Point
        /// </summary>
        /// <param name="newPerfPoint">Nouveau Point de performances de vol</param>
        /// <param name="serieFactorValue">Facteur de la Serie 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)
        {
            bool foundIt = false;
            bool success = false;

            // Recherche de la Serie ayant un facteur identique
            for (int count = 0; count < perfSerieList.Count; count++)
            {
                if (serieFactorValue == SerieAt(count).factorValue)
                {
                    success = SerieAt(count).add(newPerfPoint);
                    foundIt = true;
                    break;
                }
            }
            // Pas de Serie qui convienne, on la crée
            if (!foundIt)
            {
                PerfSerie ps = new PerfSerie(serieFactorValue);
                success = ps.add(newPerfPoint);
                if (success)
                {
                    success = add(ps);
                }
            }
            return(success);
        }
        /*
         *  METHODES
         */

        /// <summary>
        /// Formate un élément XML pour refléter un objet PerfPoint
        /// </summary>
        /// <param name="pp">Objet PerfPoint</param>
        /// <returns>Un élément XML</returns>
        private XElement xmlPerfPoint(PerfPoint pp)
        {
            XElement xElem = new XElement("Point", new XAttribute("In", pp.factorValue),
                                          new XAttribute("Out", pp.output),
                                          new XAttribute("Break", pp.isBreak));

            return(xElem);
        }
示例#4
0
        // SERVICES /////////////////////////////////////////////////////////////////////////////////////////


        /// <summary>
        /// Ajoute un point de performance à la série
        /// </summary>
        /// <param name="pp">Point de perforance à ajouter</param>
        /// <returns>True si l'opération a réussi, False en cas d'échec, typiquement quand on essaye d'ajouter
        /// un point de performance ayant la même abscisse qu'un point déjà présent dans la série.
        /// </returns>
        ///
        public bool add(PerfPoint pp)
        {
            foreach (PerfPoint p in perfPointList)
            {
                if (p.Compare(p, pp) == 0)
                {
                    return(false);
                }
            }
            // pp est bien un nouveau point de performance de vol
            perfPointList.Add(pp);
            perfPointList.Sort(pp);
            // Le domaine de calcul n'est plus valable
            ranged = false;
            return(true);
        }
示例#5
0
 /// <summary>
 /// Renvoie l'index d'un point de la série
 /// </summary>
 /// <param name="pp">Point de performance dont on souhaite l'index</param>
 /// <returns>Index du point de performance passé en paramètre</returns>
 ///
 public int getIndexOf(PerfPoint pp)
 {
     return(perfPointList.IndexOf(pp));
 }