/// <summary> /// Updates a bug based on this RhinoTestCase. /// </summary> /// <param name="testCase">RhinoTestCase by which to update a bug.</param> /// <returns><see cref="true"/> if successful, <see cref="false"/> if not.</returns> public static bool UpdateBug(this RhinoTestCase testCase, string idOrKey, JiraClient jiraClient) { // setup var bugType = testCase.GetCapability(capability: AtlassianCapabilities.BugType, defaultValue: "Bug"); var onBug = jiraClient.Get(idOrKey).AsJObject(); // setup conditions var isDefault = onBug == default; var isBug = !isDefault && $"{onBug.SelectToken("fields.issuetype.name")}".Equals(bugType, Compare); // exit conditions if (!isBug) { return(false); } // update body var requestBody = GetUpdateBugPayload(testCase, onBug, jiraClient); var isUpdate = jiraClient.UpdateIssue(idOrKey, requestBody); if (!isUpdate) { return(isUpdate); } // delete all attachments jiraClient.DeleteAttachments(idOrKey: $"{onBug["key"]}"); // upload new attachments var files = testCase.GetScreenshots(); jiraClient.AddAttachments($"{onBug["key"]}", files.ToArray()); // results return(isUpdate); }