Esempio n. 1
0
        /// <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)}");
                    }
                }
            }
        }