public static PDUClientQuery Parse(string[] fields) { if (fields.Length < 3) { throw new PDUFormatException("Invalid field count.", Reassemble(fields)); } try { ClientQueryType queryType = ClientQueryType.Unknown; List <string> payload = new List <string>(); if (fields.Length > 3) { for (int i = 3; i < fields.Length; i++) { payload.Add(fields[i]); } } return(new PDUClientQuery( fields[0], fields[1], queryType.FromString(fields[2]), payload )); } catch (Exception ex) { throw new PDUFormatException("Parse error.", Reassemble(fields), ex); } }
public PDUClientQuery(string from, string to, ClientQueryType queryType, List <string> payload) : base(from, to) { QueryType = queryType; Payload = payload; }
public static string GetQueryTypeID(this ClientQueryType cq) { switch (cq) { case ClientQueryType.IsValidATC: return("ATC"); case ClientQueryType.Capabilities: return("CAPS"); case ClientQueryType.COM1Freq: return("C?"); case ClientQueryType.RealName: return("RN"); case ClientQueryType.Server: return("SV"); case ClientQueryType.ATIS: return("ATIS"); case ClientQueryType.PublicIP: return("IP"); case ClientQueryType.INF: return("INF"); case ClientQueryType.FlightPlan: return("FP"); case ClientQueryType.IPC: return("IPC"); case ClientQueryType.RequestRelief: return("BY"); case ClientQueryType.CancelRequestRelief: return("HI"); case ClientQueryType.RequestHelp: return("HLP"); case ClientQueryType.CancelRequestHelp: return("NOHLP"); case ClientQueryType.WhoHas: return("WH"); case ClientQueryType.InitiateTrack: return("IT"); case ClientQueryType.AcceptHandoff: return("HT"); case ClientQueryType.DropTrack: return("DR"); case ClientQueryType.SetFinalAltitude: return("FA"); case ClientQueryType.SetTempAltitude: return("TA"); case ClientQueryType.SetBeaconCode: return("BC"); case ClientQueryType.SetScratchpad: return("SC"); case ClientQueryType.SetVoiceType: return("VT"); case ClientQueryType.AircraftConfiguration: return("ACC"); case ClientQueryType.NewInfo: return("NEWINFO"); case ClientQueryType.NewATIS: return("NEWATIS"); default: return(""); } }
public PDUClientQuery(string from, string to, ClientQueryType queryType) : this(from, to, queryType, null) { }
public static ClientQueryType FromString(this ClientQueryType cq, string typeID) { switch (typeID.ToUpper()) { case "ATC": return(ClientQueryType.IsValidATC); case "CAPS": return(ClientQueryType.Capabilities); case "C?": return(ClientQueryType.COM1Freq); case "RN": return(ClientQueryType.RealName); case "SV": return(ClientQueryType.Server); case "ATIS": return(ClientQueryType.ATIS); case "IP": return(ClientQueryType.PublicIP); case "INF": return(ClientQueryType.INF); case "FP": return(ClientQueryType.FlightPlan); case "IPC": return(ClientQueryType.IPC); case "BY": return(ClientQueryType.RequestRelief); case "HI": return(ClientQueryType.CancelRequestRelief); case "HLP": return(ClientQueryType.RequestHelp); case "NOHLP": return(ClientQueryType.CancelRequestHelp); case "WH": return(ClientQueryType.WhoHas); case "IT": return(ClientQueryType.InitiateTrack); case "HT": return(ClientQueryType.AcceptHandoff); case "DR": return(ClientQueryType.DropTrack); case "FA": return(ClientQueryType.SetFinalAltitude); case "TA": return(ClientQueryType.SetTempAltitude); case "BC": return(ClientQueryType.SetBeaconCode); case "SC": return(ClientQueryType.SetScratchpad); case "VT": return(ClientQueryType.SetVoiceType); case "ACC": return(ClientQueryType.AircraftConfiguration); case "NEWINFO": return(ClientQueryType.NewInfo); case "NEWATIS": return(ClientQueryType.NewATIS); default: return(ClientQueryType.Unknown); } }