public void CreateDeploymentIssue(IList<Issue> issues) { var status = RedmineService.GetTotalObjectList<IssueStatus>(new NameValueCollection()) .First(s => string.Equals(s.Name, "New", StringComparison.InvariantCultureIgnoreCase)); var tracker = RedmineService.GetTotalObjectList<Redmine.Net.Api.Types.Tracker>(new NameValueCollection()) .First(s => string.Equals(s.Name, "Salon", StringComparison.InvariantCultureIgnoreCase)); foreach (var issue in issues) { issue.Status = status; var name = new IdentifiableName(); name.Id = tracker.Id; name.Name = tracker.Name; issue.Tracker = name; var customField = new CustomFieldValue(); customField.Info = "AppointmentBook"; issue.CustomFields[1].Values.Add(new CustomFieldValue()); RedmineService.CreateObject(issue); } }
private void updateIssue(object sender, EventArgs e) { this.Enabled = false; try { var upload = Program.redmine.uploadFile(this.filesource.Text); if (upload == null) { throw new Exception("Tracker, Upload and Project needs to be set!"); } upload.FileName = this.filename.Text; upload.ContentType = "application/octet-stream"; upload.Description = this.description.Text; var updateIssue = Program.redmine.getIssue(this.getSelectedIssueId(this.oldIssue)); if (updateIssue.Uploads == null) { updateIssue.Uploads = new List<Upload>(); } updateIssue.Uploads.Add(upload); if (this.issueNote.Text.Length > 0) { updateIssue.Notes = this.issueNote.Text; } if (oldissuePriority.SelectedValue != null && (int)oldissuePriority.SelectedValue != 0 ) { updateIssue.Priority = new IdentifiableName{Id = (int)oldissuePriority.SelectedValue}; } if (oldissueAssignee.SelectedValue != null && (int)oldissueAssignee.SelectedValue != 0 ) { updateIssue.AssignedTo = new IdentifiableName{Id = (int)oldissueAssignee.SelectedValue}; } if (oldissueStatus.SelectedValue != null && (int)oldissueStatus.SelectedValue != 0 ) { updateIssue.Status = new IdentifiableName{Id = (int)oldissueStatus.SelectedValue}; } if (oldIssueCategory.SelectedValue != null && (int)oldIssueCategory.SelectedValue != 0) { updateIssue.Category = new IdentifiableName{Id = (int)oldIssueCategory.SelectedValue}; } if (oldIssueVersion.SelectedValue != null && (int)oldIssueVersion.SelectedValue != 0) { updateIssue.FixedVersion = new IdentifiableName{Id = (int)oldIssueVersion.SelectedValue}; } if (oldIssueTracker.SelectedValue != null && (int)oldIssueTracker.SelectedValue != 0) { updateIssue.Tracker = new IdentifiableName{Id = (int)oldIssueTracker.SelectedValue}; } if (updateIssue.CustomFields == null) { updateIssue.CustomFields = new List<CustomField>(); } for (int i = 0;i < customFieldsUpdate.Length;i++) { CustomField item = new CustomField(); item.Id = customFieldDefinitions[i].id; item.Multiple = false; item.Name = customFieldDefinitions[i].name; for (int y = 0;y < updateIssue.CustomFields.Count;y++) { if (updateIssue.CustomFields[y].Id == item.Id) { updateIssue.CustomFields.Remove(updateIssue.CustomFields[y]); break; } } CustomFieldValue customFieldValue = new CustomFieldValue(); customFieldValue.Info = customFieldsUpdate[i].Text; item.Values = new List<CustomFieldValue>(); item.Values.Add(customFieldValue); updateIssue.CustomFields.Add(item); } Program.redmine.updateIssue(updateIssue); DialogResult messageBoxResult = MessageBox.Show( String.Concat("Issue #",updateIssue.Id," succesfully updated.\nOpen Issue now?"), "Success!", MessageBoxButtons.YesNo ); if (messageBoxResult.ToString() == "Yes") { String uri = new UriBuilder(Program.redmine.buffer.host).Uri.ToString(); System.Diagnostics.Process.Start(String.Concat(uri ,"issues/",updateIssue.Id)); } if (Program.redmine.buffer.closeAfterUpload) { Application.Exit(); } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message,"Error while updating issue."); } this.Enabled = true; }
private void newIssue(object sender, EventArgs e) { this.Enabled = false; try { var upload = Program.redmine.uploadFile(this.filesource.Text); //Create a issue. if (issueTracker.SelectedValue == null || upload == null || projectList.SelectedValue == null) { throw new Exception("Tracker, Upload and Project needs to be set!"); } upload.FileName = this.filename.Text; upload.ContentType = "application/octet-stream"; upload.Description = this.description.Text; IList<Upload> uploads = new List<Upload>(); uploads.Add(upload); var newIssue = new Issue { Subject = this.issueSubject.Text, Project = new IdentifiableName{Id = (int)projectList.SelectedValue}, Tracker = new IdentifiableName{Id = (int)issueTracker.SelectedValue}, Description = this.issueDescription.Text, Uploads = uploads }; string parentIssue = this.getSelectedIssueId(this.parentIssue); if (parentIssue != "") { newIssue.ParentIssue = new IdentifiableName{Id = int.Parse(parentIssue)}; } if (issuePriority.SelectedValue != null && (int)issuePriority.SelectedValue != 0 ) { newIssue.Priority = new IdentifiableName{Id = (int)issuePriority.SelectedValue}; } if (issueAssignee.SelectedValue != null && (int)issueAssignee.SelectedValue != 0 ) { newIssue.AssignedTo = new IdentifiableName{Id = (int)issueAssignee.SelectedValue}; } if (issueCategory.SelectedValue != null && (int)issueCategory.SelectedValue != 0) { newIssue.Category = new IdentifiableName{Id = (int)issueCategory.SelectedValue}; } if (issueVersion.SelectedValue != null && (int)issueVersion.SelectedValue != 0) { newIssue.FixedVersion = new IdentifiableName{Id = (int)issueVersion.SelectedValue}; } for (int i = 0;i < customFieldsNew.Length;i++) { CustomField item = new CustomField(); item.Id = customFieldDefinitions[i].id; item.Multiple = false; item.Name = customFieldDefinitions[i].name; CustomFieldValue customFieldValue = new CustomFieldValue(); customFieldValue.Info = customFieldsNew[i].Text; item.Values = new List<CustomFieldValue>(); item.Values.Add(customFieldValue); newIssue.CustomFields = new List<CustomField>(); newIssue.CustomFields.Add(item); } newIssue = Program.redmine.createIssue(newIssue); DialogResult messageBoxResult = MessageBox.Show( String.Concat("Issue #",newIssue.Id," succesfully created.\nOpen Issue now?"), "Success!", MessageBoxButtons.YesNo ); if (messageBoxResult.ToString() == "Yes") { String uri = new UriBuilder(Program.redmine.buffer.host).Uri.ToString(); System.Diagnostics.Process.Start(String.Concat(uri ,"issues/",newIssue.Id)); } if (Program.redmine.buffer.closeAfterUpload) { Application.Exit(); } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message,"Error while creating issue."); } this.Enabled = true; }