Esempio n. 1
0
        public IActionResult UserPollDelete(int pollId)
        {
            UserPollResponse response = new UserPollResponse();

            string userId = Request.Headers[Constants.UserToken];

            User user;

            _memoryCache.TryGetValue(userId, out user);
            if (user == null)
            {
                return(Unauthorized(Messages.UserNotFoundError));
            }

            Poll poll = _dBContext.Poll.Where(x => x.CreatedBy == user.Userid && x.PollId == pollId).FirstOrDefault();

            if (poll == null)
            {
                return(BadRequest(Messages.PollNotFoundError));
            }
            poll.StatusId = 3;

            int result = _dBContext.SaveChanges();

            if (result > 0)
            {
                response.Response = Messages.PollDeleteSuccess;
            }

            _memoryCache.Remove("poll_guid_" + poll.PollGuid);
            _memoryCache.Remove("poll_id_" + poll.PollId);

            UserPollResponse userpollres = new UserPollResponse();

            _memoryCache.TryGetValue($"poll_userpoll_userid_{user.UserGuid}", out userpollres);
            if (userpollres != null)
            {
                var pollToDelete = userpollres.userPolls.Where(x => x.pollId == poll.PollId).FirstOrDefault();
                userpollres.userPolls.Remove(pollToDelete);
                userpollres.totalPolls = (userpollres.totalPolls - 1) >= 0 ? (userpollres.totalPolls - 1) : 0;
            }

            DashboardMetricsViewModel dashboardMetricsViewModel;

            _memoryCache.TryGetValue($"dashboard_{user.UserGuid}", out dashboardMetricsViewModel);
            if (dashboardMetricsViewModel != null)
            {
                dashboardMetricsViewModel.polls = (dashboardMetricsViewModel.polls - 1) > 0 ? (dashboardMetricsViewModel.polls - 1) : 0;
                _memoryCache.Set($"dashboard_{user.UserGuid}", dashboardMetricsViewModel);
            }
            return(Ok(response));
        }
Esempio n. 2
0
        public IActionResult UserPollDelete(int pollId)
        {
            UserPollResponse response = new UserPollResponse();

            string userguid      = Request.Headers[Constants.UserToken];
            string decyrptstring = Security.Decrypt(userguid);

            if (string.IsNullOrEmpty(decyrptstring))
            {
                return(BadRequest(Messages.UnauthorizedUserError));
            }

            User user = _dBContext.User.Where(x => x.UserGuid == decyrptstring).FirstOrDefault();

            if (user == null)
            {
                return(BadRequest(Messages.UserNotFoundError));
            }

            Poll poll = _dBContext.Poll.Where(x => x.CreatedBy == user.Userid && x.PollId == pollId).FirstOrDefault();

            if (poll == null)
            {
                return(BadRequest(Messages.PollNotFoundError));
            }

            poll.StatusId = 3;

            int result = _dBContext.SaveChanges();

            if (result > 0)
            {
                response.Response = Messages.PollDeleteSuccess;
            }
            return(Ok(response));
        }
Esempio n. 3
0
        public IActionResult UserPoll(int pagenum, int pagesize)
        {
            string userguid = Request.Headers[Constants.UserToken];

            List <UserPoll>  filteredUserPollsList = new List <UserPoll>();
            UserPollResponse userpollres           = new UserPollResponse();

            string decyrptstring = Security.Decrypt(userguid);

            if (string.IsNullOrEmpty(decyrptstring))
            {
                return(BadRequest("Unauthorized User"));
            }

            User user = _dBContext.User.Where(x => x.UserGuid == decyrptstring).FirstOrDefault();

            if (user == null)
            {
                return(BadRequest(Messages.UserNotFoundError));
            }

            List <Status> statuses = _dBContext.Status.ToList();

            var listpoll = from poll in _dBContext.Poll
                           where poll.CreatedBy == user.Userid && poll.StatusId != 3
                           orderby poll.CreatedDate descending
                           select new UserPoll()
            {
                pollId   = poll.PollId,
                pollGuid = poll.PollGuid,
                date     = poll.CreatedDate,
                pollName = poll.Name,
                status   = poll.StatusId.ToString(),
                votes    = 0
            };

            List <UserPoll> totalUserPolls = listpoll.ToList();

            filteredUserPollsList = totalUserPolls.Skip(pagesize * pagenum)
                                    .Take(pagesize).ToList();

            List <int> pollIdsFilteredList = filteredUserPollsList.Select(x => x.pollId).ToList();

            List <PollVotes> pollVotes = (from eachPoll in _dBContext.PollVotes
                                          where pollIdsFilteredList.Contains(eachPoll.PollId)
                                          select eachPoll).ToList();

            var pollVotesReceived = (from eachPoll in pollVotes
                                     group new { eachPoll.PollId } by new { eachPoll.CreatedDate, eachPoll.PollId } into eachGroup
                                     select eachGroup).ToList();

            //Update only finaly display values
            for (int i = 0; i < filteredUserPollsList.Count(); i++)
            {
                filteredUserPollsList[i].status = statuses.Where(x => x.Statusid.ToString() == filteredUserPollsList[i].status).SingleOrDefault().Statusname;
                filteredUserPollsList[i].votes  = pollVotesReceived.Where(x => x.Key.PollId == filteredUserPollsList[i].pollId).Count();
            }

            userpollres.userPolls  = filteredUserPollsList;
            userpollres.totalPolls = listpoll.ToList().Count;

            return(Ok(userpollres));
        }