public void GetQueryMessageList(DateTime dtStart, DateTime dtEnd, string keyword, List <Contact> contractLit, List <OCMessage> messageList) { List <Contact> allContracts = GetContractList(); if (allContracts == null) { return; } foreach (Contact contract in allContracts) { var list = GetOCMessage(contract, dtStart, dtEnd); if (list != null && list.Count > 0) { if (!string.IsNullOrEmpty(keyword)) { foreach (var message in list) { string plainText = HtmlUtil.ConvertFromHtml(message.MessageText); if (plainText.ToUpper().IndexOf(keyword.ToUpper()) != -1) { messageList.Add(message); if (!contractLit.Contains(contract)) { contractLit.Add(contract); } } } } else { messageList.AddRange(list); contractLit.Add(contract); } } } }