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