Exemple #1
0
        public void StartBackup(string backupDestinationDirectory)
        {
            var document = Get(BackupStatus.RavenBackupStatusDocumentKey, null);

            if (document != null)
            {
                var backupStatus = document.DataAsJson.JsonDeserialization <BackupStatus>();
                if (backupStatus.IsRunning)
                {
                    throw new InvalidOperationException("Backup is already running");
                }
            }
            Put(BackupStatus.RavenBackupStatusDocumentKey, null, JObject.FromObject(new BackupStatus
            {
                Started   = DateTime.UtcNow,
                IsRunning = true,
            }), new JObject(), null);
            IndexStorage.FlushAllIndexes();
            TransactionalStorage.StartBackupOperation(this, backupDestinationDirectory);
        }