コード例 #1
0
        private void OnInterval(object pubobj)
        {
            try {
                var bugs = bugzillaReader.GetBugs();

                if (bugs.Count > 0)
                {
                    logger.Log(string.Format("Found {0} issues in Bugzilla to create in VersionOne.", bugs.Count));
                }

                foreach (var bug in bugs)
                {
                    bug.ExternalSystemName = sourceFieldValue;
                    eventManager.Publish(bug);
                }

                var source = new ClosedWorkitemsSource(sourceFieldValue);
                eventManager.Publish(source);
            } catch (Exception ex) {
                logger.Log(LogMessage.SeverityType.Error, "Error getting Issues from Bugzilla:");
                logger.Log(LogMessage.SeverityType.Error, ex.ToString());
            }
        }
コード例 #2
0
        /// <summary>
        /// Timer interval on which to poll JIRA. See app config file for time in milliseconds.
        /// </summary>
        /// <param name="pubobj">Not used</param>
        private void OnInterval(object pubobj)
        {
            logger.Log(LogMessage.SeverityType.Info, "Starting processing...");
            IList <Workitem> workitems = new List <Workitem>();

            try
            {
                logger.Log(LogMessage.SeverityType.Info, "Getting issues from JIRA.");

                if (jiraConfig.OpenDefectFilter.Enabled)
                {
                    var bugs = jiraProcessor.GetIssues <Defect>(jiraConfig.OpenDefectFilter.Id);

                    if (bugs.Count > 0)
                    {
                        logger.Log(string.Format("Found {0} defects in JIRA to create in VersionOne.", bugs.Count));
                    }

                    foreach (var bug in bugs)
                    {
                        workitems.Add(bug);
                    }
                }

                if (jiraConfig.OpenStoryFilter.Enabled)
                {
                    var stories = jiraProcessor.GetIssues <Story>(jiraConfig.OpenStoryFilter.Id);

                    if (stories.Count > 0)
                    {
                        logger.Log(string.Format("Found {0} stories in JIRA to create in VersionOne.", stories.Count));
                    }

                    foreach (var story in stories)
                    {
                        workitems.Add(story);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Log(LogMessage.SeverityType.Error, string.Format("Error getting Issues from JIRA: {0}", ex.Message));
                return;
            }

            logger.Log(LogMessage.SeverityType.Info, "Checking JIRA issues for duplicates.");
            workitems = workitems.Distinct().ToList();

            // Create Workitem in V1
            foreach (var item in workitems)
            {
                item.ExternalSystemName = jiraConfig.SourceFieldValue;
                eventManager.Publish(item);
            }

            // Query VersionOne for Closed defects with a JIRA Source Id
            var source = new ClosedWorkitemsSource(jiraConfig.SourceFieldValue, VersionOneProcessor.PrimaryWorkitemType);

            eventManager.Publish(source);

            logger.Log(LogMessage.SeverityType.Info, "Processing finished.");
        }