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