Ejemplo n.º 1
0
 public void Init()
 {
     instance = new WorkItemCache();
 }
Ejemplo n.º 2
0
        public void HighlightChangesets(TrackProgressParameters trackProgressParams = null)
        {
            bool incrementProgress = false;

            if (trackProgressParams != null)
            {
                if (trackProgressParams.ShouldSetMaximumValue())
                {
                    trackProgressParams.TrackProgress.MaxProgress
                        = WorkItemCache
                          .Where(workItem => workItem.IsSelected)
                          .Select(workItem => workItem.RelatedChangesetCount)
                          .Sum();
                }
                if (!trackProgressParams.ShouldExecute())
                {
                    return;
                }
                incrementProgress = trackProgressParams.ShouldIncrement();
            }

            var changesetsToHighlight = new List <int>();
            var workItemsWithWarnings = new Dictionary <int, string>();
            var map = _changesetCacheMap;

            var warnings = new System.Text.StringBuilder();

            foreach (var item in WorkItemCache.Where(workItem => workItem.IsSelected))
            {
                int countWarnings = 0;
                warnings.Clear();
                foreach (var changeset in item.RelatedChangesetsAsEnumerable)
                {
                    if (trackProgressParams != null)
                    {
                        if (incrementProgress)
                        {
                            trackProgressParams.TrackProgress.Increment();
                        }
                        trackProgressParams.CancellationToken.ThrowIfCancellationRequested();
                    }

                    if (map.ContainsKey(changeset.Changeset.ChangesetId))
                    {
                        changesetsToHighlight.Add(changeset.Changeset.ChangesetId);
                    }
                    if (!map.ContainsKey(changeset.Changeset.ChangesetId) || !map[changeset.Changeset.ChangesetId].IsVisible)
                    {
                        ++countWarnings;
                        warnings.Append(String.Format("Changeset #{0}, Comment: {1}\n", changeset.Changeset.ChangesetId, changeset.Changeset.Comment));
                    }
                }
                if (countWarnings > 0)
                {
                    workItemsWithWarnings[item.TfsWorkItem.Id] =
                        String.Format("The following {0} items were not found in the changeset view:\n", countWarnings)
                        + warnings;
                }
            }

            foreach (var item in ChangesetCache)
            {
                item.IsHighlighted = changesetsToHighlight.Contains(item.TfsChangeset.Changeset.ChangesetId);
            }

            foreach (var item in WorkItemCache)
            {
                string warningText = null;
                item.HasWarning  = workItemsWithWarnings.TryGetValue(item.TfsWorkItem.Id, out warningText);
                item.WarningText = item.HasWarning ? warningText : null;
            }
        }