private void TargetVariableChanging(object sender, VariableChangingEventArgs e) { if (e.Action == VariableChangeAction.UpdateMetadata) { foreach (KeyValuePair <string, object> item in e.ProposedChanges.MetadataChanges) { if (IsHiddenEntry(item.Key)) { continue; } if (IsReadOnlyEntry(item.Key)) { continue; } if (proposedMetadataEntries.Exists(entry => entry.Key == item.Key && AreEquals(entry.Value, item.Value))) { continue; } var pair = new KeyValuePair <string, object>(item.Key, item.Value); try { proposedMetadataEntries.Add(pair); this[item.Key] = item.Value; } finally { proposedMetadataEntries.Remove(pair); } } } }
private void SourceVariableChanging(object sender, VariableChangingEventArgs e) { switch (e.Action) { case VariableChangeAction.PutData: // TODO: add check for proposedChangesList var ar = TransformIndexRectangle(e.ProposedChanges.AffectedRectangle); if (!ar.IsEmpty) { var shape = TransformIndexRectangle(new Rectangle(new int[sourceVariable.Rank], e.ProposedChanges.Shape)).Shape; Changes c = new Changes(Version, GetSchema(), null, null, shape, ar); e.Cancel = !FireEventVariableChanging(VariableChangeAction.PutData, c); } break; case VariableChangeAction.UpdateMetadata: break; } }
private void TargetVariableChanging(object sender, VariableChangingEventArgs e) { if (e.Action == VariableChangeAction.UpdateMetadata) { foreach (KeyValuePair<string, object> item in e.ProposedChanges.MetadataChanges) { if (IsHiddenEntry(item.Key)) continue; if (IsReadOnlyEntry(item.Key)) continue; if (proposedMetadataEntries.Exists(entry => entry.Key == item.Key && AreEquals(entry.Value, item.Value))) continue; var pair = new KeyValuePair<string, object>(item.Key, item.Value); try { proposedMetadataEntries.Add(pair); this[item.Key] = item.Value; } finally { proposedMetadataEntries.Remove(pair); } } } }