public async Task <List <TopWinnerDetail> > TopWinnerDetail(TopWinnerDetailQuery query) { using (var db = databaseManager.GetReadOnlyDatabase(query.OperatorId)) { switch (query.Format) { case Enums.TopWinnerFormat.Game: { var x = await db.TopWinnerDetails .Query("REPORTTOPWINNERGAME @OperatorId, @GameId, @StartDateInUTC, @EndDateInUTC, @UserId", query) .ToListAsync(); return(x.WithFilters <TopWinnerDetail>(query)); } case Enums.TopWinnerFormat.Daily: { var x = await db.TopWinnerDetailsDaily .Query($"REPORTTOPWINNER{query.Format} @OperatorId, @GameId, @StartDateInUTC, @EndDateInUTC, @UserId", query) .ToListAsync(); return(x.WithFilters <TopWinnerDetail>(query)); } case Enums.TopWinnerFormat.Weekly: { var x = await db.TopWinnerDetailsWeekly .Query($"REPORTTOPWINNER{query.Format} @OperatorId, @GameId, @StartDateInUTC, @EndDateInUTC, @UserId", query) .ToListAsync(); return(x.WithFilters <TopWinnerDetail>(query)); } case Enums.TopWinnerFormat.Monthly: { var x = await db.TopWinnerDetailsMonthly .Query($"REPORTTOPWINNER{query.Format} @OperatorId, @GameId, @StartDateInUTC, @EndDateInUTC, @UserId", query) .ToListAsync(); return(x.WithFilters <TopWinnerDetail>(query)); } default: throw new InvalidOperationException(); } } }
public async Task <IActionResult> Details([FromQuery] TopWinnerDetailQuery query) => GetResult(await reportsRepository.TopWinnerDetail(query));