Exemple #1
0
        public async Task <IActionResult> ChangeConceptPollOrder([FromRoute] int id, [FromBody] PollOrderRequest pollOrderRequest)
        {
            var loggedUser = User.GetUserIdFromToken();
            await _conceptService.ChangeConceptPollOrderAsync(loggedUser, pollOrderRequest, id);

            return(Ok());
        }
Exemple #2
0
        public async Task ChangeConceptPollOrderAsync(int loggedUser, PollOrderRequest pollOrderRequest, int id)
        {
            // validate admin user
            var user = await _uow.UserRepository.FindByAsync(u => u.Id == loggedUser && u.Role == RoleEnum.ADMIN);

            if (user.Count == 0)
            {
                throw new NotAllowedException(ExceptionConstants.NOT_ALLOWED);
            }
            var concept = await _uow.ConceptRepository.GetAll().Where(c => c.Id == id)
                          .Include(c => c.Polls).FirstOrDefaultAsync();

            if (concept == null)
            {
                throw new NotFoundException(ExceptionConstants.NOT_FOUND, "Concept");
            }
            var pollOne = concept.Polls.Where(p => p.Id == pollOrderRequest.PollOneId).FirstOrDefault();

            if (pollOne != null)
            {
                pollOne.Order = pollOrderRequest.PollOneOrder;
                await _uow.PollRepository.UpdateAsync(pollOne, pollOne.Id);
            }

            var pollTwo = concept.Polls.Where(p => p.Id == pollOrderRequest.PollTwoId).FirstOrDefault();

            if (pollTwo != null)
            {
                pollTwo.Order = pollOrderRequest.PollTwoOrder;
                await _uow.PollRepository.UpdateAsync(pollTwo, pollTwo.Id);
            }
            await _uow.CommitAsync();
        }