Example #1
0
    //-----------------------------------------------------------------
    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);
        }