Exemplo n.º 1
0
 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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }