Example #1
0
        private ValidationSeverity DetermineSeverity()
        {
            var issueMax  = Issues.Any() ? Issues.Max(i => i.Severity) : ValidationSeverity.None;
            var reportMax = SubReports.Any() ? SubReports.Max(i => i.Severity) : ValidationSeverity.None;

            return((ValidationSeverity)Math.Max((int)issueMax, (int)reportMax));
        }
Example #2
0
 public void Refresh()
 {
     if (Issues != null && Issues.Any())
     {
         Cost            = Issues.Sum(t => t.Price);
         TimeToDo        = Issues.Sum(t => t.IssueEstimation);
         CompletedIssues = Issues.Where(t => t.IsCompleted()).ToList();
         NewIssues       = Issues.Where(t => t.Status == IssueStatus.New).ToList();
         LastIssues      = Issues.OrderByDescending(t => t.CreatedDate).TakeMax(10).ToList();
     }
 }
Example #3
0
        public void CreateNewIssue()
        {
            var issueId  = Issues.Any() ? Issues.Max(i => i.Id) + 1 : 1;
            var newIssue = new Issue(issueId)
            {
                Author      = Environment.UserName,
                DateCreated = DateTime.Now,
            };

            var issueVm = CreateIssueVm(newIssue);

            issueVm.IsLoaded = true;
            issueVm.IsDirty  = true;

            Issues.Add(issueVm);
            ActiveIssue = issueVm;
        }
Example #4
0
        public override string ToString()
        {
            var sb = new StringBuilder();

            if (!string.IsNullOrEmpty(Scope))
            {
                sb.Append(Type).Append('(').Append(Scope).Append("): ").Append(Summary);
            }
            else
            {
                sb.Append(Type).Append(": ").Append(Summary);
            }

            if (Issues.Any())
            {
                sb.Append(" (closed #").AppendJoin(", #", Issues).Append(')');
            }

            return(sb.ToString());
        }
Example #5
0
 /// <summary>
 /// Returns whether any of the issues contain a unique, identifying issue code.
 /// </summary>
 public bool Contains(long issueCode)
 {
     return(issueCode != ResultIssue.NonIssueCode && Issues.Any(issue => issue == issueCode));
 }
Example #6
0
 /// <summary>
 /// Returns whether any of the issues contain a message.
 /// </summary>
 public bool Contains(string message)
 {
     return(Issues.Any(issue => issue == message));
 }
Example #7
0
        public void MergeBcfFile(IEnumerable <BcfFile> bcfFiles)
        {
            try
            {
                foreach (var bcf in bcfFiles)
                {
                    foreach (var mergedIssue in bcf.Issues)
                    {
                        //it's a new issue
                        if (!Issues.Any(x => x.Topic != null && mergedIssue.Topic != null && x.Topic.Guid == mergedIssue.Topic.Guid))
                        {
                            string sourceDir = Path.Combine(bcf.TempPath, mergedIssue.Topic.Guid);
                            string destDir   = Path.Combine(TempPath, mergedIssue.Topic.Guid);

                            Directory.Move(sourceDir, destDir);
                            //update path set for binding
                            foreach (var view in mergedIssue.Viewpoints)
                            {
                                view.SnapshotPath = Path.Combine(TempPath, mergedIssue.Topic.Guid, view.Snapshot);
                            }
                            Issues.Add(mergedIssue);
                        }
                        //it exists, let's loop comments and views
                        else
                        {
                            var issue       = Issues.First(x => x.Topic.Guid == mergedIssue.Topic.Guid);
                            var newComments = mergedIssue.Comment.Where(x => issue.Comment.All(y => y.Guid != x.Guid)).ToList();
                            if (newComments.Any())
                            {
                                foreach (var newComment in newComments)
                                {
                                    issue.Comment.Add(newComment);
                                }
                            }
                            //sort comments
                            issue.Comment = new ObservableCollection <Comment>(issue.Comment.OrderByDescending(x => x.Date));

                            var newViews = mergedIssue.Viewpoints.Where(x => issue.Viewpoints.All(y => y.Guid != x.Guid)).ToList();
                            if (newViews.Any())
                            {
                                foreach (var newView in newViews)
                                {
                                    //to avoid conflicts in case both contain a snapshot.png or viewpoint.bcfv
                                    //img to be merged
                                    string sourceFile = newView.SnapshotPath;
                                    //assign new safe name based on guid
                                    newView.Snapshot = newView.Guid + ".png";
                                    //set new temp path for binding
                                    newView.SnapshotPath = Path.Combine(TempPath, issue.Topic.Guid, newView.Snapshot);
                                    //assign new safe name based on guid
                                    newView.Viewpoint = newView.Guid + ".bcfv";
                                    File.Move(sourceFile, newView.SnapshotPath);
                                    issue.Viewpoints.Add(newView);
                                }
                            }
                        }
                    }
                    Utils.DeleteDirectory(bcf.TempPath);
                }
                HasBeenSaved = false;
            }
            catch (System.Exception ex1)
            {
                MessageBox.Show("exception: " + ex1);
            }
        }
