public PollHandlerTests() { //Arrange _mockLogger = new Mock <ILoggerFactory>(); _createPollCommandValid = new CreatePollCommand(); _createPollCommandValid.Poll_Description = "poll 1"; string option1 = "option 1"; string option2 = "option 2"; string option3 = "option 3"; _createPollCommandValid.Options = new List <string> { option1, option2, option3 }; _createPollCommandInvalid = new CreatePollCommand(); _createPollCommandInvalid.Poll_Description = ""; _createPollCommandInvalid.Options = new List <string> { "", "", "" }; _polls = new List <Poll>(); var poll1 = new Poll(new DescriptionVO("poll 1")); poll1.addOptions(new OptionPoll(new DescriptionVO("opt 1"))); poll1.addOptions(new OptionPoll(new DescriptionVO("opt 2"))); var poll2 = new Poll(new DescriptionVO("poll 2")); poll2.addOptions(new OptionPoll(new DescriptionVO("opt 3"))); poll2.addOptions(new OptionPoll(new DescriptionVO("opt 4"))); _polls.Add(poll1); _polls.Add(poll2); _getPollByIdCommandValid = new UpdatePollByIdCommand(Guid.NewGuid()); _getPollByIdCommandInvalid = new UpdatePollByIdCommand(); //ACT }
public async Task <ICommandResult> Handle(UpdatePollByIdCommand command) { try { command.Validate(); if (command.Invalid) { return(new GenericCommandResult(true, "Enquete inválida", command.Notifications)); } //obtem a enquete por id var poll = await _pollRepository.GetById(command.Poll_Id); if (poll == null) { return(new GenericCommandResult(true, "Enquete não encontrada", null)); } //incrementa a visualização poll.increaseView(); // salva a alteração feita na views await _pollRepository.Update(poll); GetPollByIdCommandResult getPollByIdCommandResult = new GetPollByIdCommandResult(poll.Id, poll.Description.Description); foreach (var item in poll.OptionsPoll) { getPollByIdCommandResult.options.Add(new GetOptionsPollByPolIdCommandResult(item.Id, item.Description.Description)); } if (Commit()) { return(new GenericCommandResult(true, "Enquete recuperada com sucesso", getPollByIdCommandResult)); } else { return(new GenericCommandResult(false, "Falha ao recuperar enquete enquete", null)); } } catch (Exception ex) { _logger.LogError("VoteOptionPollCommand --> {Poll_Id}", command.Poll_Id, ex); return(new GenericCommandResult(false, "Falha ao obter enquete", ex)); } }