private void buttonEditTitle_Click(object sender, EventArgs e) { string title = mrHelper.Common.Tools.StringUtils.ConvertNewlineUnixToWindows(getTitle()); string formCaption = "Edit Merge Request title"; TextEditForm editTitleForm = new TextEditForm(formCaption, title, true, false, null, String.Empty); if (editTitleForm.ShowDialog() == DialogResult.OK) { setTitle(Common.Tools.StringUtils.ConvertNewlineWindowsToUnix(editTitleForm.Body)); } }
private void buttonEditDescription_Click(object sender, EventArgs e) { string description = mrHelper.Common.Tools.StringUtils.ConvertNewlineUnixToWindows(getDescription()); string formCaption = "Edit Merge Request description"; TextEditForm editDescriptionForm = new TextEditForm(formCaption, description, true, true, null); if (editDescriptionForm.ShowDialog() == DialogResult.OK) { setDescription(Common.Tools.StringUtils.ConvertNewlineWindowsToUnix(editDescriptionForm.Body)); } }
async private Task onNewDiscussionAsync(MergeRequestKey mrk, string title) { string caption = String.Format("Create a new thread in merge request \"{0}\"", title); DiscussionNoteEditPanel actions = new DiscussionNoteEditPanel(); using (TextEditForm form = new TextEditForm(caption, "", true, true, actions)) { actions.SetTextbox(form.TextBox); if (form.ShowDialog() == DialogResult.OK) { if (form.Body.Length == 0) { MessageBox.Show("Discussion body cannot be empty", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } DataCache dataCache = getDataCache(!isSearchMode()); if (dataCache == null) { Debug.Assert(false); return; } labelWorkflowStatus.Text = "Creating a discussion..."; try { GitLabInstance gitLabInstance = new GitLabInstance(mrk.ProjectKey.HostName, Program.Settings); IDiscussionCreator creator = Shortcuts.GetDiscussionCreator( gitLabInstance, _modificationNotifier, mrk, getCurrentUser()); await creator.CreateDiscussionAsync(new NewDiscussionParameters(form.Body, null), false); } catch (DiscussionCreatorException) { MessageBox.Show("Cannot create a discussion at GitLab. Check your connection and try again", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); labelWorkflowStatus.Text = "Cannot create a discussion"; return; } labelWorkflowStatus.Text = "Thread started"; dataCache.DiscussionCache?.RequestUpdate(mrk, Constants.DiscussionCheckOnNewThreadInterval, null); } } }
async private Task onAddCommentAsync(MergeRequestKey mrk, string title) { string caption = String.Format("Add comment to merge request \"{0}\"", title); DiscussionNoteEditPanel actions = new DiscussionNoteEditPanel(); using (TextEditForm form = new TextEditForm(caption, "", true, true, actions)) { actions.SetTextbox(form.TextBox); if (form.ShowDialog() == DialogResult.OK) { if (form.Body.Length == 0) { MessageBox.Show("Comment body cannot be empty", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } labelWorkflowStatus.Text = "Adding a comment..."; try { GitLabInstance gitLabInstance = new GitLabInstance(mrk.ProjectKey.HostName, Program.Settings); IDiscussionCreator creator = Shortcuts.GetDiscussionCreator( gitLabInstance, _modificationNotifier, mrk, getCurrentUser()); await creator.CreateNoteAsync(new CreateNewNoteParameters(form.Body)); } catch (DiscussionCreatorException) { MessageBox.Show("Cannot create a discussion at GitLab. Check your connection and try again", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); labelWorkflowStatus.Text = "Cannot create a discussion"; return; } labelWorkflowStatus.Text = "Comment added"; } } }