diff --git a/Services/Mappers/JiraIssueMapper.cs b/Services/Mappers/JiraIssueMapper.cs index 4feb73f..0b22596 100644 --- a/Services/Mappers/JiraIssueMapper.cs +++ b/Services/Mappers/JiraIssueMapper.cs @@ -1,10 +1,13 @@ -using TriliumMind.Data.Entities; +using System; +using TriliumMind.Data.Entities; using TriliumMind.Models; namespace TriliumMind.Services.Mappers; public static class JiraIssueMapper { + private static readonly char[] _specialCharacters = ['(', '/']; + public static JiraIssue ToEntity(this Issue issue) { return new JiraIssue @@ -13,9 +16,9 @@ public static class JiraIssueMapper Summary = issue.fields.summary ?? string.Empty, Parent = issue.fields.parent?.key ?? issue.fields.customfield_10808, Type = issue.fields.issuetype?.name ?? string.Empty, - Status = issue.fields.status?.description ?? string.Empty, - Assignee = issue.fields.assignee?.displayName ?? string.Empty, - Manager = issue.fields.reporter?.displayName ?? string.Empty, + Status = issue.fields.status?.name ?? string.Empty, + Assignee = CleanDisplayName(issue.fields.assignee?.displayName), + Manager = CleanDisplayName(issue.fields.reporter?.displayName), Due = issue.fields.duedate?.ToUniversalTime() ?? DateTimeOffset.MinValue.ToUniversalTime(), Updated = issue.fields.UpdatedAt.ToUniversalTime(), Published = DateTimeOffset.MinValue.ToUniversalTime(), @@ -23,4 +26,16 @@ public static class JiraIssueMapper NeedNotify = 0 }; } + + private static string CleanDisplayName(string? displayName) + { + if (string.IsNullOrWhiteSpace(displayName)) + return string.Empty; + + var specialCharIndex = displayName.IndexOfAny(_specialCharacters); + if (specialCharIndex >= 0) + displayName = displayName[..specialCharIndex]; + + return displayName.Trim(); + } } \ No newline at end of file