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)); }
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)); }
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)); }