Пример #1
0
        public AllMatchesModel GetDoubleLeagueMatchById(int matchId)
        {
            var query = _context.DoubleLeagueMatches.FirstOrDefault(x => x.Id == matchId);

            TimeSpan?playingTime = null;

            if (query.EndTime != null)
            {
                playingTime = query.EndTime - query.StartTime;
            }

            var subquery = from dlp in _context.DoubleLeaguePlayers
                           where dlp.DoubleLeagueTeamId == query.TeamOneId
                           join u in _context.Users on dlp.UserId equals u.Id
                           select new TeamModel
            {
                Id        = dlp.Id,
                FirstName = u.FirstName,
                LastName  = u.LastName,
                Email     = u.Email,
                PhotoUrl  = u.PhotoUrl
            };

            var teamOne = subquery.ToArray();

            var subquery2 = from dlp in _context.DoubleLeaguePlayers
                            where dlp.DoubleLeagueTeamId == query.TeamTwoId
                            join u in _context.Users on dlp.UserId equals u.Id
                            select new TeamModel
            {
                Id        = dlp.Id,
                FirstName = u.FirstName,
                LastName  = u.LastName,
                Email     = u.Email,
                PhotoUrl  = u.PhotoUrl
            };

            var teamTwo = subquery2.ToArray();

            var allTeams = new AllMatchesModel
            {
                Id               = query.Id,
                TeamOneId        = query.TeamOneId,
                TeamTwoId        = query.TeamTwoId,
                LeagueId         = query.LeagueId,
                StartTime        = query.StartTime,
                EndTime          = query.EndTime,
                TeamOneScore     = (int)query.TeamOneScore,
                TeamTwoScore     = (int)query.TeamTwoScore,
                MatchStarted     = (bool)query.MatchStarted,
                MatchEnded       = (bool)query.MatchEnded,
                MatchPaused      = (bool)query.MatchPaused,
                TotalPlayingTime = playingTime != null?ToReadableAgeString(playingTime.Value) : null,
                                       TeamOne = teamOne,
                                       TeamTwo = teamTwo
            };

            return(allTeams);
        }
Пример #2
0
        public IEnumerable <AllMatchesModel> GetAllMatchesByOrganisationId(int currentOrganisationId, int leagueId)
        {
            var query = _context.DoubleLeagueMatches.Where(x => x.LeagueId == leagueId).ToList();

            List <AllMatchesModel> result = new List <AllMatchesModel>();

            foreach (var item in query)
            {
                var subquery = from dlp in _context.DoubleLeaguePlayers
                               where dlp.DoubleLeagueTeamId == item.TeamOneId
                               join u in _context.Users on dlp.UserId equals u.Id
                               select new TeamModel
                {
                    Id        = dlp.Id,
                    FirstName = u.FirstName,
                    LastName  = u.LastName,
                    Email     = u.Email
                };

                var teamOne = subquery.ToArray();

                var subquery2 = from dlp in _context.DoubleLeaguePlayers
                                where dlp.DoubleLeagueTeamId == item.TeamTwoId
                                join u in _context.Users on dlp.UserId equals u.Id
                                select new TeamModel
                {
                    Id        = dlp.Id,
                    FirstName = u.FirstName,
                    LastName  = u.LastName,
                    Email     = u.Email
                };

                var teamTwo = subquery2.ToArray();

                var allTeams = new AllMatchesModel
                {
                    Id           = item.Id,
                    TeamOneId    = item.TeamOneId,
                    TeamTwoId    = item.TeamTwoId,
                    LeagueId     = item.LeagueId,
                    StartTime    = item.StartTime,
                    EndTime      = item.EndTime,
                    TeamOneScore = (int)item.TeamOneScore,
                    TeamTwoScore = (int)item.TeamTwoScore,
                    MatchStarted = (bool)item.MatchStarted,
                    MatchEnded   = (bool)item.MatchEnded,
                    MatchPaused  = (bool)item.MatchPaused,
                    TeamOne      = teamOne,
                    TeamTwo      = teamTwo
                };
                result.Add(allTeams);
            }
            return(result);
        }