public override Task <Session_Reply> ConvertLastHeartbeatToEnd(SessionId_Request request, ServerCallContext context) { Session_Reply session_Reply = new Session_Reply(); Session session = new Session(); MySqlConnection connection = CreateDBConnection(); MySqlCommand cmd; string lhb; Set_lhb_ToLastHeartbeat(request, connection, out cmd, out lhb); cmd.CommandText = $"UPDATE trackerdb.session SET `end` = '{lhb}' WHERE `sessionId` = {request.Id};"; cmd.ExecuteNonQuery(); cmd.CommandText = $"SELECT `sessionId`, `personId`, `projectId`, `start`, `end`, `lastHeartbeat` FROM trackerdb.session WHERE `sessionId` = {request.Id};"; var reader = cmd.ExecuteReader(); reader.Read(); session.Id = Convert.ToInt32(reader["sessionId"]); session.PersonId = Convert.ToInt32(reader["personId"]); session.ProjectId = Convert.ToInt32(reader["projectId"]); session.Start = Convert.ToString(reader["start"]); if (reader["lastHeartbeat"] != null) { session.LastHeartbeat = Convert.ToString(reader["lastHeartbeat"]); } if (reader["end"] != null) { session.End = Convert.ToString(reader["end"]); } session_Reply.Session = session; cmd.Dispose(); connection.Close(); connection.Dispose(); return(Task.FromResult(session_Reply)); }
public override Task <SessionPauses_Reply> GetSessionPausesBySession(SessionId_Request request, ServerCallContext context) { SessionPauses_Reply sessionPauses_Reply = new SessionPauses_Reply(); //make Projects_Reply equal to a new Projects_Reply sessionPauses_Reply.Error = "unknown error"; //set error to unknown error MySqlConnection connection = null; try { connection = CreateDBConnection(); var cmd = connection.CreateCommand(); //create command called cmd cmd.CommandText = $"SELECT * FROM trackerdb.session_pause WHERE `sessionId` = {request.Id}"; //fill cmd text var reader = cmd.ExecuteReader(); //execute cmd FillSessionPauses(sessionPauses_Reply, reader); //calls func FillProjects } catch (Exception ex) //catch exception { sessionPauses_Reply.Error = ex.Message; //if error } finally //after everything above is done { if (connection != null) //if connection is not null { if (connection.State != ConnectionState.Closed) //if connection is not closed { connection.Close(); //close connection } connection.Dispose(); //dipose of connection } } return(Task.FromResult(sessionPauses_Reply)); //return projects }
public override Task <Empty> BeatHeart(SessionId_Request request, ServerCallContext context) { MySqlConnection connection = CreateDBConnection(); var cmd = connection.CreateCommand(); cmd.CommandText = $"UPDATE trackerdb.session SET `lastHeartbeat` = NOW() WHERE `sessionId` = {request.Id};"; cmd.ExecuteNonQuery(); cmd.Dispose(); connection.Close(); connection.Dispose(); return(Task.FromResult(new Empty())); }
public override Task <Empty> ResumeSession(SessionId_Request request, ServerCallContext context) { Session_Reply session_Reply = new Session_Reply(); SessionPauseId_Reply sessionPauseId = new SessionPauseId_Reply(); MySqlConnection connection = CreateDBConnection(); var cmd = connection.CreateCommand(); cmd.CommandText = $"UPDATE trackerdb.session_pause SET `resume` = NOW() WHERE `sessionId` = { request.Id};"; cmd.ExecuteNonQuery(); cmd.Dispose(); connection.Close(); connection.Dispose(); return(Task.FromResult(new Empty())); }
private static void Set_ps_Pause(SessionId_Request request, MySqlConnection connection, out MySqlCommand cmd, out string ps) { cmd = connection.CreateCommand(); cmd.CommandText = $"SELECT * FROM trackerdb.session WHERE `sessionId` = {request.Id};"; var reader1 = cmd.ExecuteReader(); reader1.Read(); //("yyyy’-‘MM’-‘dd’ ’HH’:’mm’:’ss") ps = Convert.ToString(reader1["end"]); ps = Regex.Replace(ps, @" AM| PM", ""); ps = Regex.Replace(ps, @"\/", "-"); DateTime lastHeartbeat = Convert.ToDateTime(ps); ps = lastHeartbeat.ToString("yyyy-MM-dd HH:mm:ss"); cmd.Dispose(); cmd = connection.CreateCommand(); }
public override Task <SessionPauseId_Reply> PauseSession(SessionId_Request request, ServerCallContext context) { Session_Reply session_Reply = new Session_Reply(); SessionPauseId_Reply sessionPauseId = new SessionPauseId_Reply(); MySqlConnection connection = CreateDBConnection(); var cmd = connection.CreateCommand(); cmd.CommandText = $"INSERT INTO trackerdb.session_pause (sessionId, pause) VALUES({request.Id},NOW());"; cmd.ExecuteNonQuery(); cmd.CommandText = "SELECT LAST_INSERT_ID();"; var reader = cmd.ExecuteReader(); reader.Read(); sessionPauseId.Id = Convert.ToInt32(reader["LAST_INSERT_ID()"]); cmd.Dispose(); connection.Close(); connection.Dispose(); return(Task.FromResult(sessionPauseId)); }
public override Task <SessionPauseId_Reply> ConvertStopToPause(SessionId_Request request, ServerCallContext context) { SessionPauseId_Reply sessionPauseId_Reply = new SessionPauseId_Reply(); MySqlConnection connection = CreateDBConnection(); MySqlCommand cmd; string ps; Set_ps_Pause(request, connection, out cmd, out ps); cmd.CommandText = $"INSERT INTO trackerdb.session_pause (`sessionId`, `pause`) VALUES ({request.Id},'{ps}');"; cmd.ExecuteNonQuery(); cmd.CommandText = $"UPDATE trackerdb.session SET `end` = NULL WHERE `sessionId` = {request.Id};"; cmd.ExecuteNonQuery(); cmd.CommandText = $"SELECT * FROM trackerdb.session_pause WHERE `sessionId` = {request.Id} ORDER BY `session_pauseId` DESC LIMIT 1;"; var reader = cmd.ExecuteReader(); reader.Read(); sessionPauseId_Reply.Id = Convert.ToInt32(reader["session_pauseId"]); cmd.Dispose(); connection.Close(); connection.Dispose(); return(Task.FromResult(sessionPauseId_Reply)); }