public WorkItemRelatedWorkAddedEvent(RelatedWork relatedWork, string workItemType)
 {
     LinkType             = relatedWork.LinkType;
     Comment              = relatedWork.Comment;
     Url                  = relatedWork.Url.Hyperlink;
     ReferencedWorkItemId = relatedWork.ReferencedWorkItemId;
     WorkItemType         = workItemType;
 }
        public RelatedWork ToRelatedWork()
        {
            var linkType = (LinkType)LinkTypeId;

            return(linkType == LinkType.GitHubIssue
                ? RelatedWork.CreateGitHubRelatedWork(new Link(Url), Comment)
                : RelatedWork.CreateWorkItemRelatedWork(linkType, Comment, WorkItemId !.Value));
        }
        public RelatedWork ToRelatedWork()
        {
            var linkType = (LinkType)LinkTypeId;
            var link     = string.IsNullOrWhiteSpace(Url) ? null : new Link(Url);

            return(linkType == LinkType.GitHubIssue
                ? RelatedWork.CreateGitHubRelatedWork(link, Url)
                : RelatedWork.CreateWorkItemRelatedWork(linkType, Comment, ReferencedWorkItemId !.Value));
        }
 public RelatedWorkDao(RelatedWork entity, Guid workItemId) : base(entity)
 {
     Id                   = entity.Id;
     LinkTypeId           = (int)entity.LinkType;
     Comment              = entity.Comment;
     Url                  = entity.Url?.Hyperlink;
     WorkItemId           = workItemId;
     ReferencedWorkItemId = entity.ReferencedWorkItemId;
 }
        public void AddRelatedWork(RelatedWork relatedWork)
        {
            if (relatedWork.ReferencedWorkItemId.HasValue && relatedWork.ReferencedWorkItemId.Value == Id)
            {
                throw new DomainException(nameof(RelatedWorks),
                                          "A work item cannot be related to itself");
            }
            if (relatedWork == null)
            {
                throw new DomainException(nameof(RelatedWorks), "A relatedWork must not be null");
            }

            _relatedWorks.Add(relatedWork);
            DomainEvents.Add(new WorkItemRelatedWorkAddedEvent(relatedWork, this.GetType().Name));
        }
        private Bug CreateBug()
        {
            var title  = "test";
            var teamId = Guid.NewGuid();
            var effort = new Effort(10, 10, 10);

            var integratedInBuild = "test";
            var storyPoints       = 10;
            var systemInfo        = "test";
            var foundInBuild      = "test";

            var description = "test";
            var assignedTo  = Guid.NewGuid();
            var sprintId    = Guid.NewGuid();
            var repoLink    = new Link("http://www.test.com");

            var tag = new Tag("test");

            var path       = "C\\test";
            var fileName   = "test";
            var mimeType   = "application/pdf";
            var created    = new DateTime(2021, 6, 7);
            var attachment = new Attachment(path, fileName, mimeType, created);

            var gitHubLink  = new Link("https://github.com/IagoCCortes");
            var comment     = "test";
            var relatedWork = RelatedWork.CreateGitHubRelatedWork(gitHubLink, comment);

            return(new Bug.BugBuilder(title, teamId, effort)
                   .SetBugOptionalFields(integratedInBuild, storyPoints, systemInfo, foundInBuild)
                   .SetWorkItemOptionalFields(description, assignedTo, sprintId, repoLink)
                   .AddTag(tag)
                   .AddAttachment(attachment)
                   .AddRelatedWork(relatedWork)
                   .BuildWorkItem());
        }
 public WorkItemBuilder <T> AddRelatedWork(RelatedWork relatedWork)
 {
     WorkItem._relatedWorks.Add(relatedWork);
     return(this);
 }