public async Task <UserWinsDto> GetTotalUserWinsVsUserType(int userId, int opponentUserId, int tournamentId, int seasonId, int typeId)
        {
            var dto = new UserWinsDto();

            var query1 = await context.BilliardsMatches
                         .Where((x => x.WinUserId == userId && x.LoseUserId == opponentUserId &&
                                 x.TournamentId == tournamentId && x.SeasonNumberId == seasonId && x.TypeId == typeId)).ToListAsync();

            var query2 = await context.BilliardsMatches
                         .Where((y => y.LoseUserId == userId && y.WinUserId == opponentUserId &&
                                 y.TournamentId == tournamentId && y.SeasonNumberId == seasonId && y.TypeId == typeId)).ToListAsync();

            foreach (var item in query1)
            {
                dto.UserWins += item.WinnerWins;
            }

            foreach (var item in query2)
            {
                dto.UserWins += item.LoserWins;
            }

            dto.UserId = userId;
            return(dto);
        }
        public async Task <UserWinsDto> GetUserTotalWins(int userId)
        {
            var dto   = new UserWinsDto();
            var query = await context.BilliardsMatches.Where(x => x.WinUserId == userId).ToListAsync();


            foreach (var item in query)
            {
                dto.UserWins += item.WinnerWins;
            }

            query = await context.BilliardsMatches.Where(x => x.LoseUserId == userId).ToListAsync();

            foreach (var item in query)
            {
                dto.UserWins += item.LoserWins;
            }

            dto.UserId = userId;

            return(dto);
        }