Mongo.Context.MongoDSPUpdateProvider.UpdateDocument C# (CSharp) Method

UpdateDocument() private method

private UpdateDocument ( MongoContext mongoContext, ResourceChange change ) : void
mongoContext MongoContext
change ResourceChange
return void
        private void UpdateDocument(MongoContext mongoContext, ResourceChange change)
        {
            if (!change.ModifiedProperties.Any())
                return;

            var collection = mongoContext.Database.GetCollection(change.CollectionName);
            var query = Query.EQ(MongoMetadata.ProviderObjectIdName, ObjectId.Parse(change.Resource.GetValue(MongoMetadata.MappedObjectIdName).ToString()));
            UpdateBuilder update = null;

            foreach (var resourceProperty in change.ModifiedProperties)
            {
                if (update == null)
                {
                    if (resourceProperty.Value != null)
                        update = Update.Set(resourceProperty.Key, BsonValue.Create(resourceProperty.Value));
                    else
                        update = Update.Unset(resourceProperty.Key);
                }
                else
                {
                    if (resourceProperty.Value != null)
                        update = update.Set(resourceProperty.Key, BsonValue.Create(resourceProperty.Value));
                    else
                        update = update.Unset(resourceProperty.Key);
                }
            }

            collection.Update(query, update);
        }