/// <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); }
/// <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); }
// 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); }
/// <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)); }