コード例 #1
0
        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));
        }
コード例 #2
0
        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
        }
コード例 #3
0
        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()));
        }
コード例 #4
0
        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()));
        }
コード例 #5
0
        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();
        }
コード例 #6
0
        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));
        }
コード例 #7
0
        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));
        }