public void SendLogToEDSM(List<DateTime> timeStamps)
{
String sqlString = "";
DataTable data = new DataTable();
StringBuilder logData = new StringBuilder();
String lastSystemname = "";
try
{
if(timeStamps.Count > 0)
{
sqlString = String.Format("select L.time, Sy.Systemname" +
" from tbLog L, tbSystems Sy" +
" where L.system_id = Sy.id" +
" and L.time >= {0}" +
" and L.time <= {1}" +
" and event_id = {2}" +
" order by l.time asc;",
DBConnector.SQLDateTime(timeStamps.Min()),
DBConnector.SQLDateTime(timeStamps.Max()),
BaseTableNameToID("eventtype", "Jumped To"));
Program.DBCon.Execute(sqlString, data);
foreach (DataRow dRow in data.Rows)
{
Program.EDSMComm.TransmitVisit((String)dRow["Systemname"], null, null, null, (DateTime)dRow["time"]);
}
//sqlString = String.Format("select L.time, Sy.Systemname, Sy.id, L.notes" +
// " from tbLog L, tbSystems Sy" +
// " where L.system_id = Sy.id" +
// " and L.time >= {0}" +
// " and L.time <= {1}" +
// " and L.notes Is Not null" +
// " and Length(Trim(L.notes)) > 0" +
// " order by Sy.id asc, l.time asc;",
// DBConnector.SQLDateTime(timeStamps.Min()),
// DBConnector.SQLDateTime(timeStamps.Max()));
//Program.DBCon.Execute(sqlString, data);
//for (int i = 0; i <= data.Rows.Count; i++)
//{
// if(i < data.Rows.Count)
// {
// DataRow dRow = data.Rows[i];
// if ((((String)dRow["Systemname"]) != lastSystemname) && (!String.IsNullOrEmpty(lastSystemname)))
// {
// // send comment
// Program.EDSMComm.TransmitCommentExtension(lastSystemname, logData.ToString());
// logData.Clear();
// }
// // extend comment
// logData.AppendLine(String.Format("{0:G}:", dRow["time"]));
// logData.AppendLine((String)dRow["notes"]);
// lastSystemname = (String)dRow["Systemname"];
// }
// else if(!String.IsNullOrEmpty(lastSystemname))
// {
// // send comment
// Program.EDSMComm.TransmitCommentExtension(lastSystemname, logData.ToString());
// logData.Clear();
// }
//}
sqlString = String.Format("select L.time, Sy.Systemname, St.Stationname, Sy.id, L.notes" +
" from tbSystems Sy, tbLog L left join tbStations St on L.station_id = St.id" +
" where L.system_id = Sy.id" +
" and L.time >= {0}" +
" and L.time <= {1}" +
" and L.notes Is Not null" +
" and Length(Trim(L.notes)) > 0" +
" order by l.time asc;",
DBConnector.SQLDateTime(timeStamps.Min()),
DBConnector.SQLDateTime(timeStamps.Max()));
Program.DBCon.Execute(sqlString, data);
for (int i = 0; i < data.Rows.Count; i++)
{
DataRow dRow = data.Rows[i];
String stationName = dRow["Stationname"].ToString();
if(!String.IsNullOrWhiteSpace(stationName))
logData.AppendLine(String.Format("{0:G} - {1} :", dRow["time"], stationName));
else
logData.AppendLine(String.Format("{0:G} :", dRow["time"]));
logData.AppendLine((String)dRow["notes"]);
// send comment
Program.EDSMComm.TransmitCommentExtension((String)dRow["Systemname"], stationName,
System.Text.RegularExpressions.Regex.Replace(logData.ToString(), "(?<!\r)\n", "\r\n"),
(DateTime)dRow["time"]);
logData.Clear();
}
}
}
catch (Exception ex)
{
throw new Exception("Error while collecting data for transmission to EDSM", ex);
}
}