Exemple #1
0
        private string DeliverQRV(string paramstr)
        {
            string json = "";
            // set default values
            string callstr = "";
            string locstr  = "";
            string bandstr = "";
            BAND   band    = Properties.Settings.Default.Band;

            // get parameters
            try
            {
                if (paramstr.Contains("?"))
                {
                    // OK, we have parameters --> cut them out and make all uppercase
                    paramstr = paramstr.Substring(paramstr.IndexOf("?") + 1).ToUpper();
                    var pars = System.Web.HttpUtility.ParseQueryString(paramstr);
                    callstr = pars.Get("CALL");
                    locstr  = pars.Get("LOC");
                    bandstr = pars.Get("BAND");
                }
            }
            catch (Exception ex)
            {
                // return error
                return("Error while parsing parameters!");
            }
            // check parameters
            if (!Callsign.Check(callstr))
            {
                return("Error: " + callstr + " is not a valid callsign!");
            }
            if (!MaidenheadLocator.Check(locstr))
            {
                return("Error: " + locstr + " is not a valid Maidenhead locator!");
            }
            // set band to currently selected if empty
            if (string.IsNullOrEmpty(bandstr))
            {
                band = Properties.Settings.Default.Band;
            }
            else
            {
                band = Bands.ParseStringValue(bandstr);
            }
            if (band == BAND.BNONE)
            {
                return("Error: " + bandstr + " is not a valid band value!");
            }
            // search call in station database, return empty string if not found
            if (band != BAND.BALL)
            {
                QRVDesignator qrv = StationData.Database.QRVFind(callstr, locstr, band);
                if (qrv == null)
                {
                    return("Error: QRV info not found in database!");
                }
                json = qrv.ToJSON();
                return(json);
            }
            List <QRVDesignator> qrvs = StationData.Database.QRVFind(callstr, locstr);

            if ((qrvs == null) || (qrvs.Count() == 0))
            {
                return("Error: QRV info not found in database!");
            }
            JsonSerializerSettings settings = new JsonSerializerSettings();

            settings.DateTimeZoneHandling = DateTimeZoneHandling.Utc;
            settings.FloatFormatHandling  = FloatFormatHandling.String;
            settings.Formatting           = Newtonsoft.Json.Formatting.Indented;
            json = JsonConvert.SerializeObject(qrvs, settings);
            return(json);
        }