コード例 #1
0
        public override IEnumerable <IssueTrackerEvent> parseIssueTrackerEvents()
        {
            // First get the patch uploads
            IEnumerable <BugzillaAttachmentInfo> attachmentList = (IEnumerable <BugzillaAttachmentInfo>)AttachmentFactory.parseIssueTrackerEvents();

            // Lookup table to add file names to BugzillaReviews
            Dictionary <UInt64, IList <string> > dictAttachments = attachmentList.ToDictionary(bai => bai.AttachmentId, bai => bai.Filenames);

            // Second, get reviews
            IEnumerable <BugzillaReview> reviewList = GetActivityInfoFromFile(InputFilePath, dictAttachments);

            HashSet <int> setOfAllUsedBugIds = new HashSet <int>(reviewList.Select(review => review.BugId));

            AttachmentFactory.IncludeAttachmentsFilter = (attachment) => setOfAllUsedBugIds.Contains(attachment.BugId);
            attachmentList = (IEnumerable <BugzillaAttachmentInfo>)AttachmentFactory.parseIssueTrackerEvents();  // re-read the list

            return(MergeUtils.Merge <IssueTrackerEvent>(attachmentList, reviewList, (patch, review) => patch.When <= review.When));
        }