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