private void FindDefectInMessages(ALMDefect defect, List <SLMessage> messages, out bool defectWasPostedBefore, out DateTime?messageDate, out string status) { defectWasPostedBefore = false; messageDate = null; status = null; foreach (var message in messages) { if (message.text.StartsWith(cDefectStartLine)) { string[] messageParts = message.text.Split('\n'); if (messageParts.Length >= 2) { string[] firstLineElements = messageParts[0].Split(new string[] { cDefectFieldsSeparator }, StringSplitOptions.RemoveEmptyEntries); if (firstLineElements.Length >= 2) { string defectId = firstLineElements[0].Remove(0, cDefectStartLine.Length); messageDate = DateTimeHelper.DateTimeFromSLMessage(message); status = firstLineElements[1].Remove(0, "Status: ".Length); if (defect.id.Equals(defectId)) { defectWasPostedBefore = true; break; } } } } } }
private async Task <SLChatPostMessageResult> PostDefect(string groupId, ALMDefect defect) { StringBuilder sb = new StringBuilder(""); sb.Append(cDefectStartLine); sb.Append(""); sb.Append(defect.id.Replace("&", "'")); sb.Append(cDefectFieldsSeparator); sb.Append("Status: "); sb.Append(defect.status.Replace("&", "'")); sb.Append(cDefectFieldsSeparator); sb.Append("Severity: "); sb.Append(defect.priority.Replace("&", "'")); sb.Append(cDefectFieldsSeparator); sb.Append("Devlead: "); sb.Append(defect.owner_dev.Replace("&", "'")); sb.Append(cDefectFieldsSeparator); sb.Append("Qalead: "); sb.Append(defect.user_40_qalead.Replace("&", "'")); sb.Append("\n"); sb.Append(defect.name.Replace("&", "'")); sb.Append("\n"); sb.Append("```"); return(await slWebApiClient.ChatPostMessageAsync(groupId, sb.ToString(), true)); }