Exemple #1
0
        static void Main(string[] args)
        {
            var cmd      = new AddQuestionCmd("username", "Problem in C#", "A question is written here", "#csharp");
            var question = QuestionAsked.Create("this is a question", new List <string>()
            {
                "tag1", "tag2"
            });


            question.Match(
                Succ: quest =>
            {
                VoteQuestion(quest);
                Console.WriteLine("Valid Question");
                return(Unit.Default);
            },
                Fail: ex =>
            {
                Console.WriteLine($"Invalid Question. Reason:  {ex.Message}");
                return(Unit.Default);
            }
                );

            Console.ReadLine();
        }
Exemple #2
0
        static void Main(string[] args)
        {
            var cmd    = new AddQuestionCmd("username", "Problem in C#", "A question is written here", "#csharp");
            var result = AddQuestion(cmd);

            result.Match(
                ProcessQuestionPosted,
                ProcessQuestionRejected,
                ProcessInvalidQuestion
                );

            Console.ReadLine();
        }
Exemple #3
0
        public static IAddQuestionResult AddQuestion(AddQuestionCmd addQuestionCommand)
        {
            if (string.IsNullOrWhiteSpace(addQuestionCommand.User))
            {
                var errors = new List <string>()
                {
                    "User not connected"
                };
                return(new QuestionValidationFailed(errors));
            }

            if (new Random().Next(10) > 1)
            {
                return(new QuestionRejected("User not connected"));
            }

            var questionId = Guid.NewGuid();
            var result     = new QuestionPosted(questionId, addQuestionCommand.Title);

            //execute logic
            return(result);
        }