Exemplo n.º 1
0
        /// <summary>
        /// calculates the maximum similarity of the provided source against
        /// all sources for the given asignment in the reference database
        /// </summary>
        /// <param name="student"></param>
        /// <param name="assignment"></param>
        /// <param name="source"></param>
        public void Start(string student, string assignment, string source)
        {
            cLogger.DebugFormat("starting with threshold {0}", Threshold);
            TokenFactory factory = new MutexTokenFactory();

            var tokens = factory.GetTokenWrapperListFromSource(source);
            //LexerHelper.CreateLexerFromSource(source).GetTokenWrappers().ToList();
            cLogger.Debug("tokenized source... loading Data Repository");
            var repo = Repository.GetRepository();

            comparisonModel = new ComparisonModel(tokens, repo.LoadByAssignment(assignment), factory);

            comparisonModel.Calculate();

            var sourceEntityData = new SourceEntityData(student, assignment, tokens.ToStringEnumerable(), source);

            repo.Store(sourceEntityData, MaximumSimilarity < Threshold);
        }
Exemplo n.º 2
0
        /// <summary>
        /// stores the data
        /// </summary>
        /// <param name="data"></param>
        /// <param name="keepForTests"></param>
        public void Store(SourceEntityData data, bool keepForTests)
        {
            var command = new SQLiteCommand(keepForTests ? referenceConnection : archiveConnection)
            {
                CommandText = SQL_INSERT_SET,
                CommandType = CommandType.Text,
                Parameters  =
                {
                    new SQLiteParameter("@student",    data.StudentIdentifier),
                    new SQLiteParameter("@assignment", data.AssignmentIdentifier),
                    new SQLiteParameter("@sourcecode", data.RawSource),
                    new SQLiteParameter("@tokens",     SerializeTokens(data.Tokens))
                }
            };

            cLogger.DebugFormat("storing '{0}' by '{1}'", data.AssignmentIdentifier, data.StudentIdentifier);
            cLogger.DebugFormat("tokens stored: {0}", SerializeTokens(data.Tokens));
            command.ExecuteNonQuery();
        }
Exemplo n.º 3
0
        /// <summary>
        /// stores the data
        /// </summary>
        /// <param name="data"></param>
        /// <param name="keepForTests"></param>
        public void Store(SourceEntityData data, bool keepForTests)
        {
            var command = new SQLiteCommand(keepForTests ? referenceConnection : archiveConnection)
            {
                CommandText = SQL_INSERT_SET,
                CommandType = CommandType.Text,
                Parameters =
                    {
                        new SQLiteParameter("@student", data.StudentIdentifier),
                        new SQLiteParameter("@assignment", data.AssignmentIdentifier),
                        new SQLiteParameter("@sourcecode", data.RawSource),
                        new SQLiteParameter("@tokens", SerializeTokens(data.Tokens))
                    }
            };

            cLogger.DebugFormat("storing '{0}' by '{1}'", data.AssignmentIdentifier, data.StudentIdentifier);
            cLogger.DebugFormat("tokens stored: {0}", SerializeTokens(data.Tokens));
            command.ExecuteNonQuery();
        }