private void TestConnection_Click(object sender, EventArgs e) { if (ValidateForm(true)) { 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(S3 s3 = new S3(destination, options)) foreach (Interface.IFileEntry n in s3.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; m_hasCreatedbucket = true; //If the test succeeds, the bucket exists } catch (Interface.FolderMissingException) { switch (MessageBox.Show(this, Strings.S3UI.CreateMissingBucket, Application.ProductName, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)) { case DialogResult.Yes: CreateBucket.PerformClick(); TestConnection.PerformClick(); return; default: return; } } 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 CreateBucket_Click(object sender, EventArgs e) { if (ValidateForm(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); S3 s3 = new S3(destination, options); s3.CreateFolder(); MessageBox.Show(this, Interface.CommonStrings.FolderCreated, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); m_hasTested = true; m_hasCreatedbucket = true; } catch (Exception ex) { MessageBox.Show(this, string.Format(Interface.CommonStrings.ConnectionFailure, ex.Message), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); } this.Cursor = c; } }