Esempio n. 1
0
        /// <summary>
        /// Get voters count for specific Event
        /// </summary>
        /// <param name="eventId">Event Id</param>
        /// <returns>Voters count</returns>
        public async Task <int> GetTotalNumberOfVotersForEvent(Guid eventId)
        {
            var places = await _eventDetailsService.GetPlacesWithVotes(eventId);

            var timeSlots = await _eventDetailsService.GetDatesWithVotes(eventId);

            var placesTotalVoters = places.Where(p => p.VotesForPlace != null).SelectMany(p => p.VotesForPlace?.Select(v => v.UserId).ToList()).Distinct();
            var datesTotalVoters  = timeSlots.Where(p => p.VotesForDate != null).SelectMany(p => p.VotesForDate?.Select(v => v.UserId).ToList()).Distinct();

            return(placesTotalVoters.Union(datesTotalVoters).Distinct().Count());
        }
Esempio n. 2
0
        public async Task <JsonResult> GetVoteForDateModel(Guid eventId)
        {
            var totalNumberOfVoters = await _votingService.GetTotalNumberOfVotersForEvent(eventId);

            var timeSlots = await _eventDetailsService.GetDatesWithVotes(eventId);

            var optionsVm = timeSlots
                            .OrderBy(ts => ts.DateTime)
                            .Select((ts) => MappingHelper.MapToOptionViewModel(ts, User.Identity.GetUserId()))
                            .ToList();

            return(Json(new { Options = optionsVm, TotalNumberOfVoters = totalNumberOfVoters },
                        JsonRequestBehavior.AllowGet));
        }