public void WriteResult(string User, ResultTest result, List <ShareResultTest> shareResult) { using (IDbConnection connection = new SqlConnection(connectionString)) { connection.Open(); var command = connection.CreateCommand(); command.CommandText = "IF(EXISTS (SELECT * FROM Result WHERE [User] = @User AND TestID = @TestID)) " + "UPDATE Result SET CountTrueAnswers = @CountTrueAnswers, [Time] = @Time WHERE[User] = @User AND TestID = @TestID " + "ELSE INSERT INTO Result ([User], TestID, CountTrueAnswers, [Time]) VALUES(@User, @TestID, @CountTrueAnswers, @Time)"; AddParam <string>(command, "@User", User, DbType.String); AddParam <int>(command, "@TestID", result.TestID, DbType.Int32); AddParam <Int16>(command, "@CountTrueAnswers", (Int16)result.CountTrueAnswers, DbType.Int16); AddParam <int>(command, "@Time", result.Time, DbType.Int32); int i = command.ExecuteNonQuery(); int k = 0; foreach (ShareResultTest x in shareResult) { command.CommandText = "IF(EXISTS (SELECT * FROM ShareResult WHERE [User] = @User" + k + " AND QuestionID = @QuestionID" + k + ")) " + "UPDATE ShareResult SET TrueAnswer = @TrueAnswer" + k + " WHERE[User] = @User" + k + " AND QuestionID = @QuestionID" + k + " " + "ELSE INSERT INTO ShareResult ([User], QuestionID, TrueAnswer) VALUES(@User" + k + ", @QuestionID" + k + ", @TrueAnswer" + k + ")"; AddParam <string>(command, "@User" + k, User, DbType.String); AddParam <int>(command, "@QuestionID" + k, x.QuestionID, DbType.Int32); AddParam <bool>(command, "@TrueAnswer" + k, x.TrueAnswer, DbType.Boolean); i = command.ExecuteNonQuery(); k++; } } }
public static ResultTest Analyze(string url) { if (!url.IsUrlValid()) { throw new Exception($"Incorrect URL {url}"); } var controller = new Controller(); var plugin = controller.Firefox.New(); plugin.Log.EnableFilter(false); plugin.ClearCache(); plugin.Record(); plugin.GotoURL(url); controller.Wait(plugin, -1); plugin.Stop(); var elapsedTime = plugin.Log.Pages[0].Entries.Summary.Time; var bytesReceived = plugin.Log.Pages[0].Entries.Summary.BytesReceived; var result = new ResultTest { ElapsedTime = elapsedTime, BytesReceived = bytesReceived }; foreach (Entry entry in plugin.Log.Pages[0].Entries) { result.Entries.Add(new EntryFile { Url = entry.URL, BytesReceived = entry.BytesReceived, Code = entry.StatusCode, Method = entry.Method, StartedTime = entry.StartedSecs, Time = entry.Time, ChartLeft = entry.StartedSecs / elapsedTime * 200, ChartWidth = entry.Time / elapsedTime * 200 }); } return(result); }
/// <summary> /// получить информацию о пройденных тестах /// </summary> /// <param name="User">пользователь, проходивший тесты</param> /// <returns></returns> public List <ResultTest> GetResultTests(string User) { using (IDbConnection connection = new SqlConnection(connectionString)) { connection.Open(); var command = connection.CreateCommand(); command.CommandText = "SELECT r.TestID, CountTrueAnswers, r.[Time], t.Name FROM Result r INNER JOIN Tests t " + "ON r.TestID = t.TestID WHERE [User] = @User"; AddParam <string>(command, "@User", User, DbType.String); var reader = command.ExecuteReader(); List <ResultTest> list = new List <ResultTest>(); while (reader.Read()) { ResultTest res = new ResultTest(reader.GetInt32(0), reader.GetString(3), reader.GetInt16(1), reader.GetInt32(2)); list.Add(res); } return(list); } }
public ActionResult EndTest() { int Count = 0; foreach (ShareResultTest x in shareTestResult) { Count += x.TrueAnswer ? 1 : 0; } int time = (int)(DateTime.Now - StartTime).TotalSeconds; ResultTest resultTest = new ResultTest(test.TestID, Count, time); TestDAL dal = new TestDAL(connectionString); dal.WriteResult(User.Identity.Name, resultTest, shareTestResult); test = null; shareTestResult = null; i = -1; StartTime = DateTime.MinValue; return(View(resultTest)); }
public CFDisplay prepared() { CFDisplay cfSrc = null; Simulation sim = Simulation.getInstance(); sim.resetSimulation(); switch (CurrentMode) { case Mode.Simulink: { cfSrc = new CFDisplay(); sim.OutPuts = cfSrc; sim.srcType = Result.SourceType.Source2; Simulation simcp = Simulation.getAnotherSimulation(); simcp.OutPuts = cfSrc; simcp.srcType = Result.SourceType.Source1; break; } case Mode.AutoTest: { SequenceGenerator squence = new SequenceGenerator(); squence.generate(); squence.compressTestBranch(); ResultTest test = new ResultTest(squence); test.testBranchPercent(); break; } case Mode.ManualTest: { break; } } return(cfSrc); }