diff --git a/AIS/bsmd.pasttrack.service/Properties/AssemblyInfo.cs b/AIS/bsmd.pasttrack.service/Properties/AssemblyInfo.cs index 7f566ccf..addcb7f8 100644 --- a/AIS/bsmd.pasttrack.service/Properties/AssemblyInfo.cs +++ b/AIS/bsmd.pasttrack.service/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyVersion("1.1.0.0")] +[assembly: AssemblyFileVersion("1.1.0.0")] diff --git a/AIS/bsmd.pasttrack.service/Service.svc.cs b/AIS/bsmd.pasttrack.service/Service.svc.cs index 108cf4b4..d7e35746 100644 --- a/AIS/bsmd.pasttrack.service/Service.svc.cs +++ b/AIS/bsmd.pasttrack.service/Service.svc.cs @@ -10,45 +10,96 @@ namespace bsmd.pasttrack.service { private readonly static ILog _log = LogManager.GetLogger(typeof(Service)); - public Pasttrack[] GetPasttrack(string mmsi, string mins) + public Pasttrack[] GetPasttrack(string lookup, string mins) { List aList = new List(); - if (Int32.TryParse(mmsi, out int mmsi_val) && Int32.TryParse(mins, out int mins_val)) + if (!string.IsNullOrEmpty(lookup)) { - try + + if (lookup.Length == 9) { - SqlConnection con = new SqlConnection(Properties.Settings.Default.ConnectionString); - con.Open(); - string cmdText = string.Format("select Latitude, Longitude, Heading, Timestamp from aisposreport where mmsi=@MMSI And timestamp > DATEADD(MINUTE, @MIN, GETDATE()) order by timestamp desc"); - SqlCommand cmd = new SqlCommand(cmdText, con); - cmd.Parameters.AddWithValue("@MMSI", mmsi_val); - cmd.Parameters.AddWithValue("@MIN", -mins_val); - SqlDataReader reader = cmd.ExecuteReader(); - while (reader.Read()) + if (Int32.TryParse(lookup, out int mmsi_val) && Int32.TryParse(mins, out int mins_val)) { - Pasttrack p = new Pasttrack + try { - Latitude = (double)reader.GetInt32(0) / 600000.0, - Longitude = (double)reader.GetInt32(1) / 600000.0, - Heading = reader.GetInt32(2), - Timestamp = reader.GetDateTime(3) - }; - aList.Add(p); + SqlConnection con = new SqlConnection(Properties.Settings.Default.ConnectionString); + con.Open(); + string cmdText = string.Format("select Latitude, Longitude, Heading, Timestamp from aisposreport where mmsi=@MMSI And timestamp > DATEADD(MINUTE, @MIN, GETDATE()) order by timestamp desc"); + SqlCommand cmd = new SqlCommand(cmdText, con); + cmd.Parameters.AddWithValue("@MMSI", mmsi_val); + cmd.Parameters.AddWithValue("@MIN", -mins_val); + SqlDataReader reader = cmd.ExecuteReader(); + while (reader.Read()) + { + Pasttrack p = new Pasttrack + { + Latitude = (double)reader.GetInt32(0) / 600000.0, + Longitude = (double)reader.GetInt32(1) / 600000.0, + Heading = reader.GetInt32(2), + Timestamp = reader.GetDateTime(3) + }; + aList.Add(p); + } + reader.Close(); + con.Close(); + } + catch (SqlException ex) + { + _log.ErrorFormat("Error on data query: {0}", ex.ToString()); + } + } + else + { + _log.WarnFormat("invalid parameters: mins {0} mmsi {1}", mins, lookup); } - reader.Close(); - con.Close(); - } - catch (SqlException ex) + } + else if(lookup.Length == 7) { - _log.ErrorFormat("Error on data query: {0}", ex.ToString()); + if (Int32.TryParse(lookup, out int imo_val) && Int32.TryParse(mins, out int mins_val)) + { + try + { + SqlConnection con = new SqlConnection(Properties.Settings.Default.ConnectionString); + con.Open(); + string cmdText = string.Format("select Latitude, Longitude, Heading, Timestamp from aisposreport JOIN aisstaticdata ON aisposreport.MMSI = aisstaticdata.mmsi where imoNumber = @IMO AND timestamp > DATEADD(MINUTE, @MIN, GETDATE()) order by timestamp desc"); + SqlCommand cmd = new SqlCommand(cmdText, con); + cmd.Parameters.AddWithValue("@IMO", imo_val); + cmd.Parameters.AddWithValue("@MIN", -mins_val); + SqlDataReader reader = cmd.ExecuteReader(); + while (reader.Read()) + { + Pasttrack p = new Pasttrack + { + Latitude = (double)reader.GetInt32(0) / 600000.0, + Longitude = (double)reader.GetInt32(1) / 600000.0, + Heading = reader.GetInt32(2), + Timestamp = reader.GetDateTime(3) + }; + aList.Add(p); + } + reader.Close(); + con.Close(); + } + catch (SqlException ex) + { + _log.ErrorFormat("Error on data query: {0}", ex.ToString()); + } + } + else + { + _log.WarnFormat("invalid parameters: mins {0} mmsi {1}", mins, lookup); + } + } + else + { + _log.WarnFormat("invalid parameters: mins {0} mmsi {1}", mins, lookup); } - } else - { - _log.WarnFormat("invalid parameters: mins {0} mmsi {1}", mins, mmsi); } + _log.InfoFormat("Result pasttrack array contains {0} elems", aList.Count); return aList.ToArray(); + } } } diff --git a/ENI-2/ENI2/ENI2/ENI2.csproj b/ENI-2/ENI2/ENI2/ENI2.csproj index db2704b3..7c52306c 100644 --- a/ENI-2/ENI2/ENI2/ENI2.csproj +++ b/ENI-2/ENI2/ENI2/ENI2.csproj @@ -66,7 +66,7 @@ ENI2.App - false + true bsmdKey.snk @@ -87,7 +87,7 @@ DBA67DB331E10F18BBF1E67B125EC87AB5389EA4 - false + true ENI2_3_TemporaryKey.pfx diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index 36c38cea..65bbdb27 100644 Binary files a/Stundensheet.xlsx and b/Stundensheet.xlsx differ