Example #8
0
        private FlowDocument BuildDocument()
        {
            var doc = new FlowDocument();

            doc.LineStackingStrategy = System.Windows.LineStackingStrategy.BlockLineHeight;
            doc.LineHeight           = 12;
            doc.Blocks.Add(new Paragraph(new Bold(new Run("Summary"))));
            doc.Blocks.Add(new Paragraph(new Run(" " + Title)));
            doc.Blocks.Add(new Paragraph(new Bold(new Run("Description"))));
            doc.Blocks.Add(new Paragraph(new Run(" " + Description)));

            doc.Blocks.Add(new Paragraph(new Bold(new Run("Url"))));
            var url = new Hyperlink(new Run(Url.ToString()));

            doc.Blocks.Add(new Paragraph(url));
            doc.Blocks.Add(new Paragraph(new Bold(new Run("Parent Story"))));
            var parentUrl = new Hyperlink(new Run(ParentStoryUrl.ToString()));

            parentUrl.NavigateUri = ParentStoryUrl;
            doc.Blocks.Add(new Paragraph(parentUrl));

            doc.Blocks.Add(new Paragraph(new Italic(new Run("Status: " + Status.ToString()))));

            doc.Blocks.Add(new Paragraph(new Italic(new Run("Date Started: " + DateStarted.Value.ToString("yyyy-MM-dd hh:mm:ss")))));
            if (DateEnded.HasValue && DateEnded.Value != DateTime.MinValue)
            {
                doc.Blocks.Add(new Paragraph(new Italic(new Run("Date Ended: " + DateEnded.Value.ToString("yyyy-MM-dd hh:mm:ss")))));
            }

            if (Attachments.Any())
            {
                doc.Blocks.Add(new Paragraph(new Bold(new Run("Attachments"))));
                foreach (var item in Attachments)
                {
                    var itemUri = new Uri(item.Value);
                    var itemUrl = new Hyperlink(new Run(item.Value));
                    doc.Blocks.Add(new Paragraph(itemUrl));
                }
            }

            if (AcceptanceCriteria.Any())
            {
                doc.Blocks.Add(new Paragraph(new Bold(new Run("Acceptance Criteria"))));
                foreach (var item in AcceptanceCriteria)
                {
                    doc.Blocks.Add(new Paragraph(new Run(" + " + item.Value)));
                }
            }

            if (DeveloperCriteria.Any())
            {
                doc.Blocks.Add(new Paragraph(new Bold(new Run("Development Criteria"))));
                foreach (var item in DeveloperCriteria)
                {
                    doc.Blocks.Add(new Paragraph(new Run(" + " + item.Value)));
                }
            }

            var i = 0;
            var j = 0;

            if (KeyIdentifiers.Any())
            {
                doc.Blocks.Add(new Paragraph(new Bold(new Run("Key Identifiers"))));
                foreach (var item in KeyIdentifiers)
                {
                    doc.Blocks.Add(new Paragraph(new Run(" " + (++i).ToString() + ". " + item.Description)));

                    if (item.Questions.Any())
                    {
                        j = 0;
                        doc.Blocks.Add(new Paragraph(new Italic(new Run(" Questions"))));
                        foreach (var q in item.Questions)
                        {
                            doc.Blocks.Add(new Paragraph(new Run("   " + (++j).ToString() + ".Q. " + q.Ask)));
                            doc.Blocks.Add(new Paragraph(new Run("     A. " + q.Answer)));
                        }
                    }
                }
            }

            if (Issues.Any())
            {
                i = 0;
                doc.Blocks.Add(new Paragraph(new Bold(new Run("Issues"))));
                foreach (var item in Issues)
                {
                    doc.Blocks.Add(new Paragraph(new Run(" " + (++i).ToString() + ". " + item.Description)));
                    doc.Blocks.Add(new Paragraph(new Italic(new Run("  Is Open: " + item.IsOpen.ToString()))));
                }
            }

            if (Queries.Any())
            {
                doc.Blocks.Add(new Paragraph(new Bold(new Run("Queries"))));
                foreach (var item in Queries)
                {
                    var itemUri = new Uri(item.Value);
                    var itemUrl = new Hyperlink(new Run(item.Value));
                    doc.Blocks.Add(new Paragraph(itemUrl));
                }
            }

            if (Scripts.Any())
            {
                doc.Blocks.Add(new Paragraph(new Bold(new Run("Scripts"))));
                foreach (var item in Scripts)
                {
                    var itemUri = new Uri(item.Value);
                    var itemUrl = new Hyperlink(new Run(item.Value));
                    doc.Blocks.Add(new Paragraph(itemUrl));
                }
            }

            if (TestCases.Any())
            {
                i = 0;
                doc.Blocks.Add(new Paragraph(new Bold(new Run("Test Cases"))));
                foreach (var item in TestCases)
                {
                    doc.Blocks.Add(new Paragraph(new Run(" " + (++i).ToString() + ". " + item.Description)));
                    doc.Blocks.Add(new Paragraph(new Italic(new Run("  Status: " + item.Status.ToString()))));

                    if (item.Steps.Any())
                    {
                        j = 0;
                        doc.Blocks.Add(new Paragraph(new Italic(new Run(" Steps"))));
                        foreach (var q in item.Steps)
                        {
                            doc.Blocks.Add(new Paragraph(new Run("   " + (++j).ToString() + ". " + q.Value)));
                        }
                    }
                }
            }

            if (Checkups.Any())
            {
                i = 0;
                doc.Blocks.Add(new Paragraph(new Bold(new Run("Checkups"))));
                foreach (var item in Checkups)
                {
                    doc.Blocks.Add(new Paragraph(new Run(" " + (++i).ToString() + ". " + item.Description)));
                    doc.Blocks.Add(new Paragraph(new Italic(new Run("  Applied: " + item.Applied.ToString()))));
                }
            }

            if (SubTasks.Any())
            {
                i = 0;
                doc.Blocks.Add(new Paragraph(new Bold(new Run("SubTasks"))));
                foreach (var item in SubTasks)
                {
                    doc.Blocks.Add(new Paragraph(new Run(" " + (++i).ToString() + ". " + item.Title)));
                    doc.Blocks.Add(new Paragraph(new Italic(new Run("  Status: " + item.Status))));
                }
            }

            return(doc);
        }