public string ParseQuotes(UrbanResponse response) { return(response.Definitions.Aggregate(new StringBuilder(), (sb, cur) => { string row = $"**[{cur.Word}]** *{cur.Description}*{Environment.NewLine}"; if (sb.Length + row.Length <= 2000) { sb.Append(row); } return sb; }).ToString()); }
/// <summary> /// The skype on message status. /// </summary> /// <param name="chatMessage"> /// The chat message. /// </param> /// <param name="status"> /// The status. /// </param> private void SkypeOnMessageStatus(ChatMessage chatMessage, TChatMessageStatus status) { if (status == TChatMessageStatus.cmsSent || status == TChatMessageStatus.cmsReceived) { Match match = UrbanRegex.Match(chatMessage.Body); if (match.Success) { bool urlRequested = match.Groups[1].Value.Equals("nu", StringComparison.InvariantCultureIgnoreCase); string term = match.Groups[2].Value; UrbanResponse urbanResponse = this.UrbanService.Search(new UrbanRequest(term)); if (urbanResponse != null) { if (urbanResponse.Definition.HasValue()) { string definition = "Definition: " + urbanResponse.Definition.Replace('\r', ' ').Replace('\n', ' '); chatMessage.Chat.SendMessage(definition); } if (urbanResponse.Example.HasValue()) { string example = "Example: " + urbanResponse.Example.Replace('\r', ' ').Replace('\n', ' '); chatMessage.Chat.SendMessage(example); } if (urlRequested && urbanResponse.Url.HasValue()) { string url = "Url: " + urbanResponse.Url; chatMessage.Chat.SendMessage(url); } } else { chatMessage.Chat.SendMessage(string.Format("Nothing for term '{0}' was found.", term)); } } } }