private InternalTempoWorklog MapToInternalTempoWorklog(TempoWorklog workLog, User mySelf) { var internalWorklog = new InternalTempoWorklog() { DateStarted = workLog.StartTime.ToIsoDateTimeStrWithoutTimeZone(), TimeSpentSeconds = workLog.Duration, Comment = workLog.Description, Issue = new InternalTempoIssue { Key = workLog.TicketKey, }, Author = new InternalTempoAuthor { Name = mySelf.Name, Self = mySelf.Self.ToString(), } }; internalWorklog.WorklogAttributes.Add( new InternalWorklogAttribute { Key = ActivityAttributeKey, Value = Uri.EscapeDataString(workLog.Activity) }); internalWorklog.Id = workLog.Id; return(internalWorklog); }
private TempoWorklog MapToTempoWorklog(InternalTempoWorklog internalWorkLog) { var worklog = new TempoWorklog { Id = internalWorkLog.Id, Description = internalWorkLog.Comment, StartTime = DateTime.Parse(internalWorkLog.DateStarted), TicketKey = internalWorkLog.Issue.Key, }; worklog.EndTime = worklog.StartTime.AddSeconds(internalWorkLog.TimeSpentSeconds); worklog.Activity = internalWorkLog.WorklogAttributes.FirstOrDefault(x => x.Key == ActivityAttributeKey)?.Value; return(worklog); }
public static async Task <Worklog> CreateAsync(this ITempoDomain jiraClient, Worklog issue, CancellationToken cancellationToken = default(CancellationToken)) { if (issue == null) { throw new ArgumentNullException("worklog"); } jiraClient.Behaviour.MakeCurrent(); var res = await jiraClient.JiraTempoUri .AppendSegments("worklogs") .PostAsync <HttpResponse <Worklog, Error> >(issue, cancellationToken) .ConfigureAwait(false); return(res.Response); }