public static AdifRow CheckDupToAdif(CheckDupRequest checkDupRequest) { AdifRow adif = new AdifRow() { CALL = checkDupRequest.Call, MODE = checkDupRequest.Mode, QSO_DATE = DateTime.UtcNow.ToString("yyyyMMdd"), TIME_ON = DateTime.UtcNow.ToString("HHmm") }; if (!string.IsNullOrEmpty(checkDupRequest.Freq) && checkDupRequest?.Freq != "0") { double freq; if (double.TryParse(checkDupRequest.Freq, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out freq)) { freq = freq / 1000; adif.FREQ = freq.ToString("F6", CultureInfo.InvariantCulture); adif.BAND = AdifHelper.FreqToBand(freq); } } if (!string.IsNullOrEmpty(checkDupRequest.State) && checkDupRequest?.State != "0") { adif.STATE = checkDupRequest.State; } return(adif); }
public static string ConvertToAdifRow(string record) { AdifRow AdifRow = new AdifRow(); record = record.Replace("<eor>", ""); string[] x = Regex.Split(record.Replace("\n", "").Replace("\r", ""), @"<([^:]+):\d+[^>]*>").ToArray(); List <string> l = new List <string>(x); l.RemoveAt(0); x = l.ToArray(); var dic = new Dictionary <string, string>(); if (x.Length % 2 == 0) { for (int i = 0; i < x.Length; i++) { if (!string.IsNullOrEmpty(x[i + 1])) { dic.Add(x[i].ToUpper(), x[i + 1]); } i++; } if (dic.ContainsKey("BAND") && dic.ContainsKey("FREQ")) { dic["BAND"] = AdifHelper.FreqToBand(double.Parse(dic["FREQ"], CultureInfo.InvariantCulture)); } else if (dic.ContainsKey("FREQ")) { dic.Add("BAND", AdifHelper.FreqToBand(double.Parse(dic["FREQ"], CultureInfo.InvariantCulture))); } } return(JsonConvert.SerializeObject(dic)); }