Пример #1
0
        public async Task SubmitAnswer_PollIsAnonymous_PollResultsHasNoTranslationTable()
        {
            // arrange
            var (connection, _) = await ConnectToOpenedConference();

            var createDto = new CreatePollDto(new SingleChoiceInstruction(new[] {"A", "B"}),
                new PollConfig("A or B?", true, false), new PollState(true, false), null);

            var pollId = await CreatePollReturnId(connection, createDto);

            // act
            AssertSuccess(await connection.Hub.InvokeAsync<SuccessOrError<Unit>>(nameof(CoreHub.SubmitPollAnswer),
                new SubmitPollAnswerDto(pollId, new SingleChoiceAnswer("A"))));

            // assert
            await connection.SyncObjects.AssertSyncObject<SynchronizedPollResult>(
                SynchronizedPollResult.SyncObjId(pollId), results =>
                {
                    Assert.Equal(1, results.ParticipantsAnswered);

                    var pollResults = Assert.IsType<SelectionPollResults>(results.Results);
                    Assert.Equal(1, pollResults.Options["A"].Count);
                    Assert.Null(results.TokenIdToParticipant);
                });
        }
Пример #2
0
        private async Task<string> CreatePollReturnId(UserConnection connection, CreatePollDto dto)
        {
            var result = await connection.Hub.InvokeAsync<SuccessOrError<string>>(nameof(CoreHub.CreatePoll), dto);
            AssertSuccess(result);

            return result.Response!;
        }
Пример #3
0
        public async Task SubmitAnswer_AnswerAlreadySubmitted_UpdateAnswer()
        {
            // arrange
            var (connection, _) = await ConnectToOpenedConference();

            var createDto = new CreatePollDto(new SingleChoiceInstruction(new[] {"A", "B"}),
                new PollConfig("A or B?", true, false), new PollState(true, false), null);

            var pollId = await CreatePollReturnId(connection, createDto);

            AssertSuccess(await connection.Hub.InvokeAsync<SuccessOrError<Unit>>(nameof(CoreHub.SubmitPollAnswer),
                new SubmitPollAnswerDto(pollId, new SingleChoiceAnswer("A"))));

            // act
            AssertSuccess(await connection.Hub.InvokeAsync<SuccessOrError<Unit>>(nameof(CoreHub.SubmitPollAnswer),
                new SubmitPollAnswerDto(pollId, new SingleChoiceAnswer("B"))));

            // assert
            await connection.SyncObjects.AssertSyncObject<SynchronizedPollResult>(
                SynchronizedPollResult.SyncObjId(pollId), results =>
                {
                    var pollResults = Assert.IsType<SelectionPollResults>(results.Results);
                    Assert.Empty(pollResults.Options["A"]);
                    Assert.Single(pollResults.Options["B"]);
                });
        }
Пример #4
0
        public IActionResult Create(CreatePollDto createPollDto)
        {
            if (createPollDto.title == null || createPollDto.title == "")
            {
                return(View());
            }
            else
            {
                var poll = new Poll();
                poll.Name     = createPollDto.title;
                poll.UserName = GetADUserName();
                poll          = _pollDataRepository.AddPoll(poll);

                foreach (var o in createPollDto.options)
                {
                    if (o != null && o != "")
                    {
                        var option = new Option();
                        option.Name  = o;
                        option.Votes = 0;

                        option = _pollDataRepository.AddOption(option, poll.Id);
                    }
                }

                return(RedirectToAction(nameof(Details), poll));
            }
        }
Пример #5
0
        public async Task <ActionResult <GetPollDto> > CreatePoll([FromBody] CreatePollDto dto)
        {
            long userID = Convert.ToInt64(User.Claims.FirstOrDefault(c => c.Type == "UserID").Value);

            Poll poll = new Poll()
            {
                Name    = dto.Name,
                OwnerID = userID,
                Answers = new List <PollAnswer>()
            };

            dto.Answers.ForEach(a => poll.Answers.Add(new PollAnswer()
            {
                Answer = a
            }));

            _context.Polls.Add(poll);
            await _context.SaveChangesAsync();

            return(Ok(new GetPollDto()
            {
                PollID = poll.PollID,
                Name = poll.Name
            }));
        }
Пример #6
0
        public async Task <SuccessOrError <string> > CreatePoll(CreatePollDto dto)
        {
            var participant = GetContextParticipant();

            return(await GetInvoker().Create(new CreatePollRequest(participant.ConferenceId, dto.Instruction,
                                                                   dto.Config, dto.InitialState, dto.RoomId)).RequirePermissions(DefinedPermissions.Poll.CanOpenPoll)
                   .ValidateObject(dto).Send());
        }
Пример #7
0
        public async Task CreatePoll_Moderator_ReceiveEmptyResults()
        {
            // arrange
            var (connection, _) = await ConnectToOpenedConference();

            // act
            var createDto = new CreatePollDto(new SingleChoiceInstruction(new[] {"A", "B"}),
                new PollConfig("A or B?", true, false), PollState.Default, null);

            var pollId = await CreatePollReturnId(connection, createDto);

            // assert
            await connection.SyncObjects.AssertSyncObject<SynchronizedPollResult>(
                SynchronizedPollResult.SyncObjId(pollId), results =>
                {
                    Assert.Equal(pollId, results.PollId);
                    Assert.Equal(0, results.ParticipantsAnswered);

                    var pollResults = Assert.IsType<SelectionPollResults>(results.Results);
                    Assert.DoesNotContain(pollResults.Options, x => x.Value.Any());
                });
        }
Пример #8
0
        public async Task CreatePoll_Global_ReceiveSyncPollObj()
        {
            // arrange
            var (connection, _) = await ConnectToOpenedConference();

            // act
            var instruction = new SingleChoiceInstruction(new[] {"A", "B"});
            var createDto = new CreatePollDto(instruction, new PollConfig("A or B?", true, false), PollState.Default,
                null);

            var pollId = await CreatePollReturnId(connection, createDto);

            await connection.SyncObjects.AssertSyncObject<SynchronizedPoll>(SynchronizedPoll.SyncObjId(pollId), poll =>
            {
                Assert.Equal(pollId, poll.Id);
                Assert.Equal(createDto.Config, poll.Config);
                Assert.Equal(createDto.InitialState, poll.State);

                var actualInstruction = Assert.IsType<SingleChoiceInstruction>(poll.Instruction);
                Assert.Equal(instruction.Options, actualInstruction.Options);
            });
        }