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