Esempio n. 1
0
        private async Task UpdateTaskWithoutExternalId(API.Task task, Func <API.Task, string> externalIdLookup)
        {
            var externalId = externalIdLookup(task);

            if (!String.IsNullOrEmpty(externalId))
            {
                logger.LogInformation($"Updating previous untracked Task(Name={task.name}) with ExternalId: {externalId}");
                try
                {
                    await timrSync.SetTaskExternalIdAsync(new API.SetTaskExternalIdRequest1(new API.SetTaskExternalIdRequest
                    {
                        name = task.name,
                        newExternalTaskId = externalId,
                        parentExternalId  = task.parentExternalId
                    }
                                                                                            )).ConfigureAwait(false);

                    task.externalId = externalId;
                }
                catch (FaultException e)
                {
                    logger.LogError($"Failed SetTaskExternalId Task(Name={task.name}, ExternalId={externalId}): {e.Message}");
                }
                catch (Exception e)
                {
                    logger.LogError(e, $"Failed SetTaskExternalId Task(Name={task.name}, ExternalId={externalId})");
                }
            }
        }
Esempio n. 2
0
 public async Task AddTask(API.Task task)
 {
     logger.LogInformation($"Adding Task(Name={task.name}, ExternalId={task.externalId})");
     await timrSync.AddTaskAsync(new API.AddTaskRequest(task)).ConfigureAwait(false);
 }
Esempio n. 3
0
        protected async Task AddOrUpdateTask(IDictionary <string, API.Task> existingTaskIDs, API.Task task, bool updateTask, IEqualityComparer <API.Task> equalityComparer)
        {
            logger.LogDebug($"Checking Task(Name={task.name}, ExternalId={task.externalId})");

            if (existingTaskIDs.TryGetValue(task.externalId, out var existingTask))
            {
                if (updateTask && !equalityComparer.Equals(task, existingTask))
                {
                    logger.LogInformation($"Updating Task(Name={task.name}, ExternalId={task.externalId})");
                    await timrSync.UpdateTaskAsync(new API.UpdateTaskRequest(task)).ConfigureAwait(false);

                    existingTaskIDs[task.externalId] = task;
                }
            }
            else
            {
                logger.LogInformation($"Adding Task(Name={task.name}, ExternalId={task.externalId})");
                await timrSync.AddTaskAsync(new API.AddTaskRequest(task)).ConfigureAwait(false);

                existingTaskIDs.Add(task.externalId, task);
                if (task.subtasks != null)
                {
                    foreach (API.Task subtask in task.subtasks)
                    {
                        await timrSync.AddTaskAsync(new API.AddTaskRequest(subtask)).ConfigureAwait(false);

                        existingTaskIDs.Add(subtask.externalId, subtask);
                    }
                }
            }
        }