/// <summary> /// Saves the changes. /// </summary> /// <exception cref="InvalidOperationException"></exception> public void SaveChanges() { var changesTimestamp = Convert.ToString(DateTimeOffset.Now.ToUnixTimeMilliseconds()); lock (_changeSetLock) { while (Changes.Any()) { var changeSet = Changes.Dequeue(); switch (changeSet.ChangeType) { case ChangeType.Update: Update(changesTimestamp, changeSet); break; case ChangeType.Insert: Insert(changesTimestamp, changeSet); break; case ChangeType.Delete: Delete(changesTimestamp, changeSet); break; default: throw new InvalidOperationException( $"Invalid changeset type: {changeSet.ChangeType} for {nameof(DataPage)}"); } } } }