internal static JsonObject Generate(WorklogInput worklogInput) { var json = new JsonObject { { "self", worklogInput.Self.ToString() }, { "comment", worklogInput.Comment }, { "started", worklogInput.StartDate.ToRestString() }, { "timeSpent", worklogInput.MinutesSpent.ToString() } }; if (worklogInput.Visibility != null) { json.Add("visibility", VisibilityJsonGenerator.Generate(worklogInput.Visibility).ToJson()); } if (worklogInput.Author != null) { json.Add("author", BasicUserJsonGenerator.Generate(worklogInput.Author).ToJson()); } if (worklogInput.UpdateAuthor != null) { //json.Add("updateAuthor", BasicUserJsonGenerator.Generate(worklogInput.UpdateAuthor).ToString()); json.Add("updateAuthor", worklogInput.UpdateAuthor.ToJson()); } return json; }
/// <summary> /// Adds a new work log entry to issue. /// </summary> /// <param name="worklogUri">The URI for the work log resource for the selected issue.</param> /// <param name="worklogInput">The work log information to add to the issue.</param> /// <exception cref="WebServiceException">If the issue does not exist, or the the calling user does not have permission to add work log information to the issue.</exception> public void AddWorklog(Uri worklogUri, WorklogInput worklogInput) { var qb = new UriBuilder(worklogUri); qb.AppendQuery("adjustEstimate", worklogInput.AdjustEstimate.ToString().ToLower()); switch (worklogInput.AdjustEstimate) { case WorklogInput.AdjustmentEstimate.New: qb.AppendQuery("newEstimate", worklogInput.AdjustEstimateValue.NullToEmpty()); break; case WorklogInput.AdjustmentEstimate.Manual: qb.AppendQuery("reduceBy", worklogInput.AdjustEstimateValue.NullToEmpty()); break; } client.Post<JsonObject>(qb.Uri.ToString(), WorklogInputJsonGenerator.Generate(worklogInput)); }