public override Task <Sessions_Reply> GetOngoingSessions(Empty request, ServerCallContext context) { Sessions_Reply sessions_Reply = new Sessions_Reply(); sessions_Reply.Error = "unknown error"; MySqlConnection connection = null; try { connection = CreateDBConnection(); var cmd = connection.CreateCommand(); cmd.CommandText = $"SELECT sessionId, personId, projectId, start, end, lastHeartbeat FROM trackerdb.session WHERE `end` = null\nORDER BY `sessionId` DESC LIMIT 100;"; var reader = cmd.ExecuteReader(); FillSession(sessions_Reply, reader); } catch (Exception ex) { sessions_Reply.Error = ex.Message; } finally { if (connection != null) { if (connection.State != ConnectionState.Closed) { connection.Close(); } connection.Dispose(); } } return(Task.FromResult(sessions_Reply)); }
private static void FillSession(Sessions_Reply sessions_Reply, MySqlDataReader reader) { while (reader.Read()) { var session = new Session() { Id = Convert.ToInt32(reader["sessionId"]), PersonId = int.Parse(reader["personId"].ToString()), ProjectId = Convert.ToInt32(reader["projectId"]), Start = reader["start"].ToString() }; if (reader["end"] != DBNull.Value) { session.End = reader["end"].ToString(); } if (reader["lastHeartbeat"] != DBNull.Value) { session.LastHeartbeat = reader["lastHeartbeat"].ToString(); } sessions_Reply.Sessions.Add(session); } sessions_Reply.Error = ""; }
public void GetOngoingSessions_Success() { //Arrange var connection = CreateConnection(); //Act Sessions_Reply sessions = connection.GetOngoingSessions(new Empty()); //Assert Assert.IsNotNull(sessions.Sessions); }