Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            var cmd    = new CreateQuestionCMD("Tema", "Ce trebuia sa mai fac pentru tema?", "LunguMirceaAdrian", new string[] { "homework" });
            var result = new PublishQuestionCMD(cmd);

            Console.WriteLine(new PresentQuestion(result).ShowResult);

            //Implementare2
            Console.WriteLine("Metoda de la clasa-------------\n");
            var result2 = PublishQuestionMethod2(result);

            result2.Match(
                ProcessPublishQuestion,
                ProcessQuestionProfane,
                ProcessQuestionInvalid
                );
            // Si acum cu date invalide (text prea scurt)
            Console.WriteLine("\n-------Acum cu date invalide----------------\n");
            var cmd2    = new CreateQuestionCMD("OMG", "tot scurt", "Gogu", new string[] { "un tag invalid" });
            var result3 = new PublishQuestionCMD(cmd2);

            Console.WriteLine(new PresentQuestion(result3).ShowResult);
            // Acum again cu interfata si match
            Console.WriteLine("Metoda de la clasa-------------\n");
            var result4 = PublishQuestionMethod2(result3);

            result4.Match(
                ProcessPublishQuestion,
                ProcessQuestionProfane,
                ProcessQuestionInvalid
                );
            Console.ReadLine();
        }
Ejemplo n.º 2
0
        public static IPublishQuestionResult PublishQuestionMethod2(PublishQuestionCMD publishQuestionCommand)
        {
            if (publishQuestionCommand.ErrorMessages.Count > 0)
            {
                return(new QuestionValidationFailed(publishQuestionCommand.ErrorMessages));
            }

            if (TextAnalize.MachineCheck.MachineProfanityIndex(new List <string> {
                publishQuestionCommand.PublishedQuestion.QuestionText, publishQuestionCommand.PublishedQuestion.Title
            }) > 80)
            {
                return(new QuestionProfane("Failed profanity check"));
            }

            var questionId = Guid.NewGuid();
            var result     = new PublishQuestion(questionId, publishQuestionCommand.PublishedQuestion.Autor);

            //execute logic
            return(result);
        }