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(); }
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(); }