Beispiel #1
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="MergeCandidateWrapper"/> class.
        /// </summary>
        public MergeCandidateWrapper(MergeCandidate mergeCandidate)
        {
            #region Argument Check

            if (mergeCandidate == null)
            {
                throw new ArgumentNullException("mergeCandidate");
            }

            if (mergeCandidate.Changeset == null)
            {
                throw new ArgumentException(@"The associated changeset cannot be null.", "mergeCandidate");
            }

            #endregion

            var changeset = mergeCandidate.Changeset;

            this.AsString     = mergeCandidate.ToString();
            this.CreationDate = changeset.CreationDate;
            this.ChangesetId  = changeset.ChangesetId;
            this.Owner        = changeset.Owner ?? string.Empty;
            this.Comment      = changeset.Comment ?? string.Empty;

            this.WorkItems           = changeset.WorkItems.Select(item => new WorkItemWrapper(item)).ToList().AsReadOnly();
            this.WorkItemIdsAsString = string.Join(
                ", ",
                this.WorkItems.OrderBy(item => item.Id).Select(item => item.Id.ToString("D")));
        }
Beispiel #2
0
        public void PrintMergeCandidateList(List <MergeCandidate> candidates)
        {
            if (candidates.Count <= 0)
            {
                return;
            }

            const int idLength      = 7;
            const int dateLength    = 10;
            const int nameLength    = 16;
            const int commentLength = 50;

            string header1 = "ID".PadRight(idLength);
            string header2 = "DATE".PadRight(dateLength);
            string header3 = "COMMITTER".PadRight(nameLength);
            string header4 = "COMMENT".PadRight(commentLength);

            string header = " " + header1 + " | " + header2 + " | " + header3 + " | " + header4;

            Output.WriteLine(header);

            // Need to print in reverse order, so that the 1st to be merged shows as the lowest on the screen
            for (int ii = candidates.Count() - 1; ii >= 0; ii--)
            {
                MergeCandidate candidate = candidates[ii];
                Changeset      changeset = candidate.Changeset;

                //string id = changeset.ChangesetId.ToString().Trim().PadRight(idLength);
                string idPartialChar = candidate.Partial ? "*" : string.Empty;
                string id            = (idPartialChar + changeset.ChangesetId.ToString("D")).PadLeft(idLength);
                string date          = changeset.CreationDate.ToShortDateString().PadLeft(dateLength);

                string name = changeset.OwnerDisplayName ?? "";
                if (name.Length > nameLength)
                {
                    name = name.Substring(0, nameLength);
                }
                name = name.PadRight(nameLength);

                string comment = changeset.Comment.Replace("\r\n", "\\n");
                if (comment.Length > commentLength)
                {
                    comment = comment.Substring(0, commentLength);
                }
                comment = comment.PadRight(commentLength);

                string text = " " + id + " | " + date + " | " + name + " | " + comment;
                Output.WriteLine(text);
            }
        }
        public static string[] ToDataGridStringArray(this MergeCandidate candidate)
        {
            string comment = candidate.Comment ?? string.Empty;

            comment = comment.Length > 100 ? comment.Substring(0, 100) + "..." : comment;

            return(new string[]
            {
                candidate.ChangesetId.ToString(),
                candidate.Committer,
                candidate.CheckinDate.ToString(),
                comment
            });
        }
Beispiel #4
0
 public static TfsChangesetMerged ToModel(this MergeCandidate mc)
 {
     return(new TfsChangesetMerged
     {
         Changesetid = mc.Changeset.ChangesetId,
         Comment = mc.Changeset.Comment,
         Committer = mc.Changeset.Committer,
         CommitterDisplayName = mc.Changeset.CommitterDisplayName,
         CreationDate = mc.Changeset.CreationDate,
         CreationDateHuman = mc.Changeset.CreationDate.ToString("yyyy-MM-dd HH:mm:ss"),
         Changes = mc.Changeset.Changes,
         Owner = mc.Changeset.Owner,
         OwnerDisplayName = mc.Changeset.OwnerDisplayName,
         PartialMerge = mc.Partial,
     });
 }
        public void refreshFromDb(LayerManager db, MergeCandidate mc = null)
        {
            var seg = new List<SegmentDescriptor>();
            // this is much faster than using listAllSegments
            foreach(var kvp in db.rangemapmgr.mergeManager.segmentInfo) {
                seg.Add(kvp.Key);
            }

            segments = seg;
            this.lastmerge = mc;

            // we should be doing this, but .Keys is not implemented in BDSkipList
            // segments.AddRange(db.rangemapmgr.mergeManager.segmentInfo.Keys);
            // segments.AddRange(db.listAllSegments());
            this.Invoke((MethodInvoker) delegate() {
                try {
                    this.Refresh();
                } catch (Exception e) {
                    System.Console.WriteLine("######" + e.ToString());
                    throw e;
                }
                });
        }
Beispiel #6
0
        public MergeCandidateWrapper(MergeCandidate mergeCandidate)
        {
            _mergeCandidate = mergeCandidate;

            _changeset = new ChangesetWrapper(_mergeCandidate.Changeset);
        }
Beispiel #7
0
 public void debugDump(LayerManager db, MergeCandidate mc = null)
 {
     this.layerVisualization1.refreshFromDb(db, mc);
 }