public async Task <IActionResult> ChangeConceptPollOrder([FromRoute] int id, [FromBody] PollOrderRequest pollOrderRequest) { var loggedUser = User.GetUserIdFromToken(); await _conceptService.ChangeConceptPollOrderAsync(loggedUser, pollOrderRequest, id); return(Ok()); }
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(); }