private MessageResult AddLinksForMentionedBugs(Message message)
        {
            var matches      = s_BugRegex.Matches(message.MessageText).Cast <Match>();
            var ids          = matches.Select(x => x.Groups[0].ToString()).Distinct();
            var bugs         = ids.Select(id => m_JiraApi.FromId(id).Result).Where(x => x != null);
            var messageTexts = bugs.Select(FormatBug);

            return(new MessageResult(messageTexts.Select(x => Response.ToMessage(message, x, s_JiraLogo)).ToList()));
        }
Beispiel #2
0
        public Task <JiraBug> FromId(string id)
        {
            var cached = m_Cache.Get(id);

            if (cached == null)
            {
                m_Cache.Set(id, m_Underlying.FromId(id));
            }
            return(m_Cache.Get(id));
        }
        public MessageResult ProcessMessage(Message message)
        {
            string toSuggest;

            if (m_CommandParser.TryGetCommand(message, "suggest labels for", out toSuggest))
            {
                var bug = m_JiraApi.FromId(toSuggest).Result;
                if (bug == null)
                {
                    return(Response.ToMessage(message, "Couldn't find bug " + toSuggest));
                }
                return(Response.ToMessage(message, String.Join(" ", SuggestionsFor(bug).Distinct())));
            }
            return(MessageResult.Empty);
        }