public async Task <AcarsMessage[]> GetPendingMessages(string callsign) { List <AcarsMessage> messages = new List <AcarsMessage>(); try { string response = await sendMessageToHoppie( logonSecret, callsign, "SERVER", MessageType.Poll, "" ).ConfigureAwait(false); MatchCollection matches = messageRegex.Matches(response); foreach (Match match in matches) { MessageType messageType = messageTypeStrings.FirstOrDefault(x => x.Value == match.Groups[2].Value).Key; string data = match.Groups[3].Value; if (messageType == MessageType.CPDLC && match.Groups.Count > 3) { data += match.Groups[4].Value; } if (messageType == MessageType.Telex && match.Groups.Count > 3) { data = match.Groups[4].Value; } if (messageType == MessageType.CPDLC) { CpdlcAcarsMessage acarsMessage = new CpdlcAcarsMessage(DateTime.Now, match.Groups[1].Value, callsign, data); messages.Add(acarsMessage); } else { AcarsMessage acarsMessage = new AcarsMessage(DateTime.Now, match.Groups[1].Value, callsign, messageType, data); messages.Add(acarsMessage); } } MessageHistory.AddRange(messages); return(messages.ToArray()); } catch (Exception e) { throw e; } }
public async Task <string> SendCPDLC( CpdlcAcarsMessage message) { return(await SendCPDLC(message.From, message.To, message.RawDataMessage).ConfigureAwait(false)); }