/// <summary> /// Handles requests to save a single aircraft's data. /// </summary> /// <param name="args"></param> private void SingleAircraftSave(RequestReceivedEventArgs args) { if (args.Request.HttpMethod == "POST") { var json = new SingleAircraftSaveResultsJson(); try { var aircraftJson = args.Request.ReadBodyAsString(Encoding.UTF8); json.Aircraft = JsonConvert.DeserializeObject <BaseStationAircraft>(aircraftJson); if (json.Aircraft.ModeS != null && json.Aircraft.ModeS.Length == 6) { if (json.Aircraft.Registration != null) { json.Aircraft.Registration = json.Aircraft.Registration.ToUpper(); } if (json.Aircraft.ICAOTypeCode != null) { json.Aircraft.ICAOTypeCode = json.Aircraft.ICAOTypeCode.ToUpper(); } if (json.Aircraft.OperatorFlagCode != null) { json.Aircraft.OperatorFlagCode = json.Aircraft.OperatorFlagCode.ToUpper(); } json.Aircraft.LastModified = DateTime.Now; if (json.Aircraft.AircraftID == 0) { _BaseStationDatabase.InsertAircraft(json.Aircraft); } else { _BaseStationDatabase.UpdateAircraft(json.Aircraft); } ++_UpdateCount; UpdateStatusTotals(); } } catch (Exception ex) { var aircraftID = json.Aircraft == null ? "<no aircraft>" : json.Aircraft.AircraftID.ToString(); var icao = json.Aircraft == null ? "<no aircraft>" : json.Aircraft.ModeS; json.Exception = LogException(ex, "Exception caught during DatabaseEditor SingleAircraftSave ({0}/{1}): {2}", aircraftID, icao, ex.ToString()); } SendJsonResponse(args, json); } }