protected virtual bool SkipExtNulls(DataRow R, CopyContext Ctx) { foreach (string field in SkipFieldsWhenNull) { if (R[field] == DBNull.Value) { continue; } object o = null; if (myContext.IsDefined(field)) { //I traduttori privati prevalgono su quelli pubblici e non risentono del codice esterno o = myContext.Translate(field, R[field]); } else { o = Ctx.Translate(GetExternalCodeForField(field), R[field]); } if (o == null || o == DBNull.Value) { return(true); } } return(false); }
protected virtual void Translate(CopyContext Ctx, DataRow R) { DataTable T = R.Table; foreach (DataColumn C in T.Columns) { try { object O; if (myContext.IsDefined(C.ColumnName)) { //I traduttori privati prevalgono su quelli pubblici e non risentono del codice esterno O = myContext.Translate(C.ColumnName, R[C.ColumnName]); } else { O = Ctx.Translate(GetExternalCodeForField(C.ColumnName), R[C.ColumnName]); } if (O == null && AllowNoTransl.Contains(C.ColumnName)) { O = DBNull.Value; } R[C.ColumnName] = O; } catch (Exception E) { MessageBox.Show("La colonna " + C.ColumnName + " della tabella " + table + " contiene il valore " + R[C.ColumnName].ToString() + " che non è stato possibile tradurre "); throw E; } } }