public static AudienceReportResponse SetAudience(AudienceReportVisionEnum reportvisionEnum, IGrouping <string, Audience> broadcasterAudience, string audienceBroadcaster)
        {
            decimal audience = 0;

            if (AudienceReportVisionEnum.SumAudience == reportvisionEnum)
            {
                audience = broadcasterAudience.Sum(x => x.AudiencePoints);
            }
            else
            {
                audience = broadcasterAudience.Sum(x => x.AudiencePoints) / broadcasterAudience.Count();
            }

            return(new AudienceReportResponse(audienceBroadcaster, audience));
        }
Beispiel #2
0
        public async Task <IActionResult> Get([FromQuery] DateTime audienceDate, AudienceReportVisionEnum reportVisionEnum)
        {
            var response = await _audienceReportAppService.GetReportAsync(audienceDate, reportVisionEnum);

            return(GetResponse(response));
        }
        public async Task <List <AudienceReportResponse> > GetReportAsync(DateTime audienceDate, AudienceReportVisionEnum reportvisionEnum)
        {
            var audicenceReportResponse = new List <AudienceReportResponse>();

            var audienceList = await _audienceRepository.GetAudienceByDateTimeAsync(audienceDate.Date);

            var brodcasterAudienceList = audienceList.GroupBy(x => x.AudienceBroadcaster);

            foreach (var broadcasterAudience in brodcasterAudienceList)
            {
                audicenceReportResponse.Add(AudienceReportResponse.SetAudience(reportvisionEnum, broadcasterAudience, broadcasterAudience.Key));
            }

            return(audicenceReportResponse.Any() ? audicenceReportResponse : null);
        }