示例#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();
        }
示例#2
0
        static void Main(string[] args)
        {
            var cmd            = new CreateQuestionCMD("Tema", "Ce trebuia sa mai fac pentru tema?", "LunguMirceaAdrian", new string[] { "homework" });
            var questionResult = UnvalidatedQuestion.Create(cmd);
            var result         = questionResult.Match(
                Succ: question =>
            {
                ValidatedQuestion vq;
                Console.WriteLine("---------------Question is Valid-----------------\n");
                Console.WriteLine(GetStringPresentQuestion(vq = new ValidatedQuestion(question)));
                return(vq);
            },
                Fail: ex =>
            {
                Console.WriteLine($"Question is Invalid. Reason: {ex.Message}");
                return(null);
            }
                );

            Console.WriteLine("-------------------------------------------------\n");
            //Acum cu numar invalid de tags
            cmd            = new CreateQuestionCMD("Tema", "Ce trebuia sa mai fac pentru tema?", "LunguMirceaAdrian", new string[] { "homework", "homework", "homework", "homework" });
            questionResult = UnvalidatedQuestion.Create(cmd);
            questionResult.Match(
                Succ: question =>
            {
                ValidatedQuestion vq;
                Console.WriteLine("---------------Question is Valid-----------------\n");
                Console.WriteLine(GetStringPresentQuestion(vq = new ValidatedQuestion(question)));
                return(vq);
            },
                Fail: ex =>
            {
                Console.WriteLine($"Question is Invalid. Reason: {ex.Message}");
                return(null);
            }
                );


            Console.WriteLine("\n\n\n\n----------Si acum votam---------\n\n\n");
            var rand = new Random(DateTime.Now.TimeOfDay.Ticks.ToString().GetHashCode());

            for (int i = 0; i < rand.Next() % 30; i++)
            {
                result.AddVote(rand.Next() % 3 != 0? VoteEnum.Up : VoteEnum.Down);
            }
            Console.WriteLine(GetStringPresentQuestion(result));

            Console.Read();
        }