Microsoft.ResourceManagement.ObjectModel.RmResourceChanges.BeginChanges C# (CSharp) Method

BeginChanges() public method

Starts tracking changes in the underlying RmResource.
public BeginChanges ( ) : void
return void
        public void BeginChanges()
        {
            EnsureNotDisposed();
            lock (rmObject.attributes) {
                this.originalAttributes = new Dictionary<RmAttributeName, RmAttributeValue>();
                foreach (RmAttributeName key in rmObject.attributes.Keys) {
                    RmAttributeValue value = rmObject.attributes[key];
                    this.originalAttributes[key] = value.Clone() as RmAttributeValue;
                }
            }
        }

Usage Example

        public void can_clear_reference_on_update()
        {
            var person = _client.EnumerateAll<RmPerson>("/Person").First();

            var newPerson = new RmPerson()
                {
                    DisplayName = "___",
                };
            _client.Create(newPerson);

            var changes = new RmResourceChanges(newPerson);
            changes.BeginChanges();
            newPerson.Manager = person.ObjectID;

            _client.Update(changes);

            changes = new RmResourceChanges(newPerson);
            changes.BeginChanges();
            newPerson.Manager = null;

            Assert.DoesNotThrow(() =>
                {
                    _client.Update(changes);
                });

            _client.Delete(newPerson);
        }
All Usage Examples Of Microsoft.ResourceManagement.ObjectModel.RmResourceChanges::BeginChanges