/* * public override CResultAErreur TraitementAvantSauvegarde(CContexteDonnee contexte) * { * CResultAErreur result = base.TraitementAvantSauvegarde(contexte); * * if (!result) * return result; * * DataTable table = contexte.Tables[GetNomTable()]; * if (table == null) * return result; * * List<DataRow> lstCrees = new List<DataRow>(); * * ArrayList lstRows = new System.Collections.ArrayList(table.Rows); * foreach (DataRow row in lstRows) * { * // Stockage temporaire des enregistrements dans une liste * // pour traitement dans AfterSave (messages pour * // EmessEM). Car à ce niveau, on ne dispose pas de l'ID de l'équipement * CSpvEquip spvEquip; * if (row.RowState == DataRowState.Added) * { * spvEquip = new CSpvEquip(row); * if (spvEquip.ASuperviser) * lstCrees.Add(row); * * spvEquip.TraitementMetier(row.RowState); * } * else if (row.RowState == DataRowState.Modified) * { * spvEquip = new CSpvEquip(row); * spvEquip.TraitementMetier(row.RowState); * * if (((bool)spvEquip.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original] == true && * !spvEquip.ASuperviser) || ( * (bool)spvEquip.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original] == true && * spvEquip.ASuperviser && ( * spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP, DataRowVersion.Original] != * spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP] || ( * spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME, DataRowVersion.Original] != * spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME])))) * { * // Message pour EmessEM * CSpvMessem spvMessem = new CSpvMessem(spvEquip.ContexteDonnee); * spvMessem.CreateNewInCurrentContexte(); * spvMessem.FormatMessDelEquip(spvEquip.Id, * (string)spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP, DataRowVersion.Original], * (string)spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME, DataRowVersion.Original], * spvEquip.ASuperviser); * } * * if (((bool)spvEquip.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original] == false && * spvEquip.ASuperviser) || ( * (bool)spvEquip.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original] == true && * spvEquip.ASuperviser && ( * spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP, DataRowVersion.Original] != * spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP] || ( * spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME, DataRowVersion.Original] != * spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME])))) * { * // Message pour EmessEM * CSpvMessem spvMessem = new CSpvMessem(spvEquip.ContexteDonnee); * spvMessem.CreateNewInCurrentContexte(); * spvMessem.FormatMessCreEquip(spvEquip.Id); * } * } * else if (row.RowState == DataRowState.Deleted) * { * spvEquip = new CSpvEquip(row); * if ((bool)spvEquip.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original] == true) * { * // Message pour EmessEM * CSpvMessem spvMessem = new CSpvMessem(spvEquip.ContexteDonnee); * spvMessem.CreateNewInCurrentContexte(); * spvMessem.FormatMessDelEquip(spvEquip.Id, * (string)spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP, DataRowVersion.Original], * (string)spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME, DataRowVersion.Original], * spvEquip.ASuperviser); * } * } * } * table.ExtendedProperties.Add(CDivers.c_cleRowCrees, lstCrees); * return result; * }*/ public override IDataAdapter GetDataAdapter(DataRowState rowsPriseEnCharge, params string[] champsExclus) { IDataAdapter adapter = base.GetDataAdapter(rowsPriseEnCharge, champsExclus); C2iOracleDataAdapter oracleAdapter = adapter as C2iOracleDataAdapter; if (oracleAdapter != null) { oracleAdapter.RowUpdated += new OracleRowUpdatedEventHandler(OnRowUpdated); } return(oracleAdapter); }
void OnRowUpdated(object sender, OracleRowUpdatedEventArgs e) { if (e.StatementType == StatementType.Insert || e.StatementType == StatementType.Update) { C2iOracleDataAdapter adapter = sender as C2iOracleDataAdapter; CSpvEquip equipement = new CSpvEquip(e.Row); bool bSuperviser = equipement.ASuperviser; if (e.StatementType == StatementType.Insert || e.Row[CSpvEquip.c_champEQUIP_TOSURV] != e.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original]) { int nValeurMasquage = bSuperviser ? 0 : 2; OracleCommand cmd = e.Command.Connection.CreateCommand(); cmd.Transaction = e.Command.Transaction; cmd.CommandText = "Begin SetMaskAdmEquip(" + equipement.Id + "," + nValeurMasquage + "); end;"; cmd.ExecuteScalar(); } } }