/// <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); } }
public SingleAircraftSaveResultsJson Save([FromBody] BaseStationAircraft aircraft) { var result = new SingleAircraftSaveResultsJson(); var plugin = Plugin.Singleton; try { result.Aircraft = aircraft; if (CustomConvert.Icao24(aircraft?.ModeS) > 0) { aircraft.Registration = aircraft?.Registration?.ToUpper().Trim(); aircraft.ICAOTypeCode = aircraft?.ICAOTypeCode?.ToUpper().Trim(); aircraft.OperatorFlagCode = aircraft?.OperatorFlagCode?.ToUpper().Trim(); aircraft.LastModified = DateTime.Now; if (aircraft.UserString1 == "Missing") { aircraft.UserString1 = null; } if (aircraft.AircraftID == 0) { aircraft.FirstCreated = aircraft.LastModified; plugin.BaseStationDatabase.InsertAircraft(aircraft); } else { plugin.BaseStationDatabase.UpdateAircraft(aircraft); } plugin.IncrementUpdateCount(); plugin.UpdateStatusTotals(); } } catch (Exception ex) { var aircraftID = aircraft == null ? "<no aircraft>" : aircraft.AircraftID.ToString(); var icao = aircraft == null ? "<no aircraft>" : aircraft.ModeS; result.Exception = plugin.LogException(ex, "Exception caught during DatabaseEditor SingleAircraftSave ({0}/{1}): {2}", aircraftID, icao, ex.ToString()); } return(result); }