public virtual void AddData(SequenceResultData sequenceResult) { Dictionary <string, string> columnToValue = DataModelMapper.GetColumnValueMapping(sequenceResult); string cmd = SqlCommandFactory.CreateInsertCmd(DataBaseItemNames.SequenceTableName, columnToValue); ExecuteWriteCommand(cmd); }
public virtual void AddData(TestInstanceData testInstance) { Dictionary <string, string> columnToValue = DataModelMapper.GetColumnValueMapping(testInstance); string cmd = SqlCommandFactory.CreateInsertCmd(DataBaseItemNames.InstanceTableName, columnToValue); ExecuteWriteCommand(cmd); }
public virtual void AddData(RuntimeStatusData runtimeStatus) { Dictionary <string, string> columnToValue = DataModelMapper.GetColumnValueMapping(runtimeStatus); string cmd = SqlCommandFactory.CreateInsertCmd(DataBaseItemNames.StatusTableName, columnToValue); ExecuteWriteCommand(cmd); }
public virtual void GetPerformanceResult(string runtimeHash, int session, IPerformanceResult performance) { string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}' AND {DataBaseItemNames.SessionIdColumn}={session}"; // 最高CPU时间 string cmd = SqlCommandFactory.CreateQueryMaxCmd(DataBaseItemNames.PerformanceTableName, DataBaseItemNames.ProcessorTimeColumn, filter); using (DbDataReader reader = ExecuteReadCommand(cmd)) { if (reader.Read() && !reader.IsDBNull(0)) { performance.CpuTime = (ulong)reader.GetDouble(0); } } // 最高分配内存 cmd = SqlCommandFactory.CreateQueryMaxCmd(DataBaseItemNames.PerformanceTableName, DataBaseItemNames.MemoryAllocatedColumn, filter); using (DbDataReader reader = ExecuteReadCommand(cmd)) { if (reader.Read() && !reader.IsDBNull(0)) { performance.MaxAllocatedMemory = reader.GetInt64(0); } } // 最高使用内存 cmd = SqlCommandFactory.CreateQueryMaxCmd(DataBaseItemNames.PerformanceTableName, DataBaseItemNames.MemoryUsedColumn, filter); using (DbDataReader reader = ExecuteReadCommand(cmd)) { if (reader.Read() && !reader.IsDBNull(0)) { performance.MaxUsedMemory = reader.GetInt64(0); } } // 平均分配内存 cmd = SqlCommandFactory.CreateQueryAverageCmd(DataBaseItemNames.PerformanceTableName, DataBaseItemNames.MemoryAllocatedColumn, filter); using (DbDataReader reader = ExecuteReadCommand(cmd)) { if (reader.Read() && !reader.IsDBNull(0)) { performance.AverageAllocatedMemory = (long)reader.GetDouble(0); } } // 平均使用内存 cmd = SqlCommandFactory.CreateQueryAverageCmd(DataBaseItemNames.PerformanceTableName, DataBaseItemNames.MemoryUsedColumn, filter); using (DbDataReader reader = ExecuteReadCommand(cmd)) { if (reader.Read() && !reader.IsDBNull(0)) { performance.AverageUsedMemory = (long)reader.GetDouble(0); } } }
public virtual void UpdateData(SessionResultData sessionResult) { SessionResultData lastSessionResult = InternalGetSessionResult(sessionResult.RuntimeHash, sessionResult.Session); Dictionary <string, string> lastSessionValues = DataModelMapper.GetColumnValueMapping(lastSessionResult); Dictionary <string, string> columnToValue = DataModelMapper.GetColumnValueMapping(sessionResult); string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{sessionResult.RuntimeHash}' AND {DataBaseItemNames.SessionIdColumn}={sessionResult.Session}"; string cmd = SqlCommandFactory.CreateUpdateCmd(DataBaseItemNames.SessionTableName, lastSessionValues, columnToValue, filter); ExecuteWriteCommand(cmd); }
public virtual long GetTestInstanceCount(string filterString) { string cmd = SqlCommandFactory.CreateCalcCountCmd(filterString, DataBaseItemNames.InstanceTableName); using (DbDataReader dataReader = ExecuteReadCommand(cmd)) { long count = 0; if (dataReader.Read() && !dataReader.IsDBNull(0)) { count = dataReader.GetInt64(0); } return(count); } }
public virtual IList <TestInstanceData> GetTestInstances(string filterString) { string cmd = SqlCommandFactory.CreateQueryCmd(filterString, DataBaseItemNames.InstanceTableName); using (DbDataReader dataReader = ExecuteReadCommand(cmd)) { List <TestInstanceData> testInstanceDatas = new List <TestInstanceData>(50); while (dataReader.Read()) { TestInstanceData instanceData = new TestInstanceData(); DataModelMapper.ReadToObject(dataReader, instanceData); testInstanceDatas.Add(instanceData); } return(testInstanceDatas); } }
public long GetRuntimeStatusCount(string runtimeHash, int session, int sequenceIndex) { string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}' AND {DataBaseItemNames.SessionIdColumn}={session} AND {DataBaseItemNames.SequenceIndexColumn}={sequenceIndex}"; string cmd = SqlCommandFactory.CreateCalcCountCmd(filter, DataBaseItemNames.StatusTableName); using (DbDataReader dataReader = ExecuteReadCommand(cmd)) { long count = 0; if (dataReader.Read() && !dataReader.IsDBNull(0)) { count = dataReader.GetInt64(0); } return(count); } }
public bool ExistFailedStep(string runtimeHash, int session, int sequence) { const string failedResultFilter = "StepResult IN ('Error', 'Timeout', 'Failed', 'Abort')"; string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}' AND {DataBaseItemNames.SessionIdColumn}={session} AND {DataBaseItemNames.SequenceIndexColumn} = {sequence} AND {failedResultFilter}"; string cmd = SqlCommandFactory.CreateCalcCountCmd(filter, DataBaseItemNames.StatusTableName); using (DbDataReader dataReader = ExecuteReadCommand(cmd)) { int count = 0; if (dataReader.Read() && !dataReader.IsDBNull(0)) { count = dataReader.GetInt32(0); } return(count > 0); } }
public virtual PerformanceStatus GetPerformanceStatusByIndex(string runtimeHash, long index) { string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}' AND {DataBaseItemNames.StatusIndexColumn}={index}"; string cmd = SqlCommandFactory.CreateQueryCmd(filter, DataBaseItemNames.PerformanceTableName); PerformanceStatus performanceStatus = null; using (DbDataReader dataReader = ExecuteReadCommand(cmd)) { if (dataReader.Read()) { performanceStatus = new PerformanceStatus(); DataModelMapper.ReadToObject(dataReader, performanceStatus); } } return(performanceStatus); }
public virtual RuntimeStatusData GetRuntimeStatusByIndex(string runtimeHash, long index) { string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}' AND {DataBaseItemNames.StatusIndexColumn}={index}"; string cmd = SqlCommandFactory.CreateQueryCmd(filter, DataBaseItemNames.StatusTableName); RuntimeStatusData statusData = null; using (DbDataReader dataReader = ExecuteReadCommand(cmd)) { while (dataReader.Read()) { statusData = new RuntimeStatusData(); DataModelMapper.ReadToObject(dataReader, statusData); } } return(statusData); }
protected SessionResultData InternalGetSessionResult(string runtimeHash, int sessionId) { string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}' AND {DataBaseItemNames.SessionIdColumn}={sessionId}"; string cmd = SqlCommandFactory.CreateQueryCmd(filter, DataBaseItemNames.SessionTableName); using (DbDataReader dataReader = ExecuteReadCommand(cmd)) { SessionResultData sessionResultData = null; if (dataReader.Read()) { sessionResultData = new SessionResultData(); DataModelMapper.ReadToObject(dataReader, sessionResultData); } return(sessionResultData); } }
public virtual IList <SequenceResultData> GetSequenceResults(string runtimeHash, int sessionId) { string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}' AND {DataBaseItemNames.SessionIdColumn}={sessionId}"; string cmd = SqlCommandFactory.CreateQueryCmd(filter, DataBaseItemNames.SequenceTableName); using (DbDataReader dataReader = ExecuteReadCommand(cmd)) { List <SequenceResultData> resultDatas = new List <SequenceResultData>(10); while (dataReader.Read()) { SequenceResultData sequenceResultData = new SequenceResultData(); DataModelMapper.ReadToObject(dataReader, sequenceResultData); resultDatas.Add(sequenceResultData); } return(resultDatas); } }
public virtual void UpdateData(TestInstanceData testInstance) { // 获取原数据,转换为键值对类型 TestInstanceData lastInstanceData = InternalGetTestInstanceData(testInstance.RuntimeHash); Dictionary <string, string> lastInstanceValues = DataModelMapper.GetColumnValueMapping(lastInstanceData); Dictionary <string, string> columnToValue = DataModelMapper.GetColumnValueMapping(testInstance); // 比较并创建更新命令 string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{testInstance.RuntimeHash}'"; string cmd = SqlCommandFactory.CreateUpdateCmd(DataBaseItemNames.InstanceTableName, lastInstanceValues, columnToValue, filter); if (string.IsNullOrWhiteSpace(cmd)) { return; } ExecuteWriteCommand(cmd); }
public IList <RuntimeStatusData> GetRuntimeStatus(string runtimeHash, int session, int sequenceIndex) { string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}' AND {DataBaseItemNames.SessionIdColumn}={session} AND {DataBaseItemNames.SequenceIndexColumn}={sequenceIndex}"; string cmd = SqlCommandFactory.CreateQueryCmdWithOrder(filter, DataBaseItemNames.StatusTableName, DataBaseItemNames.StatusIndexColumn); List <RuntimeStatusData> statusDatas = new List <RuntimeStatusData>(500); using (DbDataReader dataReader = ExecuteReadCommand(cmd)) { while (dataReader.Read()) { RuntimeStatusData runtimeStatusData = new RuntimeStatusData(); DataModelMapper.ReadToObject(dataReader, runtimeStatusData); statusDatas.Add(runtimeStatusData); } } return(statusDatas); }
public virtual IList <PerformanceStatus> GetPerformanceStatus(string runtimeHash, int session) { string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}' AND {DataBaseItemNames.SessionIdColumn}={session}"; string cmd = SqlCommandFactory.CreateQueryCmdWithOrder(filter, DataBaseItemNames.PerformanceTableName, DataBaseItemNames.StatusIndexColumn); List <PerformanceStatus> performanceStatuses = new List <PerformanceStatus>(500); using (DbDataReader dataReader = ExecuteReadCommand(cmd)) { while (dataReader.Read()) { PerformanceStatus performanceStatus = new PerformanceStatus(); DataModelMapper.ReadToObject(dataReader, performanceStatus); performanceStatuses.Add(performanceStatus); } } return(performanceStatuses); }
protected TestInstanceData InternalGetTestInstanceData(string runtimeHash) { string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}'"; string cmd = SqlCommandFactory.CreateQueryCmd(filter, DataBaseItemNames.InstanceTableName); using (DbDataReader dataReader = ExecuteReadCommand(cmd)) { TestInstanceData instanceData; if (dataReader.Read()) { instanceData = new TestInstanceData(); DataModelMapper.ReadToObject(dataReader, instanceData); } else { instanceData = null; } return(instanceData); } }
public IList <RuntimeStatusData> GetRuntimeStatusInRange(string runtimeHash, int session, long startIndex, long count) { string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}' AND {DataBaseItemNames.SessionIdColumn}={session} AND {DataBaseItemNames.StatusIndexColumn} >= {startIndex}"; string cmd = SqlCommandFactory.CreateQueryCmdWithOrder(filter, DataBaseItemNames.StatusTableName, DataBaseItemNames.StatusIndexColumn); if (count > 0) { cmd += $" LIMIT {count}"; } List <RuntimeStatusData> statusDatas = new List <RuntimeStatusData>(500); using (DbDataReader dataReader = ExecuteReadCommand(cmd)) { while (dataReader.Read()) { RuntimeStatusData runtimeStatusData = new RuntimeStatusData(); DataModelMapper.ReadToObject(dataReader, runtimeStatusData); statusDatas.Add(runtimeStatusData); } } statusDatas.TrimExcess(); return(statusDatas); }
public virtual void DeleteTestInstance(string fileterString) { DbTransaction transaction = null; try { // 删除TestInstance需要执行事务流程 transaction = Connection.BeginTransaction(IsolationLevel.Serializable); string deleteCmd = SqlCommandFactory.CreateDeleteCmd(DataBaseItemNames.StatusTableName, fileterString); ExecuteWriteCommand(deleteCmd, transaction); deleteCmd = SqlCommandFactory.CreateDeleteCmd(DataBaseItemNames.PerformanceTableName, fileterString); ExecuteWriteCommand(deleteCmd, transaction); deleteCmd = SqlCommandFactory.CreateDeleteCmd(DataBaseItemNames.SequenceTableName, fileterString); ExecuteWriteCommand(deleteCmd, transaction); deleteCmd = SqlCommandFactory.CreateDeleteCmd(DataBaseItemNames.SessionTableName, fileterString); ExecuteWriteCommand(deleteCmd, transaction); deleteCmd = SqlCommandFactory.CreateDeleteCmd(DataBaseItemNames.InstanceTableName, fileterString); ExecuteWriteCommand(deleteCmd, transaction); transaction.Commit(); } catch (Exception) { transaction?.Rollback(); throw; } finally { transaction?.Dispose(); } }