Esempio n. 1
0
        public async Task <IActionResult> NewSharePoll([FromBody] SharePollViewModel model)
        {
            model.UserId = User.ApiGetUserId();

            var latestAuthorityPoll = await _pollService.GetLastPollOfType <AuthorityPoll>();

            if (latestAuthorityPoll == null)
            {
                ModelState.AddModelError("", _localizer["CantStartPollBeforeAuthorityComplete"]);
                return(BadRequest(Errors.GetErrorList(ModelState)));
            }

            if (latestAuthorityPoll.Result == "Kararsız" ||
                latestAuthorityPoll.Result == PollResults.Undecided.ToString())
            {
                ModelState.AddModelError("", _localizer["CantStartPollBeforeAuthorityComplete"]);
                return(BadRequest(Errors.GetErrorList(ModelState)));
            }

            if (await _pollService.HasActivePollOfType <AuthorityPoll>())
            {
                ModelState.AddModelError("", _localizer["AuthorityPollActivePollError"]);
                return(BadRequest(Errors.GetErrorList(ModelState)));
            }

            var poll = await _pollViewModelService.NewSharePoll(model);

            await _pollService.NotifyUsers(poll.PollType, PollNotificationTypes.Started, poll);

            return(Ok(_mapper.Map <SharePoll, PollListViewModel>((SharePoll)poll)));
        }
Esempio n. 2
0
        public SharePollViewModel SharePollToViewModel(SharePoll poll)
        {
            SharePollViewModel model = null;

            if (poll != null)
            {
                model = _mapper.Map <SharePoll, SharePollViewModel>(poll);
            }

            return(model);
        }
Esempio n. 3
0
        public async Task <Poll> NewSharePoll(SharePollViewModel model)
        {
            var poll = new SharePoll
            {
                UserId            = model.UserId,
                CreateTime        = DateTime.UtcNow,
                Active            = true,
                Name              = model.Name,
                TenantId          = _tenantProvider.GetTenantId(),
                OptionsJsonString = JsonConvert.SerializeObject(model.Options),
                QuestionBody      = model.Description
            };
            await _pollService.AddPoll(poll);

            return(poll);
        }
        public async Task Should_Create_SharePoll()
        {
            var model = new SharePollViewModel
            {
                Name    = "test",
                Options = new List <string> {
                    "a", "b", "c"
                },
                Description = "test dec"
            };
            var poll = await _pollApiViewModelService.NewSharePoll(model);

            var result = _context.SharePolls.FirstOrDefault(x => x.Id == poll.Id);

            Assert.NotNull(result);
            Assert.Equal(model.Name, result.Name);
            Assert.Equal(JsonConvert.SerializeObject(model.Options), result.OptionsJsonString);
            Assert.Equal(model.Description, result.QuestionBody);
        }