Пример #1
0
        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++;
                }
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        /// <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);
            }
        }
Пример #4
0
        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));
        }
Пример #5
0
        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);
        }