Example #1
0
        public async Task <IActionResult> GetClubPlayers([FromRoute] int clubId, [FromQuery] PlayerFilterCriteria filterCriteria)
        {
            filterCriteria.ClubId = clubId;
            var players = await _membersService.GetPlayers(filterCriteria);

            return(Json(players));
        }
Example #2
0
        private bool Filter(Member p, PlayerFilterCriteria filterCriteria, DateTime now)
        {
            var years = p.DateOfBirth.HasValue ?
                        (DateTime.MinValue + (now - p.DateOfBirth.Value)).Year - 1
                : 0;

            return(p.Height >= filterCriteria.MinHeight &&
                   p.Height <= filterCriteria.MaxHeight &&
                   p.Weight >= filterCriteria.MinWeight &&
                   p.Weight <= filterCriteria.MaxWeight &&
                   years >= filterCriteria.MinAge &&
                   years <= filterCriteria.MaxAge);
        }
Example #3
0
        public async Task <IEnumerable <PlayerFilterResult> > GetPlayersByCriteria(PlayerFilterCriteria filterCriteria)
        {
            IdentityRole playerRole = await GetMemberRole(r => r.Name == Role.Player.ToString());

            IQueryable <Member> players = _dbContext
                                          .Members
                                          .Include(m => m.IdentityUser)
                                          .ThenInclude(u => u.Roles)
                                          .Include(m => m.MemberPositions);

            players = players.Where(m => m.IdentityUser.Roles.Any(r => r.RoleId == playerRole.Id));
            if (filterCriteria.ClubId.HasValue)
            {
                players = players.Include(p => p.Club).Where(p => p.Club.Id == filterCriteria.ClubId.Value);
            }
            else
            {
                players = players.Include(p => p.Club).Where(p => p.Club == null);
            }

            if (!string.IsNullOrWhiteSpace(filterCriteria.Name))
            {
                players = players.Where(p =>
                                        p.FirstName.StartsWith(filterCriteria.Name, StringComparison.OrdinalIgnoreCase) ||
                                        p.LastName.StartsWith(filterCriteria.Name, StringComparison.OrdinalIgnoreCase));
            }

            var now = DateTime.Now;

            players = players.Where(p => Filter(p, filterCriteria, now));

            if (filterCriteria.Position != 0)
            {
                players = players.Where(p => p.MemberPositions.Any(mp => mp.Position.Name == filterCriteria.Position.ToString()));
            }

            return(players.Select(p => new PlayerFilterResult
            {
                Id = p.Id,
                ClubId = filterCriteria.ClubId,
                FirstName = p.FirstName,
                Height = p.Height,
                LastName = p.LastName,
                Weight = p.Weight,
                PositionId = p.MemberPositions.First().PostitionId,
                Thumbnail = p.PhotoThumbnailPath,
                DateOfBirth = p.DateOfBirth
            }));
        }
Example #4
0
        public async Task <IEnumerable <PlayerFilterResult> > GetPlayers(PlayerFilterCriteria filterCriteria)
        {
            var players = (await _membersRepository.GetPlayersByCriteria(filterCriteria)).ToList();

            if (players.Any())
            {
                foreach (var player in players)
                {
                    var positionName = _membersRepository.GetPositionById(player.PositionId).Name;
                    var position     = (PlayerPosition?)Enum.Parse(typeof(PlayerPosition),
                                                                   positionName, true);
                    player.PreferedPosition = position;
                    byte[] imageArray = File.ReadAllBytes(player.Thumbnail);
                    string base64ImageRepresentation = Convert.ToBase64String(imageArray);
                    player.Thumbnail = base64ImageRepresentation;
                }
            }

            return(players);
        }
Example #5
0
        public async Task <IActionResult> GetPlayers([FromQuery] PlayerFilterCriteria filterCriteria)
        {
            IEnumerable <PlayerFilterResult> players = await _membersService.GetPlayers(filterCriteria);

            return(Json(players));
        }