Пример #1
0
        private static void VoteAddManager(UnverifiedQuestion questionData)
        {
            var verifiedQuestionResult = new VerifyQuestionService().VerifyQuestion(questionData);

            verifiedQuestionResult.Match(
                verifiedQuestion =>
            {
                var id = Guid.NewGuid();
                IReadOnlyCollection <VoteEnum> votes = Array.Empty <VoteEnum>();
                var question = new AskQuestionResult.QuestionAdded(id, questionData.Title, questionData.Text, questionData.Tags, 0, votes);
                question     = new VoteManager().Update(question, VoteEnum.Up);
                question     = new VoteManager().Update(question, VoteEnum.Up);
                question     = new VoteManager().Update(question, VoteEnum.Down);

                Console.WriteLine(question.Votes.Count);

                return(Unit.Default);
            },
                ex =>
            {
                Console.WriteLine("Question data could not be verified");
                return(Unit.Default);
            }
                );
        }
Пример #2
0
        static AskQuestionResult.IAskQuestionResult AskQuestion(AskQuestionCmd cmd)
        {
            if (string.IsNullOrWhiteSpace(cmd.Title))
            {
                string _error = new string ("Invalid title!");
                return(new AskQuestionResult.QuestionNotAdded(_error));
            }

            if (string.IsNullOrWhiteSpace(cmd.Text))
            {
                string _error = new string ("Invalid text!");
                return(new AskQuestionResult.QuestionNotAdded(_error));
            }

            if (new Random().Next(10) == 1)
            {
                var _error = new List <string> {
                    "ML validation failed!"
                };
                return(new AskQuestionResult.QuestionValidationFailed(_error));
            }

            var Id     = Guid.NewGuid();
            var result = new AskQuestionResult.QuestionAdded(Id, cmd.Title, cmd.Text, cmd.Tags);

            return(result);
        }
Пример #3
0
        static AskQuestionResult.IAskQuestionResult AskQuestion(AskQuestionCmd cmd)
        {
            if (string.IsNullOrWhiteSpace(cmd.Title))
            {
                string error = new string ("Title must not be empty!");
                return(new AskQuestionResult.QuestionNotAdded(error));
            }

            if (string.IsNullOrWhiteSpace(cmd.Text))
            {
                string error = new string ("Body must not be empty!");
                return(new AskQuestionResult.QuestionNotAdded(error));
            }

            if (new Random().Next(10) > 7) //simulare analiza text
            {
                var error = new List <string> {
                    "ML validation failed!"
                };
                return(new AskQuestionResult.QuestionValidationFailed(error));
            }

            var Id     = Guid.NewGuid();
            var result = new AskQuestionResult.QuestionAdded(Id, cmd.Title, cmd.Text, cmd.Tags);

            return(result);
        }
Пример #4
0
        private static string ProcessQuestionAdded(AskQuestionResult.QuestionAdded arg)
        {
            Console.WriteLine("Question added with id:" + arg.Id);
            Console.WriteLine("Title: " + arg.Title);
            Console.WriteLine("Body text: " + arg.Text);
            Console.WriteLine("Tags:");
            foreach (var item in arg.Tags)
            {
                Console.WriteLine(item);
            }

            return(arg.ToString());
        }
Пример #5
0
        private static void UpdateVotesService(UnverifiedQuestion unverifiedQuestion)
        {
            IReadOnlyCollection <VoteEnum> emptyList = Array.Empty <VoteEnum>();
            var verifiedQuestionResult = new VerifyQuestionData().VerifyQuestion(unverifiedQuestion);

            verifiedQuestionResult.Match(
                verifiedQuestion =>                 //if question is verified you can vote
            {
                var questionId    = Guid.NewGuid(); //simulate an added question
                var questionAdded = new AskQuestionResult.QuestionAdded(questionId, verifiedQuestion.Title, verifiedQuestion.Text, verifiedQuestion.Taglist, 0, emptyList);

                var updatedQuestion = new UpdateVotes().Update(questionAdded, VoteEnum.Up);             //simulate a vote up system by giving a vote
                Console.WriteLine("Current question: " + updatedQuestion.Title + "\n" +
                                  "Current vote status: " + updatedQuestion.TotalVotes.Count);          //check result (number of votes)
                return(Unit.Default);
            },
                ex =>         //if question is not verified you cannot vote
            {
                Console.WriteLine("Error to vote!");
                return(Unit.Default);
            }
                );
        }