public void DefinirEnClePrimaire(CColonneTableParametrable col) { if (!ColonneExiste(col)) { return; } if (col.PrimaryKeyPosition == null) { col.PrimaryKeyPosition = ColonnesClePrimaires.Count; } }
public bool ColonneExiste(CColonneTableParametrable col) { foreach (CColonneTableParametrable c in Colonnes) { if (col == c) { return(true); } } return(false); }
private static int NombreMappageColonneDestination(CColonneTableParametrable col, List <CMappageColonneTableParametrableColonneTableParametrable> mappages) { int nb = 0; foreach (CMappageColonneTableParametrableColonneTableParametrable map in mappages) { if (map.ColonneB == col) { nb++; } } return(nb); }
public void DefinirSansClePrimaire(CColonneTableParametrable col) { if (!ColonneExiste(col)) { return; } foreach (CColonneTableParametrable c in ColonnesClePrimaires) { if (c.PrimaryKeyPosition < col.PrimaryKeyPosition) { MonterOrdreClePrimaire(c); } } col.PrimaryKeyPosition = null; }
public void DescendreOrdreClePrimaire(CColonneTableParametrable col) { if (col.PrimaryKeyPosition == ColonnesClePrimaires.CountNoLoad - 1) { return; } foreach (CColonneTableParametrable c in ColonnesClePrimaires) { if (c.PrimaryKeyPosition == col.PrimaryKeyPosition + 1) { c.PrimaryKeyPosition = col.PrimaryKeyPosition; } } col.PrimaryKeyPosition++; }
//Cle Primaire public void MonterOrdreClePrimaire(CColonneTableParametrable col) { if (col.PrimaryKeyPosition == 0) { return; } foreach (CColonneTableParametrable c in ColonnesClePrimaires) { if (c.PrimaryKeyPosition == col.PrimaryKeyPosition - 1) { c.PrimaryKeyPosition = col.PrimaryKeyPosition; } } col.PrimaryKeyPosition--; }
//------------------------------------------------------------------- public override CResultAErreur VerifieDonnees(CObjetDonnee objet) { CResultAErreur result = CResultAErreur.True; try { CColonneTableParametrable col = (CColonneTableParametrable)objet; if (col.TypeDonneeChamp == null) { result.EmpileErreur(I.T("Column Data Type must be defined|377")); } if (col.Position < 0) { result.EmpileErreur(I.T("Invalid Column position|378")); } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }
private static bool ColonneDestinationMappee(CColonneTableParametrable col, List <CMappageColonneTableParametrableColonneTableParametrable> mappages) { return(NombreMappageColonneDestination(col, mappages) > 0); }
//------------------------------------------------------------------- public override CResultAErreur VerifieDonnees(CObjetDonnee objet) { CResultAErreur result = CResultAErreur.True; try { CTypeTableParametrable tp = (CTypeTableParametrable)objet; if (tp.Libelle == "") { result.EmpileErreur(I.T("Custom Table Type label cannot be empty|375")); } CListeObjetsDonnees lst = new CListeObjetsDonnees(tp.ContexteDonnee, typeof(CTypeTableParametrable)); lst.Filtre = new CFiltreData(CTypeTableParametrable.c_champLibelle + " = @1 AND " + CTypeTableParametrable.c_champId + " <> @2", tp.Libelle, tp.Id); if (lst.Count != 0) { result.EmpileErreur(I.T("The Custom Table Type '@1' already exists|376", tp.Libelle)); } //Verif ordre des colonnes CListeObjetsDonnees lstcol = tp.Colonnes; bool bColChanged = false; for (int i = 0; i < lstcol.Count; i++) { bool find = false; CColonneTableParametrable colIdx = (CColonneTableParametrable)lstcol[i]; foreach (CColonneTableParametrable c in lstcol) { if (c.Row.RowState != DataRowState.Unchanged) { bColChanged = true; } if (c.Libelle == colIdx.Libelle && !colIdx.Equals(c)) { result.EmpileErreur(I.T("Column name @1 is used several times|395", colIdx.Libelle)); } if (c.Position == i) { if (find) { result.EmpileErreur(I.T("Error : multiple position @1|367", i.ToString())); i = lstcol.Count; break; } else { find = true; } } if (i > 0 && c.Position >= lstcol.Count) { result.EmpileErreur(I.T("The position @1 of the Column '@2' is out of range|364", c.Position.ToString(), c.Libelle)); } } if (!find) { result.EmpileErreur(I.T("No column defined at position @1|365", i.ToString())); break; } } //Verif Ordre Colonne Primaires int cptPKCol = 0; foreach (CColonneTableParametrable col in tp.ColonnesClePrimaires) { if (col.PrimaryKeyPosition != cptPKCol) { result.EmpileErreur(I.T("Column @1 is part of primary key but its position in the key is @2 instead of @3|396", col.Libelle, col.PrimaryKeyPosition.Value.ToString(), cptPKCol.ToString())); break; } cptPKCol++; } //Si les colonnes ont bougés if (bColChanged) { CFiltreData filtre = new CFiltreData(CTypeTableParametrable.c_champId + " = @1", tp.Id); CListeObjetsDonnees lstAttache = new CListeObjetsDonnees(objet.ContexteDonnee, typeof(CTableParametrable), filtre); if (lstAttache.Count > 0) { foreach (CTableParametrable tableliee in lstAttache) { result.EmpileErreur(I.T("Columns changes error : The table @1 uses this type|366", tableliee.Libelle)); } } } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }