private void SetParameterForNextNode()
        {
            var spamMessageTrue  = new List <string>();
            var spamMessageFalse = new List <string>();
            var hamMessageTrue   = new List <string>();
            var hamMessageFalse  = new List <string>();

            foreach (var list in ActualMessages)
            {
                foreach (var message in list)
                {
                    var isSpam = IsSpam(message);
                    switch (ActualProp)
                    {
                    case Properties.Xxx:
                        if (message.XXX && isSpam)
                        {
                            spamMessageTrue.Add(message.Text);
                        }
                        if (message.XXX && !isSpam)
                        {
                            hamMessageTrue.Add(message.Text);
                        }
                        if (!message.XXX && isSpam)
                        {
                            spamMessageFalse.Add(message.Text);
                        }
                        if (!message.XXX && !isSpam)
                        {
                            hamMessageFalse.Add(message.Text);
                        }
                        break;

                    case Properties.Free:
                        if (message.Free && isSpam)
                        {
                            spamMessageTrue.Add(message.Text);
                        }
                        if (message.Free && !isSpam)
                        {
                            hamMessageTrue.Add(message.Text);
                        }
                        if (!message.Free && isSpam)
                        {
                            spamMessageFalse.Add(message.Text);
                        }
                        if (!message.Free && !isSpam)
                        {
                            hamMessageFalse.Add(message.Text);
                        }
                        break;

                    case Properties.Money:
                        if (message.Money && isSpam)
                        {
                            spamMessageTrue.Add(message.Text);
                        }
                        if (message.Money && !isSpam)
                        {
                            hamMessageTrue.Add(message.Text);
                        }
                        if (!message.Money && isSpam)
                        {
                            spamMessageFalse.Add(message.Text);
                        }
                        if (!message.Money && !isSpam)
                        {
                            hamMessageFalse.Add(message.Text);
                        }
                        break;

                    case Properties.UpperCase:
                        if (message.UpperCase && isSpam)
                        {
                            spamMessageTrue.Add(message.Text);
                        }
                        if (message.UpperCase && !isSpam)
                        {
                            hamMessageTrue.Add(message.Text);
                        }
                        if (!message.UpperCase && isSpam)
                        {
                            spamMessageFalse.Add(message.Text);
                        }
                        if (!message.UpperCase && !isSpam)
                        {
                            hamMessageFalse.Add(message.Text);
                        }
                        break;

                    case Properties.TelephoneNumber:
                        if (message.FollowingNumbers && isSpam)
                        {
                            spamMessageTrue.Add(message.Text);
                        }
                        if (message.FollowingNumbers && !isSpam)
                        {
                            hamMessageTrue.Add(message.Text);
                        }
                        if (!message.FollowingNumbers && isSpam)
                        {
                            spamMessageFalse.Add(message.Text);
                        }
                        if (!message.FollowingNumbers && !isSpam)
                        {
                            hamMessageFalse.Add(message.Text);
                        }
                        break;

                    case Properties.Url:
                        if (message.HyperLink && isSpam)
                        {
                            spamMessageTrue.Add(message.Text);
                        }
                        if (message.HyperLink && !isSpam)
                        {
                            hamMessageTrue.Add(message.Text);
                        }
                        if (!message.HyperLink && isSpam)
                        {
                            spamMessageFalse.Add(message.Text);
                        }
                        if (!message.HyperLink && !isSpam)
                        {
                            hamMessageFalse.Add(message.Text);
                        }
                        break;

                    case Properties.Apostroph:
                        if (message.Apostroph && isSpam)
                        {
                            spamMessageTrue.Add(message.Text);
                        }
                        if (message.Apostroph && !isSpam)
                        {
                            hamMessageTrue.Add(message.Text);
                        }
                        if (!message.Apostroph && isSpam)
                        {
                            spamMessageFalse.Add(message.Text);
                        }
                        if (!message.Apostroph && !isSpam)
                        {
                            hamMessageFalse.Add(message.Text);
                        }
                        break;

                    case Properties.NotDefined:
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
            }

            var foldCrossValidation = new FoldCrossValidation();

            foldCrossValidation.CreateDataPackage(spamMessageFalse, hamMessageFalse);
            NewMessagesFalse = foldCrossValidation.DataSetPackages;

            foldCrossValidation = new FoldCrossValidation();
            foldCrossValidation.CreateDataPackage(spamMessageTrue, hamMessageTrue);
            NewMessagesTrue = foldCrossValidation.DataSetPackages;

            NewHamCountFalse  = hamMessageFalse.Count;
            NewHamCountTrue   = hamMessageTrue.Count;
            NewSpamCountFalse = spamMessageFalse.Count;
            NewSpamCountTrue  = spamMessageTrue.Count;
        }
 public MessageClassifier(FoldCrossValidation messages)
 {
     this.Messages = messages.DataSetPackages;
 }