private bool IsDuplicate(WorkLog workLog, CreateWorkLogRequest request) { return(workLog.Timestamp == request.TimeStamp && workLog.Length == request.Length && workLog.WorkItemId == request.WorkItemId && workLog.ActivityType.Id == request.ActivityTypeId && workLog.Comment == request.Comment); }
public async Task <WorkLog> CreateWorkLog(CreateWorkLogRequest createWorkLogRequest) { Url url = _baseUrl .AppendPathSegment("workLogs") .SetQueryParam("api-version", ApiVersion); ApiResponse <WorkLog> response = await url .WithOAuthBearerToken(_bearerToken) .PostJsonAsync(createWorkLogRequest) .ReceiveJson <ApiResponse <WorkLog> >(); return(response.Data); }
private static async Task TimeTracker(string timeTrackerToken) { var client = new TimeTrackingClient(timeTrackerToken, "https://<organizationName>.timehub.7pace.com/api/rest/"); var me = await client.GetMe(); var items = await client.GetWorkLogs(DateTime.Now.AddDays(-7), DateTime.Now); var createRequest = new CreateWorkLogRequest(DateTime.UtcNow, 500, null, "TimeTracker API Test", me.User.Id, "00000000-0000-0000-0000-000000000000"); // var created = await client.CreateWorkLog(createRequest); // await client.DeleteWorkLog(created.Id); }
private async Task CreateIdempotent(WorkLog existingConflictWorkLog, CreateWorkLogRequest createWorkLogRequest) { if (existingConflictWorkLog != null) { if (IsDuplicate(existingConflictWorkLog, createWorkLogRequest)) { return; } await _client.DeleteWorkLog(existingConflictWorkLog.Id); } await _client.CreateWorkLog(createWorkLogRequest); }