Example #1
0
        protected void ThreadFunction(Int32 test)
        {
            eventLog1.WriteEntry("Thread " + Thread.CurrentThread.Name + " starting.");

            String comment      = "";
            String cleancomment = "";

            String[]      OneGrams;
            List <String> NGrams = new List <String>();
            Int32         Length;
            Int32         NumCaps     = 0;
            Decimal       PercentCaps = 0;
            Int32         NGram       = 3;

            try
            {
                using (var conn = new SqlConnection("Data Source=PHD-SERVER;Initial Catalog=CyberbullyDB;Integrated Security=False;User ID=sa;Password="******"GetComment", conn)
                    {
                        CommandType = CommandType.StoredProcedure
                    })
                    {
                        command.Parameters.Add(new SqlParameter("@CommentID", test));
                        conn.Open();

                        using (SqlDataReader rdr = command.ExecuteReader())
                        {
                            while (rdr.Read())
                            {
                                comment      = rdr["Comment"].ToString();
                                cleancomment = rdr["CleanedComment"].ToString();
                            }
                        }
                    }
            }
            catch (Exception e)
            {
                eventLog1.WriteEntry("Thread " + Thread.CurrentThread.Name + " GetComment Failed with: " + e.ToString());
                UnlockProcess(test);
                ThreadCounter--;
                waiter.Set();
                Thread.CurrentThread.Abort();
            }

            OneGrams = cleancomment.Split('|');

            for (Int32 i = 1; i <= NGram; i++)
            {
                for (Int32 n = 1; n < OneGrams.Length - i - 1; n++)
                {
                    String adder = OneGrams[n];

                    for (Int32 count = i - 1; count >= 1; count--)
                    {
                        adder += "|" + OneGrams[n + i - count];
                    }

                    NGrams.Add(adder);
                }
            }

            try
            {
                using (var conn = new SqlConnection("Data Source=PHD-SERVER;Initial Catalog=CyberbullyDB;Integrated Security=False;User ID=sa;Password="******"ClearNGramPercent", conn)
                    {
                        CommandType = CommandType.StoredProcedure
                    })
                    {
                        command.Parameters.Add(new SqlParameter("@CommentID", test));
                        conn.Open();

                        Int32 rdr = command.ExecuteNonQuery();
                    }
            }
            catch (Exception e)
            {
                eventLog1.WriteEntry("Thread " + Thread.CurrentThread.Name + " ClearNGramPercent Failed with: " + e.ToString());
                UnlockProcess(test);
                ThreadCounter--;
                waiter.Set();
                Thread.CurrentThread.Abort();
            }

            foreach (String Gram in NGrams)
            {
                if (Gram == "")
                {
                    continue;
                }

                try
                {
                    using (var conn = new SqlConnection("Data Source=PHD-SERVER;Initial Catalog=CyberbullyDB;Integrated Security=False;User ID=sa;Password="******"InsertNGram", conn)
                        {
                            CommandType = CommandType.StoredProcedure
                        })
                        {
                            command.Parameters.Add(new SqlParameter("@NGram", Gram));
                            conn.Open();

                            Int32 rdr = command.ExecuteNonQuery();
                        }
                }
                catch (Exception e)
                {
                    eventLog1.WriteEntry("Thread " + Thread.CurrentThread.Name + " InsertNGram Failed with: " + e.ToString());
                    UnlockProcess(test);
                    ThreadCounter--;
                    waiter.Set();
                    Thread.CurrentThread.Abort();
                }

                Decimal commentLength       = cleancomment.Length;
                Decimal commentNoGramLength = cleancomment.Replace("|" + Gram + "|", "|").Length;
                Decimal gramLength          = Gram.Length + 1;
                Decimal Contain             = (commentLength - commentNoGramLength) / gramLength;
                Decimal commentWords        = cleancomment.Replace("|", "").Length;
                Decimal gramWords           = Gram.Replace("|", "").Length;
                Decimal Percent             = Contain / ((commentLength - commentWords - 1) / (gramLength - gramWords));

                try
                {
                    using (var conn = new SqlConnection("Data Source=PHD-SERVER;Initial Catalog=CyberbullyDB;Integrated Security=False;User ID=sa;Password="******"InsertNGramPercent", conn)
                        {
                            CommandType = CommandType.StoredProcedure
                        })
                        {
                            command.Parameters.Add(new SqlParameter("@CommentID", test));
                            command.Parameters.Add(new SqlParameter("@NGram", Gram));
                            command.Parameters.Add(new SqlParameter("@Pct", Percent));
                            conn.Open();

                            Int32 rdr = command.ExecuteNonQuery();
                        }
                }
                catch (Exception e)
                {
                    eventLog1.WriteEntry("Thread " + Thread.CurrentThread.Name + " InsertNGramPercent Failed with: " + e.ToString());
                    UnlockProcess(test);
                    ThreadCounter--;
                    waiter.Set();
                    Thread.CurrentThread.Abort();
                }
            }

            Length = comment.Length;

            foreach (Char i in comment)
            {
                if (Char.IsUpper(i))
                {
                    NumCaps++;
                }
            }

            PercentCaps = (Decimal)NumCaps / (Decimal)Length;

            try
            {
                using (var conn = new SqlConnection("Data Source=PHD-SERVER;Initial Catalog=CyberbullyDB;Integrated Security=False;User ID=sa;Password="******"UpdateStats", conn)
                    {
                        CommandType = CommandType.StoredProcedure
                    })
                    {
                        command.Parameters.Add(new SqlParameter("@CommentID", test));
                        command.Parameters.Add(new SqlParameter("@PercentCaps", PercentCaps));
                        conn.Open();

                        Int32 rdr = command.ExecuteNonQuery();
                    }
            }
            catch (Exception e)
            {
                eventLog1.WriteEntry("Thread " + Thread.CurrentThread.Name + " UpdateStats Failed with: " + e.ToString());
                UnlockProcess(test);
                ThreadCounter--;
                waiter.Set();
                Thread.CurrentThread.Abort();
            }

            ThreadCounter--;
            waiter.Set();
            eventLog1.WriteEntry("Thread " + Thread.CurrentThread.Name + " completed.");
        }