Пример #1
0
        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);
        }
Пример #2
0
        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));
        }