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); }