//----------------------------------------------------------------- private static TID.CParametrageSystemeCoordonnees ImporteParametrageSC( CParametrageSystemeCoordonnees paramTimos, CMemoryDb db, TID.CIndexIdTimos <TID.CSystemeCoordonnees> dicSC, TID.CIndexIdTimos <TID.CRelationSystemeCoordonnees_FormatNumerotation> dicRFN) { if (paramTimos == null) { return(null); } TID.CParametrageSystemeCoordonnees parametrage = null; TID.CSystemeCoordonnees sc = null; if (dicSC != null) { sc = dicSC.GetSafe((int?)paramTimos.Row[CSystemeCoordonnees.c_champId, true]); } parametrage = new TimosInventory.data.CParametrageSystemeCoordonnees(db); parametrage.CreateNew(); if (sc != null) { parametrage.SystemeCoordonnees = sc; } else { parametrage.Row[TID.CSystemeCoordonnees.c_champId] = paramTimos.Row[TID.CSystemeCoordonnees.c_champId]; } foreach (CParametrageNiveau paramNTimos in paramTimos.ParametragesNiveauxOrdonnees) { TID.CRelationSystemeCoordonnees_FormatNumerotation relFN = null; if (dicRFN != null) { relFN = dicRFN.GetSafe((int?)paramNTimos.Row[CRelationSystemeCoordonnees_FormatNumerotation.c_champId, true]); } TID.CParametrageNiveau paramN = new TimosInventory.data.CParametrageNiveau(db); paramN.CreateNew(); paramN.ParametrageSystemeCoordonnees = parametrage; paramN.PremierIndice = paramNTimos.PremierIndice; paramN.Taille = paramNTimos.Taille; if (relFN != null) { paramN.RelationSysCoor_FormatNum = relFN; } else { paramN.Row[TID.CRelationSystemeCoordonnees_FormatNumerotation.c_champId] = paramNTimos.Row[CRelationSystemeCoordonnees_FormatNumerotation.c_champId]; } } return(parametrage); }
/// <summary> /// Verifie si la coordonnée existe syntaxiquement parlant /// </summary> /// <param name="strCoordonnee">Coordonnée à vérifier</param> /// <returns></returns> public CResultAErreur VerifieCoordonnee(string strCoordonnee) { CResultAErreur result = CResultAErreur.True; if (strCoordonnee == null || strCoordonnee == "") { result.EmpileErreur(I.T("The coordinate cannot be empty|184")); } else { string[] strNiveaux = strCoordonnee.Split(CSystemeCoordonnees.c_separateurNumerotations); if (strNiveaux.Length > RelationParametragesNiveau.Count()) { result.EmpileErreur(I.T("Too many levels in the coordinate|251")); return(result); } CParametrageNiveau[] parametragesNiveaux = ParametragesNiveauxOrdonnees; //On va remonter niveau par niveau for (int i = strNiveaux.Length; i > 0; i--) { CResultAErreur resulttmp = CResultAErreur.True; string Niv = strNiveaux[i - 1]; CParametrageNiveau parametrageNiv = parametragesNiveaux[i - 1]; //Vérification syntaxique de la partie de coordonnée resulttmp = parametrageNiv.RelationSysCoor_FormatNum.VerifieReference(Niv); //Vérification sur la plage paramétrée if (resulttmp.Result) { resulttmp = parametrageNiv.ReferencePossible(Niv); } if (!resulttmp.Result) { result.Erreur += resulttmp.Erreur; result.Result = false; } } } return(result); }