/// <summary> /// Updates a VNC start parameter for user. /// </summary> /// <param name="customer">Customer.</param> /// <returns>Number of customer records updated.</returns> public void UpdateStartParameter(VNCStartParameter startParam) { StringBuilder sql = new StringBuilder(); sql.Append(" UPDATE vnc_startparameter "); sql.Append(" SET user_name = " + Db.Escape(startParam.UserName) + ", "); sql.Append(" email = " + Db.Escape(startParam.EMail) + ", "); sql.Append(" host_name = " + Db.Escape(startParam.HostName) + ", "); sql.Append(" port_number = " + startParam.PortNumber + ", "); sql.Append(" process_id = " + startParam.ProcessID + ", "); sql.Append(" session_id = " + startParam.SessionID + ", "); sql.Append(" time_stamp = GetDate()"); sql.Append(" WHERE user_SID = " + Db.Escape(startParam.UserSID)); try { Db.Update(sql.ToString()); } catch (Exception e) { StringBuilder message = new StringBuilder(); message.AppendLine("Updating data base is not successful"); message.AppendLine(e.Message); Logger.Log.Error(message.ToString()); } }
public void InsertStartParameter(VNCStartParameter startParam) { StringBuilder sql = new StringBuilder(); sql.Append(" INSERT INTO vnc_startparameter (user_name, user_SID, email, host_name, port_number, process_id, session_id, time_stamp) "); sql.Append(" VALUES( " + Db.Escape(startParam.UserName) + ", "); sql.Append(" " + Db.Escape(startParam.UserSID) + ", "); sql.Append(" " + Db.Escape(startParam.EMail) + ", "); sql.Append(" " + Db.Escape(startParam.HostName) + ", "); sql.Append(" " + startParam.PortNumber + ", "); sql.Append(" " + startParam.ProcessID + ", "); sql.Append(" " + startParam.SessionID + ", "); sql.Append(" " + "GetDate())"); try { Db.Insert(sql.ToString()); } catch (Exception e) { StringBuilder message = new StringBuilder(); message.AppendLine("Inserting into data base is not successful"); message.AppendLine(e.Message); Logger.Log.Error(message.ToString()); } }
static void Main(string[] args) { StringBuilder message = new StringBuilder(); // check connection string if it is encrypted Db.ProtectConnectionString(); Logger.Log.Info("Start collecting user data"); //collecting user informations UserData userData = new UserData(); try { // starting vnc server WinVNCServer winVNCServer = new WinVNCServer(userData.UserSID); try { //creating container for VNC start parameter VNCStartParameter startParam = new VNCStartParameter(); startParam.EMail = userData.EMail; startParam.UserName = userData.UserName; startParam.UserSID = userData.UserSID; startParam.HostName = winVNCServer.HostName; startParam.PortNumber = winVNCServer.PortNumber; startParam.ProcessID = winVNCServer.ProcId; startParam.SessionID = winVNCServer.SessionId; Logger.Log.Info("Start writing vnc start parameter to data base"); //writing to DB PersistStartParameter persistStartParameter = new PersistStartParameter(startParam); } catch (Exception e) { message.AppendLine("VNC Start parameter could not be saved to data base. "); message.Append(e.Message); Logger.Log.Error(message.ToString()); //cleaning, becouse data could not be saved, vnc server will be killed winVNCServer.Kill(); } } catch (Exception e) { message.AppendLine("VNC Server could not be started. "); message.Append(e.Message); Logger.Log.Error(message.ToString()); } }
public VNCStartParameter GetVNCStartParameterForUserSID(string userSID) { StringBuilder sql = new StringBuilder(); sql.Append(" SELECT * "); sql.Append(" FROM vnc_startparameter"); sql.Append(" WHERE user_SID = " + Db.Escape(userSID)); DataRow row = Db.GetDataRow(sql.ToString()); string userName = row["user_name"].ToString(); string hostName = row["host_name"].ToString(); int portNumber = (int)row["port_number"]; int processID = (int)row["process_id"]; int sessionID = (int)row["session_id"]; VNCStartParameter vncStartParameter = new VNCStartParameter(); vncStartParameter.HostName = hostName; vncStartParameter.PortNumber = portNumber; vncStartParameter.ProcessID = processID; vncStartParameter.SessionID = sessionID; return(vncStartParameter); }
/// <summary> /// Check if VNC server is already running on the machine /// If process with same name found, then it will be killed /// </summary> private void CheckVNCServerRunning() { Logger.Log.Info("Check if VNC is running"); // get start up parameter from db for userSID SQLServerDAO startParamDAO = new SQLServerDAO(); VNCStartParameter vncStartParameterFromDB = startParamDAO.GetVNCStartParameterForUserSID(_userSID); Process localProcess = null; try { localProcess = Process.GetProcessById(vncStartParameterFromDB.ProcessID); } catch (Exception e) { Logger.Log.Info(e.Message); } // if the process with same name, exist on the same host, then kill the process if (null != localProcess && localProcess.ProcessName.Equals(_fileName) && vncStartParameterFromDB.HostName.Equals(_hostName)) { try { Logger.Log.Info("VNC Process exist and will be terminated"); Logger.Log.Info("Killing Process ID: " + localProcess.Id.ToString()); localProcess.Kill(); } catch (Exception e) { Logger.Log.Fatal("Process ID: " + localProcess.Id.ToString() + ", could not be killed"); Logger.Log.Fatal(e.Message); } } }
public PersistStartParameter(VNCStartParameter startParam) { this._startParam = startParam; PersistData(); }