コード例 #1
0
        private async Task <CodeHubWorkItemList> GetAllWorkItemsFromProvider(Organization organization)
        {
            try
            {
                var connection = CreateConnection(organization);
                var client     = connection.CreateTicketClient();
                var tickets    = await client.GetTicketListAsync();

                var ticketList = tickets.ToList();

                var workItems = new CodeHubWorkItemList {
                    WorkItems = _mapper.Map <List <CodeHubWorkItem> >(ticketList)
                };
                foreach (var ticket in workItems.WorkItems)
                {
                    ticket.Color                = organization.Color;
                    ticket.ProviderType         = StaticWorkProviderTypes.Zammad;
                    ticket.ProviderOrganization = organization.Name;
                    ticket.OrganizationId       = organization.Id;
                    ticket.WorkItemType         = "Ticket";
                }

                return(workItems);
            }
            catch (Exception e)
            {
                _logger.LogError($"Exception while fetching Zammad items: {e}");
                throw;
            }
        }
コード例 #2
0
        public async Task <CodeHubWorkItemList> GetAllAvailableWorkItemsFromWorkProviders(bool clearCache)
        {
            var items = new CodeHubWorkItemList {
                WorkItems = new List <CodeHubWorkItem> {
                }
            };
            var stopwatch = new Stopwatch();

            stopwatch.Start();

            var devOpsItems = await _devOpsManager.GetAllWorkItemsFromCache(clearCache);

            items.WorkItems.AddRange(devOpsItems.WorkItems);

            var zammadTickets = await _zammadManager.GetAllWorkItemsFromCache(clearCache);

            items.WorkItems.AddRange(zammadTickets.WorkItems);
            stopwatch.Stop();

            items.WorkItems = items.WorkItems.OrderBy(s => s.ChangedDate).ToList();

            Logger.LogDebug($"Received {devOpsItems.WorkItems.Count} DevOps Work Items and {zammadTickets.WorkItems.Count} Zammad Tickets. Took: {stopwatch.ElapsedMilliseconds}ms");

            return(items);
        }
コード例 #3
0
        public async Task <CodeHubWorkItemList> GetAllWorkItemsFromCache(bool clearCache)
        {
            var workProviders = await _organizationsService.GetWorkProviderOrganizations();

            var allWorkItems = new CodeHubWorkItemList {
                WorkItems = new List <CodeHubWorkItem>()
            };

            foreach (var organization in workProviders.Where(organization => organization.ProviderType == WorkProviderType.DevOps))
            {
                allWorkItems.WorkItems.AddRange(await GetDevOpsItems(organization, clearCache));
            }

            return(allWorkItems);
        }
コード例 #4
0
        public async Task <CodeHubWorkItemList> GetAllWorkItems()
        {
            try
            {
                var allWorkItems = new CodeHubWorkItemList {
                    WorkItems = new List <CodeHubWorkItem>()
                };

                foreach (var organization in await GetProviderOrganizationsAsync())
                {
                    allWorkItems.WorkItems.AddRange((await GetWorkItems(organization)).WorkItems);
                }

                allWorkItems.WorkItems = allWorkItems.WorkItems.OrderByDescending(s => s.ChangedDate).ToList();
                return(allWorkItems);
            }
            catch (Exception e)
            {
                _logger.LogError(e.ToString());
                throw;
            }
        }
コード例 #5
0
ファイル: ZammadManager.cs プロジェクト: koderi-dp/Code.Hub
        public async Task <CodeHubWorkItemList> GetAllWorkItemsFromCache(bool clearCache)
        {
            try
            {
                var workProviders = await _organizationsService.GetWorkProviderOrganizations();

                var allWorkItems = new CodeHubWorkItemList {
                    WorkItems = new List <CodeHubWorkItem>()
                };

                foreach (var organization in workProviders.Where(organization => organization.ProviderType == WorkProviderType.Zammad))
                {
                    allWorkItems.WorkItems.AddRange(await GetZammadItems(organization, clearCache));
                }

                allWorkItems.WorkItems = allWorkItems.WorkItems.OrderByDescending(s => s.ChangedDate).ToList();
                return(allWorkItems);
            }
            catch (Exception e)
            {
                _logger.LogError(e.ToString());
                throw;
            }
        }