IBE.SQL.EliteDBIO.SendLogToEDSM C# (CSharp) Method

SendLogToEDSM() private method

private SendLogToEDSM ( List timeStamps ) : void
timeStamps List
return void
        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);
            }
        }