public List<Comment> ConvertToComments(FieldInfo issueFields)
        {
            Checker.IsNull(issueFields, "issueFields");

            var result = new List<Comment>();

            if (issueFields.Comment != null && issueFields.Comment.Comments != null)
            {
                foreach (var comment in issueFields.Comment.Comments)
                {
                    var content = markdownConverter.ReplaceFromJiraToGithub(comment.Body);

                    result.Add(new Comment
                    {
                        Body = content,
                        Creator = new Author
                        {
                            Name = comment.Author.DisplayName,
                            Email = comment.Author.EmailAddress
                        }
                    });
                }
            }

            return result;
        }
        public List<AttachmentFile> ConvertToDataFile(FieldInfo issueFields, JiraClientApi jiraClientApi)
        {
            Checker.IsNull(issueFields, "issueFields");
            Checker.IsNull(jiraClientApi, "jiraClientApi");

            var result = new List<AttachmentFile>();

            if (issueFields.Attachment != null && issueFields.Attachment.Length > 0)
            {
                foreach (var attachment in issueFields.Attachment)
                {
                    var file = new AttachmentFile
                    {
                        FileName = attachment.Filename,
                        MimeType = attachment.MimeType,
                        Content = jiraClientApi.Download(attachment.Content)
                    };
                    result.Add(file);
                }
            }

            return result;
        }
 private bool HasSprintDescription(FieldInfo issueFields)
 {
     var field10006 = issueFields.customfield_10006;
     return field10006 != null && field10006.Count > 0 && !String.IsNullOrEmpty(field10006[0]);
 }
 private void AddSprintIfNoContains(FieldInfo issueFields, List<string> sprints)
 {
     if (HasSprintDescription(issueFields))
     {
         var sprint = SprintUtil.Parse(issueFields.customfield_10006[0]);
         if (!sprints.Contains(sprint.Name))
         {
             sprints.Add(sprint.Name);
         }
     }
 }
 private void AddLabelIfNoContains(FieldInfo issueFields, List<string> labels)
 {
     foreach (var lb in issueFields.Labels)
     {
         if (!labels.Contains(lb))
         {
             labels.Add(lb);
         }
     }
 }
 private void AddIssueTypeAsLabelIfNoContains(FieldInfo issueFields, List<string> labels)
 {
     if (!labels.Contains(issueFields.IssueType.Name))
     {
         labels.Add(issueFields.IssueType.Name);
     }
 }