diff --git a/README.md b/README.md index 7a3e92e..ab77741 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,8 @@ It's the enough to run Robot Bum. But if you want to filter some traffic or if y | -ModeSMixerURL | text | | -TwitterAccessToken | text | | -URLServerFolder | text | +| -User | text | +| -Password | text | | | | | -TwitterConsumerKey | text | | -TwitterConsumerSecret | text | diff --git a/RobotBum.sln b/RobotBum.sln index fd210ae..3978019 100644 --- a/RobotBum.sln +++ b/RobotBum.sln @@ -1,13 +1,13 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +# Visual Studio 15 +VisualStudioVersion = 15.0.26730.16 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "RobotBumFoundationCore", "RobotBumFoundationCore\RobotBumFoundationCore.xproj", "{FD7AF56B-6280-4E71-AB1D-5CEA99E015B6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RobotBumFoundationCore", "RobotBumFoundationCore\RobotBumFoundationCore.csproj", "{FD7AF56B-6280-4E71-AB1D-5CEA99E015B6}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "RobotBumLibCore", "RobotBumLibCore\RobotBumLibCore.xproj", "{B3FC9E54-E1E7-4A0C-AD5B-839938F45BAF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RobotBumLibCore", "RobotBumLibCore\RobotBumLibCore.csproj", "{B3FC9E54-E1E7-4A0C-AD5B-839938F45BAF}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "RobotBumConsole", "RobotBumConsole\RobotBumConsole.xproj", "{FD48D59B-4D1E-441C-83BD-DECEA7C268CD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RobotBumConsole", "RobotBumConsole\RobotBumConsole.csproj", "{FD48D59B-4D1E-441C-83BD-DECEA7C268CD}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -38,4 +38,7 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {E2188533-CA15-46E0-B8B1-CF8DE588DA97} + EndGlobalSection EndGlobal diff --git a/RobotBumConsole/Core.cs b/RobotBumConsole/Core.cs index 3cf5ce4..ced63b8 100644 --- a/RobotBumConsole/Core.cs +++ b/RobotBumConsole/Core.cs @@ -36,6 +36,10 @@ public class Core const string LongitudeYCommand = "-LongitudeY"; const string LatitudeYCommand = "-LatitudeY"; + const string UserCommand = "-User"; + const string PasswordCommand = "-Password"; + + const string TwitterConsumerKeyCommand = "-TwitterConsumerKey"; const string TwitterConsumerSecretCommand = "-TwitterConsumerSecret"; const string TwitterAccessTokenCommand = "-TwitterAccessToken"; @@ -92,18 +96,20 @@ public static void Start(bool isConsole, string[] cmds) System.IO.Directory.CreateDirectory(strPath); #if DEBUG - // Quick test line. - //cmds = new List() { "-AirportICAO","SBBR", - // "-ModeSMixerURL","http://bsbradar.ddns.net:8081", - // "-URLServerFolder","server" , - // "-ShowAllCruisesHeavyWeight","1" , - // "-AvoidAllFlightsStartingWith","\"GLO,GOL,TAM\"", - // // "-ShowAllFlightStartingWith","\"EK,DAL\"", - // // "-AvoidAllModelsStartingWith","A32,B73", - // // "-ShowAllModelsStartingWith","\"EK,DAL\"", - // "-ShowHelicopters","1", - // // "-MessageLanguage","en-PIRATE", - // }.ToArray(); + // Quick test line. + //cmds = new List() { "-AirportICAO","SBBR", + // "-ModeSMixerURL","http://bsbradar.ddns.net:8081", + // "-URLServerFolder","server" , + // "-ShowAllCruisesHeavyWeight","1" , + // "-AvoidAllFlightsStartingWith","\"GLO,GOL,TAM\"", + // "-ShowAllFlightStartingWith","\"EK,DAL\"", + // "-AvoidAllModelsStartingWith","A32,B73", + // "-ShowAllModelsStartingWith","\"EK,DAL\"", + // "-ShowHelicopters","1", + // "-User","bsb", + // "-Password","aero", + // "-MessageLanguage","en-PIRATE", + //}.ToArray(); #endif var commandsAnalyse = AnalyseCommands(cmds); @@ -132,7 +138,7 @@ public static void Start(bool isConsole, string[] cmds) var autoEvent = new AutoResetEvent(false); - var timer = new System.Threading.Timer(new TimerCallback(CheckStatus), null, new TimeSpan(0), new TimeSpan(0, 0, 10)); + var timer = new System.Threading.Timer(new TimerCallback(CheckStatus), null, new TimeSpan(0), new TimeSpan(1, 0, 10)); if (isConsole) { @@ -260,6 +266,10 @@ private static Radar GetRadarAndSetCommands(string[] cmds) radar.LongitudeY = GetCommandValueDouble(LongitudeYCommand, cmds); radar.LatitudeY = GetCommandValueDouble(LatitudeYCommand, cmds); + radar.User = GetCommandValue(UserCommand, cmds); + radar.Password = GetCommandValue(PasswordCommand, cmds); + + radar.TwitterConsumerKey = GetCommandValue(TwitterConsumerKeyCommand, cmds); radar.TwitterConsumerSecret = GetCommandValue(TwitterConsumerSecretCommand, cmds); radar.TwitterAccessToken = GetCommandValue(TwitterAccessTokenCommand, cmds); diff --git a/RobotBumConsole/RobotBumConsole.csproj b/RobotBumConsole/RobotBumConsole.csproj new file mode 100644 index 0000000..12064f3 --- /dev/null +++ b/RobotBumConsole/RobotBumConsole.csproj @@ -0,0 +1,30 @@ + + + + 1.0.1 + netcoreapp2.0 + portable + RobotBumConsole + Exe + RobotBumConsole + win10-x64;ubuntu.16.04-x64 + + $(AssetTargetFallback);dnxcore50 + 2.0.0 + false + false + false + 1.1 + + + + + + + + + + + + + diff --git a/RobotBumConsole/RobotBumConsole.csproj.migration_in_place_backup b/RobotBumConsole/RobotBumConsole.csproj.migration_in_place_backup new file mode 100644 index 0000000..f12d33d --- /dev/null +++ b/RobotBumConsole/RobotBumConsole.csproj.migration_in_place_backup @@ -0,0 +1,28 @@ + + + + 1.0.1 + netcoreapp1.1 + portable + RobotBumConsole + Exe + RobotBumConsole + win10-x64;ubuntu.16.04-x64 + $(PackageTargetFallback);dnxcore50 + 1.1.1 + false + false + false + + + + + + + + + + + + + diff --git a/RobotBumConsole/ServerWriter.cs b/RobotBumConsole/ServerWriter.cs index dea4935..99a024f 100644 --- a/RobotBumConsole/ServerWriter.cs +++ b/RobotBumConsole/ServerWriter.cs @@ -93,10 +93,25 @@ private static void WriteFile(string currentPath, string fileName, string conten currentPath += fileName; - if (File.Exists(currentPath)) - File.Delete(currentPath); + if (!File.Exists(currentPath)) + { + using (var stream = File.Create(currentPath)) + { + + } + } + + + + + using (var stream = File.Open(currentPath, FileMode.Open)) + { + var streamWriter = new StreamWriter(stream, Encoding.UTF8, 602048); + + streamWriter.Write(content); + } - File.AppendAllText(currentPath, content, Encoding.UTF8); + //File.AppendAllText(currentPath, content, Encoding.UTF8); } diff --git a/RobotBumFoundationCore/AirportWeather.cs b/RobotBumFoundationCore/AirportWeather.cs index 597a45d..7671de0 100644 --- a/RobotBumFoundationCore/AirportWeather.cs +++ b/RobotBumFoundationCore/AirportWeather.cs @@ -5,7 +5,7 @@ using System.Threading.Tasks; using System.Xml.Linq; -namespace RobotBumFoundationCore +namespace RobotBumConsole { /// /// Type of Weather, if it's a rain, fog and so on. @@ -311,7 +311,7 @@ private static AirportWeather GetWeatherMetar(string ICAO, string xmlMetarResult } if (listWeatherLines.ContainsKey("Temperature")) { - airportWeather.Temperature = Convert.ToDouble(listWeatherLines["Temperature"]); + airportWeather.Temperature = Convert.ToDouble(listWeatherLines["Temperature"], System.Globalization.CultureInfo.InvariantCulture); } if (listWeatherLines.ContainsKey("FlightCategory")) @@ -352,7 +352,8 @@ private static AirportWeather GetWeatherMetar(string ICAO, string xmlMetarResult return airportWeather; - } catch (Exception e) + } + catch (Exception e) { throw e; } @@ -365,7 +366,7 @@ private static List GetWeatherTAF(string ICAO, string xmlTafResu if (String.IsNullOrEmpty(ICAO)) throw new ArgumentException("You must to provide a valid ICAO code. For more information about what is ICAO code, see https://en.wikipedia.org/wiki/International_Civil_Aviation_Organization_airport_code."); - + var airportWeatherStandart = new AirportWeather(); airportWeatherStandart.ICAO = ICAO; diff --git a/RobotBumFoundationCore/RobotBumFoundationCore.csproj b/RobotBumFoundationCore/RobotBumFoundationCore.csproj new file mode 100644 index 0000000..5d90e9a --- /dev/null +++ b/RobotBumFoundationCore/RobotBumFoundationCore.csproj @@ -0,0 +1,21 @@ + + + + netcoreapp2.0 + portable + RobotBumFoundationCore + RobotBumFoundationCore + 1.6.1 + $(AssetTargetFallback);dnxcore50 + 2.0.0 + false + false + false + + + + + + + + diff --git a/RobotBumFoundationCore/RobotBumFoundationCore.csproj.migration_in_place_backup b/RobotBumFoundationCore/RobotBumFoundationCore.csproj.migration_in_place_backup new file mode 100644 index 0000000..e307ed2 --- /dev/null +++ b/RobotBumFoundationCore/RobotBumFoundationCore.csproj.migration_in_place_backup @@ -0,0 +1,21 @@ + + + + netcoreapp1.1 + portable + RobotBumFoundationCore + RobotBumFoundationCore + 1.6.1 + $(PackageTargetFallback);dnxcore50 + 1.1.1 + false + false + false + + + + + + + + diff --git a/RobotBumLibCore/AirplanesData.cs b/RobotBumLibCore/AirplanesData.cs index af0f3a3..011a817 100644 --- a/RobotBumLibCore/AirplanesData.cs +++ b/RobotBumLibCore/AirplanesData.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Newtonsoft.Json; using Newtonsoft.Json.Linq; +using System.Net; namespace RobotBumLibCore { @@ -33,15 +34,30 @@ static async private Task> DesarializeAirplanes(Radar radar) string responseBodyAsText = String.Empty; List listAirplanes = null; - HttpClient httpClient = new HttpClient(); + + var credentials = new NetworkCredential(radar.User, radar.Password); + var handler = new HttpClientHandler { Credentials = credentials }; + + HttpClient httpClient = new HttpClient(handler); HttpResponseMessage response = null; + try { if (!String.IsNullOrEmpty(radar.EndpointUrl)) { - response = httpClient.PostAsync(radar.EndpointUrl, new StringContent("{\"req\":\"getStats\",\"data\":{\"statsType\":\"flights\",\"id\":38209319}}", Encoding.UTF8, "application/x-www-form-urlencoded")).Result; + try + { + response = httpClient.PostAsync(radar.EndpointUrl, new StringContent("{\"req\":\"getStats\",\"data\":{\"statsType\":\"flights\",\"id\":38209319}}", Encoding.UTF8, "application/x-www-form-urlencoded")).Result; + } catch(Exception e) + { + Console.WriteLine("Radar " + radar.Name + " is out."); + ErrorManager.ThrowError(e, "Radar " + radar.Name + " is out.", false); + } + responseBodyAsText = response.Content.ReadAsStringAsync().Result; + + PluginsManager.LastConnectionDate = DateTime.Now; } else if (radar.RadarParent != null) { diff --git a/RobotBumLibCore/Alert.cs b/RobotBumLibCore/Alert.cs index 497cc89..adbb8d0 100644 --- a/RobotBumLibCore/Alert.cs +++ b/RobotBumLibCore/Alert.cs @@ -48,7 +48,7 @@ public enum IconType public class Alert { - public static List ListOfAlerts { get; set; } + public static List ListOfAlerts; public static List ListOfRecentAlerts { get; set; } @@ -61,6 +61,13 @@ public class Alert public string AirplaneID { get; set; } public IconType Icon { get; set; } + public string AirplaneHexa { get; set; } + public string AirplaneReg { get; set; } + public string AirplaneFlight { get; set; } + public string AirplaneFrom { get; set; } + public string AirplaneTo { get; set; } + + private PluginAlertType alertType { get; set; } public PluginAlertType AlertType { @@ -124,8 +131,20 @@ public string Message public AirplaneBasic Airplane { get; set; } [IgnoreDataMemberAttribute] public string PluginName { get; set; } - + [IgnoreDataMemberAttribute] public Radar Radar { get; set; } + + public string RadarName + { + get + { + return Radar.Name; + } + set + { + this.Radar = Radar.GetRadar(value); + } + } RatificationType RatificationType = RatificationType.NoRatification; static Alert() @@ -137,6 +156,8 @@ static Alert() var lastAlertsRaw = LoadFile(strJSONPath, "lastAlerts.json"); Alert.ListOfAlerts = JsonConvert.DeserializeObject>(lastAlertsRaw); + //var teste = JsonConvert.DeserializeObject>(lastAlertsRaw); + if (Alert.ListOfAlerts == null) Alert.ListOfAlerts = new List(); @@ -182,6 +203,23 @@ static Alert() public Alert() { + if (AirplaneHexa == null) + AirplaneHexa = String.Empty; + if (AirplaneReg == null) + AirplaneReg = String.Empty; + if (AirplaneFlight == null) + AirplaneFlight = String.Empty; + if (AirplaneFrom == null) + AirplaneFrom = String.Empty; + if (AirplaneTo == null) + AirplaneTo = String.Empty; + + + // public string AirplaneHexa { get; set; } + //public string AirplaneReg { get; set; } + //public string AirplaneFlight { get; set; } + //public string AirplaneFrom { get; set; } + //public string AirplaneTo { get; set; } } public Alert(Radar radar, string Pluginname, string nameOrMessage, IconType iconType, MessageType messageType = MessageType.General) @@ -220,6 +258,12 @@ public Alert(Radar radar, string Pluginname, AirplaneBasic airplane, IconType ic AirplaneID = airplane.ID; + this.AirplaneHexa = airplane.ID; + this.AirplaneFlight = airplane.FlightName; + this.AirplaneReg = airplane.Registration.Name; + this.AirplaneFrom = airplane.From.ICAO; + this.AirplaneTo = airplane.To.ICAO; + SetMessage(messageType); } @@ -237,7 +281,22 @@ private static string LoadFile(string currentPath, string fileName) else currentPath += fileName; - return File.ReadAllText(currentPath); + if (File.Exists(currentPath)) + { + + + using (var stream = File.Open(currentPath, FileMode.Open)) + { + var streamWriter = new StreamReader(stream); + + return streamWriter.ReadToEnd(); + } + + //return File.ReadAllText(currentPath); + + } + + return String.Empty; } diff --git a/RobotBumLibCore/MessageMaker.cs b/RobotBumLibCore/MessageMaker.cs index 9bb8918..323b0a6 100644 --- a/RobotBumLibCore/MessageMaker.cs +++ b/RobotBumLibCore/MessageMaker.cs @@ -185,6 +185,12 @@ private void MakeCurrentMessage(AirplaneBasic airplane, Radar radar, Ratificatio article = this.indefinitiveArticle; airplaneTypeLongPhrase = String.Empty; } + else if (!String.IsNullOrEmpty(this.Airplane.FlightName)) + { + airplaneRegistrationOrModel = String.Format("{1} {2} (?)", airplane.AircraftType.Name, this.article, this.Airplane.FlightName); + if (ratificationType == RatificationType.NoRatification) + article = this.indefinitiveArticle; + } else { airplaneRegistrationOrModel = String.Format("{0} (Hex: {1})", notIdentifiedMessage, this.Airplane.ID); @@ -229,26 +235,29 @@ private void MakeCurrentMessage(AirplaneBasic airplane, Radar radar, Ratificatio #region Setting what is the route of the airplane if (airplane.From.City != airplane.To.City) { - string fromPlace = !String.IsNullOrEmpty(airplane.From.City) ? String.Format(" {0} {1}", RandomListPhrases(listOfFromMessages), airplane.From.City) : String.Empty; - string toPlace = !String.IsNullOrEmpty(airplane.To.City) ? String.Format(" {0} {1}", RandomListPhrases(listOfToMessages), airplane.From.City) : String.Empty; + fromPlace = !String.IsNullOrEmpty(airplane.From.City) ? String.Format(" {0} {1}", RandomListPhrases(listOfFromMessages), airplane.From.City) : String.Empty; + toPlace = !String.IsNullOrEmpty(airplane.To.City) ? String.Format(" {0} {1}", RandomListPhrases(listOfToMessages), airplane.To.City) : String.Empty; } #endregion - + if (this.Airplane != null) { if (airplane.State == AirplaneStatus.TakingOff) { Message = GetTakingOffPhrase(); + } else if (airplane.State == AirplaneStatus.Landing) { Message = GetLandingPhrase(); + } else if (airplane.State == AirplaneStatus.Cruise) { - Message = GetCruisePhrase(); + Message = GetCruisePhrase() + fromPlace + toPlace; + } else if (airplane.State == AirplaneStatus.ParkingOrTaxing) { diff --git a/RobotBumLibCore/Plugins/PluginFilterAlerts.cs b/RobotBumLibCore/Plugins/PluginFilterAlerts.cs index 6414c69..f98e78b 100644 --- a/RobotBumLibCore/Plugins/PluginFilterAlerts.cs +++ b/RobotBumLibCore/Plugins/PluginFilterAlerts.cs @@ -34,10 +34,16 @@ public List Analyser(object parameter) foreach (var radar in airplane.Radars) { + + // If the airplane does not have enough data... - if(airplane.State == AirplaneStatus.DataImcomplete) + if (airplane.State == AirplaneStatus.DataImcomplete) continue; + + // Just record everything now. + MakeAlert(listAlerts, radar, airplane, PluginAlertType.Low, true); + // If is to show everyting... if (radar.ShowEverything) { @@ -45,6 +51,8 @@ public List Analyser(object parameter) continue; } + + // If the airplane is "special" on specialpaintings.json if (!String.IsNullOrEmpty(airplane.SpecialDescription)){ @@ -86,14 +94,6 @@ public List Analyser(object parameter) continue; } - // If the airplane's flight name is not wanted... - if(radar.AvoidAllFlightsStartingWith.Any(a => airplane.FlightName.StartsWith(a, StringComparison.OrdinalIgnoreCase)) || - radar.AvoidAllModelsStartingWith.Any(a => airplane.AircraftType.ICAO.StartsWith(a, StringComparison.OrdinalIgnoreCase)) - ) - { - continue; - } - // If ShowAllCruisesOnlyOnServer is true... if(airplane.State == AirplaneStatus.Cruise && radar.ShowAllCruisesHeavyWeight && airplane.Weight == AirplaneWeight.Heavy) { @@ -104,8 +104,25 @@ public List Analyser(object parameter) continue; } + + // If the airplane's flight name is not wanted... + if (radar.AvoidAllFlightsStartingWith.Any(a => airplane.FlightName.StartsWith(a, StringComparison.OrdinalIgnoreCase)) || + radar.AvoidAllModelsStartingWith.Any(a => airplane.AircraftType.ICAO.StartsWith(a, StringComparison.OrdinalIgnoreCase)) + ) + { + continue; + } + + if (!radar.IgnoreUnknow && !airplane.Registration.IsValid) + { + MakeAlert(listAlerts, radar, airplane, PluginAlertType.Low); + continue; + } + // If this line is reached, the airplane is unknow. So we can make an alert for it! - MakeAlert(listAlerts,radar,airplane); + MakeAlert(listAlerts, radar, airplane, PluginAlertType.Low); + + } @@ -122,11 +139,42 @@ public List Analyser(object parameter) - private void MakeAlert(List listAlerts, Radar radar, AirplaneBasic airplane, PluginAlertType alertType = PluginAlertType.High) + private void MakeAlert(List listAlerts, Radar radar, AirplaneBasic airplane, PluginAlertType alertType = PluginAlertType.High, bool subAlert = false) { Alert pluginAlert = new Alert(radar, Name, airplane, IconType.NoIcon); pluginAlert.AlertType = alertType; pluginAlert.TimeToBeRemoved = DateTime.Now.AddHours(23); + + switch (airplane.State) + { + case AirplaneStatus.Cruise: + + pluginAlert.Icon = IconType.Cruise; + + break; + + case AirplaneStatus.Landing: + + pluginAlert.Icon = IconType.Landing; + + break; + + case AirplaneStatus.TakingOff: + + pluginAlert.Icon = IconType.TakingOff; + + break; + + case AirplaneStatus.ParkingOrTaxing: + + pluginAlert.Icon = IconType.Taxing; + + break; + } + + if (subAlert) + pluginAlert.ID += "_sub"; + listAlerts.Add(pluginAlert); } diff --git a/RobotBumLibCore/Plugins/PluginRatification.cs b/RobotBumLibCore/Plugins/PluginRatification.cs index c26e468..07d3652 100644 --- a/RobotBumLibCore/Plugins/PluginRatification.cs +++ b/RobotBumLibCore/Plugins/PluginRatification.cs @@ -20,7 +20,7 @@ public class PluginRatification : IPlugin public PluginRatification(bool analyseRunwayLowAircraft, bool analyseRunwayHeavyAircraft, bool analyseChartLowAircraft, bool analyseChartHeavyAircraft, bool analyseOrbit) { Name = "Ratification"; - IsActive = true; + IsActive = false; IsTesting = false; AnalyseRunwayLowAircraft = analyseRunwayLowAircraft; diff --git a/RobotBumLibCore/PluginsManager.cs b/RobotBumLibCore/PluginsManager.cs index 07d93fa..d778d9f 100644 --- a/RobotBumLibCore/PluginsManager.cs +++ b/RobotBumLibCore/PluginsManager.cs @@ -16,6 +16,8 @@ public static class PluginsManager public static TimeSpan Period { get; set; } public static List listOldAlerts { get; set; } + public static DateTime LastConnectionDate { get; set; } + private static List listRadars { get { return Radar.ListRadars; } } @@ -38,12 +40,12 @@ public static List GetAlerts(bool updateAll) for (int i = 0; i < listRadars.Count; i++) { var radar = listRadars[i]; - Console.Write("andra radar"); + List listAirplanes = null; if (radar != null) { - Console.Write("lista airplane" + listAirplanes.Count); + listAirplanes = AirplanesData.GetAirplanes(radar).Result; var newAlerts = Run(radar, listAirplanes); diff --git a/RobotBumLibCore/Radar.cs b/RobotBumLibCore/Radar.cs index 2fec0d6..69700bc 100644 --- a/RobotBumLibCore/Radar.cs +++ b/RobotBumLibCore/Radar.cs @@ -26,15 +26,15 @@ public class Radar public List Plugins { get; set; } [IgnoreDataMemberAttribute] public List LastAirplanes { get; set; } - + [IgnoreDataMemberAttribute] public List ListRunways { get; set; } - + [IgnoreDataMemberAttribute] public double LongitudeX { get; set; } - + [IgnoreDataMemberAttribute] public double LatitudeX { get; set; } - + [IgnoreDataMemberAttribute] public double LongitudeY { get; set; } - + [IgnoreDataMemberAttribute] public double LatitudeY { get; set; } [IgnoreDataMemberAttribute] @@ -92,8 +92,11 @@ public static void AddRadar(Radar radar) { [IgnoreDataMemberAttribute] public bool ShowAllApproximationLowWeightAirplanes { get; set; } + [IgnoreDataMemberAttribute] + public bool IgnoreUnknow { get; set; } + - [IgnoreDataMemberAttribute] + [IgnoreDataMemberAttribute] public bool AvoidAllApproximationHeavyWeightAirplanes { get; set; } [IgnoreDataMemberAttribute] @@ -125,6 +128,10 @@ public static void AddRadar(Radar radar) { [IgnoreDataMemberAttribute] public string TwitterAccessTokenSecret { get; set; } + [IgnoreDataMemberAttribute] + public string User { get; set; } + [IgnoreDataMemberAttribute] + public string Password { get; set; } public Radar() { diff --git a/RobotBumLibCore/RobotBumLibCore.csproj b/RobotBumLibCore/RobotBumLibCore.csproj new file mode 100644 index 0000000..b8760fa --- /dev/null +++ b/RobotBumLibCore/RobotBumLibCore.csproj @@ -0,0 +1,27 @@ + + + + netcoreapp2.0 + portable + RobotBumLibCore + RobotBumLibCore + 1.6.1 + $(AssetTargetFallback);dnxcore50 + 2.0.0 + false + false + false + + + + + + + + + + + + + + diff --git a/RobotBumLibCore/RobotBumLibCore.csproj.migration_in_place_backup b/RobotBumLibCore/RobotBumLibCore.csproj.migration_in_place_backup new file mode 100644 index 0000000..d5cc35e --- /dev/null +++ b/RobotBumLibCore/RobotBumLibCore.csproj.migration_in_place_backup @@ -0,0 +1,27 @@ + + + + netcoreapp1.1 + portable + RobotBumLibCore + RobotBumLibCore + 1.6.1 + $(PackageTargetFallback);dnxcore50 + 1.1.1 + false + false + false + + + + + + + + + + + + + + diff --git a/RobotBumLibCore/RunwayBasic.cs b/RobotBumLibCore/RunwayBasic.cs index db73eb6..872225d 100644 --- a/RobotBumLibCore/RunwayBasic.cs +++ b/RobotBumLibCore/RunwayBasic.cs @@ -8,7 +8,6 @@ namespace RobotBumLibCore { - [Serializable] public class RunwayBasic : Runway {