public override string UpdateDatabaseRecord(DatabaseRecord record, long etag) { if (Watcher == null) { return(null); } if (Watcher.TaskId == 0) { Watcher.TaskId = etag; } else { //modified watcher, remove the old one ExternalReplication.RemoveWatcher(record.ExternalReplications, Watcher.TaskId); } //this covers the case of a new watcher and edit of an old watcher if (string.IsNullOrEmpty(Watcher.Name)) { Watcher.Name = Watcher.GetDefaultTaskName(); } record.EnsureTaskNameIsNotUsed(Watcher.Name); record.ExternalReplications.Add(Watcher); return(null); }
public override string UpdateDatabaseRecord(DatabaseRecord record, long etag) { record.EnsureTaskNameIsNotUsed(Configuration.Name); Configuration.TaskId = etag; Add(ref record.SqlEtls, Configuration); return(null); }
public static void EnsureTaskNameIsNotUsed(DatabaseRecord record, string name) { try { record.EnsureTaskNameIsNotUsed(name); } catch (Exception e) { throw new RachisApplyException($"Task name `{name}` is already in use", e); } }
public override void UpdateDatabaseRecord(DatabaseRecord record, long etag) { if (PullReplicationAsSink == null) { return; } if (PullReplicationAsSink.TaskId == 0) { PullReplicationAsSink.TaskId = etag; } else { // if new definition doesn't have certificate but there is old one with cert // it means we want to use existing cert or the server certificate if (PullReplicationAsSink.CertificateWithPrivateKey == null) { if (UseServerCertificate == true) { PullReplicationAsSink.CertificateWithPrivateKey = null; } else { var existingDefinition = record.SinkPullReplications.Find(x => x.TaskId == PullReplicationAsSink.TaskId); if (existingDefinition?.CertificateWithPrivateKey != null) { // retain existing certificate PullReplicationAsSink.CertificateWithPrivateKey = existingDefinition.CertificateWithPrivateKey; PullReplicationAsSink.CertificatePassword = existingDefinition.CertificatePassword; } } } ExternalReplicationBase.RemoveExternalReplication(record.SinkPullReplications, PullReplicationAsSink.TaskId); } if (string.IsNullOrEmpty(PullReplicationAsSink.Name)) { PullReplicationAsSink.Name = record.EnsureUniqueTaskName(PullReplicationAsSink.GetDefaultTaskName()); } if (string.IsNullOrEmpty(PullReplicationAsSink.ConnectionStringName)) { throw new ArgumentNullException(nameof(PullReplicationAsSink.ConnectionStringName)); } record.EnsureTaskNameIsNotUsed(PullReplicationAsSink.Name); record.SinkPullReplications.Add(PullReplicationAsSink); }
public override string UpdateDatabaseRecord(DatabaseRecord record, long etag) { if (Definition.TaskId == 0) { Definition.TaskId = etag; } else { PullReplicationDefinition.RemoveHub(record.HubPullReplications, Definition.TaskId); } record.EnsureTaskNameIsNotUsed(Definition.Name); record.HubPullReplications.Add(Definition); return(null); }
public override string UpdateDatabaseRecord(DatabaseRecord record, long etag) { if (Configuration.TaskId == 0) { // this is a new backup configuration Configuration.TaskId = etag; if (string.IsNullOrEmpty(Configuration.Name)) { Configuration.Name = Configuration.GetDefaultTaskName(); } record.EnsureTaskNameIsNotUsed(Configuration.Name); } record.AddPeriodicBackupConfiguration(Configuration); return(null); }
protected void Add(ref List <T> etls, DatabaseRecord record, long etag) { if (string.IsNullOrEmpty(Configuration.Name)) { Configuration.Name = record.EnsureUniqueTaskName(Configuration.GetDefaultTaskName()); } record.EnsureTaskNameIsNotUsed(Configuration.Name); Configuration.TaskId = etag; if (etls == null) { etls = new List <T>(); } etls.Add(Configuration); }
public override void UpdateDatabaseRecord(DatabaseRecord record, long etag) { if (Definition.TaskId == 0) { Definition.TaskId = etag; } else { foreach (var task in record.HubPullReplications) { if (task.TaskId != Definition.TaskId) { continue; } record.HubPullReplications.Remove(task); break; } } record.EnsureTaskNameIsNotUsed(Definition.Name); record.HubPullReplications.Add(Definition); }
public override string UpdateDatabaseRecord(DatabaseRecord record, long etag) { if (Configuration.TaskId == 0) { // this is a new backup configuration Configuration.TaskId = etag; } else { // modified periodic backup, remove the old one record.DeletePeriodicBackupConfiguration(Configuration.TaskId); } if (string.IsNullOrEmpty(Configuration.Name)) { Configuration.Name = record.EnsureUniqueTaskName(Configuration.GetDefaultTaskName()); } record.EnsureTaskNameIsNotUsed(Configuration.Name); record.PeriodicBackups.Add(Configuration); return(null); }