Beispiel #1
0
 public async Task UpdateIssues(JiraLoginParameters jiraLoginParameters, string projectName,
                                DateTime startUpdateDate, ICacheUpdateProgress cacheUpdateProgress)
 {
     await _jiraCache.UpdateIssues(jiraLoginParameters, projectName, cacheUpdateProgress, startUpdateDate);
 }
        public Task UpdateIssues(JiraLoginParameters jiraLoginParameters, string projectKey, ICacheUpdateProgress cacheUpdateProgress, DateTime startUpdateDate)
        {
            if (ExpectedLoginParameters != null)
            {
                Assert.Equal(ExpectedLoginParameters.JiraUrl, jiraLoginParameters.JiraUrl);
                Assert.Equal(ExpectedLoginParameters.JiraUsername, jiraLoginParameters.JiraUsername);
                Assert.Equal(ExpectedLoginParameters.JiraPassword, jiraLoginParameters.JiraPassword);
                Assert.Equal(ExpectedProjectKey, projectKey);
            }

            foreach (var item in IssuesToUpdateWith)
            {
                cacheUpdateProgress.UpdatedIssue(item.Key, item.Updated.Value);
            }

            _issues.AddRange(IssuesToUpdateWith);
            IssuesToUpdateWith.Clear();

            return(Task.CompletedTask);
        }
Beispiel #3
0
        public async Task Update(IJiraClient client, DateTime startUpdateDate, string projectKey, ICacheUpdateProgress progress = null)
        {
            await EnsureInitialized();

            progress = progress ?? new NullCacheUpdateProgres();

            if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }

            if (string.IsNullOrWhiteSpace(projectKey))
            {
                throw new ArgumentNullException(nameof(projectKey));
            }

            DateTime lastUpdateDate = await GetLastUpdateDateTime(projectKey, startUpdateDate);

            int itemPaging = 0;

            while (true)
            {
                const int queryLimit = 50;

                IJiraIssue[] updatedIssues = await client.GetIssues(projectKey, lastUpdateDate, queryLimit, itemPaging);

                foreach (var issue in updatedIssues)
                {
                    CachedIssue flatIssue = await client.RetrieveDetails(issue);

                    await _repository.AddOrReplaceCachedIssue(flatIssue);

                    progress.UpdatedIssue(flatIssue.Key, flatIssue.Updated.Value);
                }

                itemPaging += queryLimit;

                if (updatedIssues.Length != queryLimit)
                {
                    break;
                }
            }
        }
        public async Task UpdateIssues(JiraLoginParameters jiraLoginParameters, string projectKey, ICacheUpdateProgress cacheUpdateProgress, DateTime startUpdateDate)
        {
            var client = new JiraClient(jiraLoginParameters);

            await _cache.Update(client, startUpdateDate, projectKey, cacheUpdateProgress);
        }
 public Task UpdateIssues(JiraLoginParameters jiraLoginParameters, string projectKey, ICacheUpdateProgress cacheUpdateProgress, DateTime startUpdateDate)
 {
     throw new NotSupportedException("Use different test class.");
 }