private void bOK_Click(object sender, EventArgs e) { // Check that name is not empty if (string.IsNullOrEmpty(txtApplicationName.Text)) { MessageBox.Show(this, "The application name must not be empty.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); DialogResult = DialogResult.None; return; } // Check for valid URL if (rbFixedUrl.Checked && string.IsNullOrEmpty(txtFixedUrl.Text)) { MessageBox.Show(this, "You did not enter a download URL. The application will not be downloaded as long as no URL is specified.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { // Check that a target location is given if (string.IsNullOrEmpty(txtTarget.Text)) { MessageBox.Show(this, "You did not specify a target location.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); DialogResult = DialogResult.None; return; } } if (rbFileHippo.Checked && String.IsNullOrEmpty(txtFileHippoId.Text)) { MessageBox.Show(this, "You did not specify a FileHippo ID.\r\nYou can paste the desired URL from the FileHippo.com website, the ID will be extracted automatically.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); DialogResult = DialogResult.None; return; } WriteApplication(); // All good. If necessary, now start a thread // which is going to share the application online. ApplicationJob job = this.ApplicationJob; if (job.ShareApplication) { Cursor = Cursors.WaitCursor; try { IKetarinRpc proxy = XmlRpcProxyGen.Create <IKetarinRpc>(); proxy.Timeout = 10000; RpcApplication[] existingApps = proxy.GetSimilarApplications(job.Name, job.Guid.ToString()); if (existingApps.Length > 0) { // Prevent similar entries by asking the author // to reconsider his choice of name. SimilarApplicationsDialog dialog = new SimilarApplicationsDialog(); dialog.ApplicationJob = job; dialog.Applications = existingApps; if (dialog.ShowDialog(this) != DialogResult.OK) { return; } } // Everything is fine, upload now. Thread thread = new Thread(new ParameterizedThreadStart(ShareOnline)); thread.IsBackground = true; thread.Start(job); } catch (System.Net.WebException ex) { MessageBox.Show(this, "Your application could not be submitted to the online database because of an connection error: " + ex.Message, "Connection error", MessageBoxButtons.OK, MessageBoxIcon.Warning); } finally { Cursor = Cursors.Default; } } // Required for non modal call this.Close(); }
private void bOK_Click(object sender, EventArgs e) { // Check that name is not empty if (string.IsNullOrEmpty(txtApplicationName.Text)) { MessageBox.Show(this, "The application name must not be empty.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); DialogResult = DialogResult.None; return; } // Check for valid URL if (rbFixedUrl.Checked && string.IsNullOrEmpty(txtFixedUrl.Text)) { MessageBox.Show(this, "You did not enter a download URL. The application will not be downloaded as long as no URL is specified.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { // Check that a target location is given if (string.IsNullOrEmpty(txtTarget.Text)) { MessageBox.Show(this, "You did not specify a target location.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); DialogResult = DialogResult.None; return; } } if (rbFileHippo.Checked && String.IsNullOrEmpty(txtFileHippoId.Text)) { MessageBox.Show(this, "You did not specify a FileHippo ID.\r\nYou can paste the desired URL from the FileHippo.com website, the ID will be extracted automatically.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); DialogResult = DialogResult.None; return; } WriteApplication(); // All good. If necessary, now start a thread // which is going to share the application online. ApplicationJob job = this.ApplicationJob; if (job.ShareApplication) { Cursor = Cursors.WaitCursor; try { IKetarinRpc proxy = XmlRpcProxyGen.Create<IKetarinRpc>(); proxy.Timeout = 10000; RpcApplication[] existingApps = proxy.GetSimilarApplications(job.Name, job.Guid.ToString()); if (existingApps.Length > 0) { // Prevent similar entries by asking the author // to reconsider his choice of name. SimilarApplicationsDialog dialog = new SimilarApplicationsDialog(); dialog.ApplicationJob = job; dialog.Applications = existingApps; if (dialog.ShowDialog(this) != DialogResult.OK) { return; } } // Everything is fine, upload now. Thread thread = new Thread(new ParameterizedThreadStart(ShareOnline)); thread.IsBackground = true; thread.Start(job); } catch (System.Net.WebException ex) { MessageBox.Show(this, "Your application could not be submitted to the online database because of an connection error: " + ex.Message, "Connection error", MessageBoxButtons.OK, MessageBoxIcon.Warning); } finally { Cursor = Cursors.Default; } } // Required for non modal call this.Close(); }