Example #1
0
        public async Task StartVote(string questionTitle)
        {
            var currentQuestion = await _votingRepository.GetCurrentQuestion();

            if (currentQuestion != null && !currentQuestion.HasFinished)
            {
                throw new InvalidOperationException("Cannot start a new vote, as there is already a vote in progress");
            }

            _votingRepository.AddQuestion(new Question {
                Id          = Guid.NewGuid(),
                Title       = questionTitle,
                DateCreated = DateTimeOffset.Now,
                HasFinished = false
            });
            await _unitOfWork.SaveChangesAsync();

            Clients.All.voteStarted(questionTitle);
        }