private void TestConnection_Click(object sender, EventArgs e) { if (ValidateForm()) { bool retry = true; while (retry == true) { retry = false; Cursor c = this.Cursor; try { this.Cursor = Cursors.WaitCursor; Save(); Dictionary<string, string> options = new Dictionary<string, string>(); string destination = GetConfiguration(m_options, options); bool existingBackup = false; using (Duplicati.Library.Modules.Builtin.HttpOptions httpconf = new Duplicati.Library.Modules.Builtin.HttpOptions()) { httpconf.Configure(options); using (TahoeBackend tahoe = new TahoeBackend(destination, options)) foreach (Interface.IFileEntry n in tahoe.List()) if (n.Name.StartsWith("duplicati-")) { existingBackup = true; break; } } bool isUiAdd = string.IsNullOrEmpty(m_uiAction) || string.Equals(m_uiAction, "add", StringComparison.InvariantCultureIgnoreCase); if (existingBackup && isUiAdd) { if (MessageBox.Show(this, string.Format(Interface.CommonStrings.ExistingBackupDetectedQuestion), Application.ProductName, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button3) != DialogResult.Yes) return; } else { MessageBox.Show(this, Interface.CommonStrings.ConnectionSuccess, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); } m_hasTested = true; } catch (Interface.FolderMissingException) { switch (MessageBox.Show(this, Strings.TahoeUI.CreateMissingFolderQuestion, Application.ProductName, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)) { case DialogResult.Yes: CreateFolderButton.PerformClick(); TestConnection.PerformClick(); return; default: return; } } catch (Utility.SslCertificateValidator.InvalidCertificateException cex) { if (string.IsNullOrEmpty(cex.Certificate)) MessageBox.Show(this, string.Format(Interface.CommonStrings.ConnectionFailure, cex.Message), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); else { if (MessageBox.Show(this, string.Format(Strings.TahoeUI.ApproveCertificateHashQuestion, cex.SslError), Application.ProductName, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { retry = true; AcceptSpecifiedHash.Checked = true; SpecifiedHash.Text = cex.Certificate; } } } catch (Exception ex) { MessageBox.Show(this, string.Format(Interface.CommonStrings.ConnectionFailure, ex.Message), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { this.Cursor = c; } } } }
private void CreateFolderButton_Click(object sender, EventArgs e) { if (ValidateForm()) { bool retry = true; while (retry == true) { retry = false; Cursor c = this.Cursor; try { this.Cursor = Cursors.WaitCursor; Save(); Dictionary<string, string> options = new Dictionary<string, string>(); string destination = GetConfiguration(m_options, options); using (Duplicati.Library.Modules.Builtin.HttpOptions httpconf = new Duplicati.Library.Modules.Builtin.HttpOptions()) { httpconf.Configure(options); TahoeBackend tahoe = new TahoeBackend(destination, options); tahoe.CreateFolder(); } MessageBox.Show(this, Interface.CommonStrings.FolderCreated, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); m_hasTested = true; } catch (Utility.SslCertificateValidator.InvalidCertificateException cex) { if (string.IsNullOrEmpty(cex.Certificate)) MessageBox.Show(this, string.Format(Interface.CommonStrings.ConnectionFailure, cex.Message), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); else { if (MessageBox.Show(this, string.Format(Strings.TahoeUI.ApproveCertificateHashQuestion, cex.SslError), Application.ProductName, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { retry = true; AcceptSpecifiedHash.Checked = true; SpecifiedHash.Text = cex.Certificate; } } } catch (Exception ex) { MessageBox.Show(this, string.Format(Interface.CommonStrings.ConnectionFailure, ex.Message), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { this.Cursor = c; } } } }