Beispiel #1
0
        public Task BindModelAsync(ModelBindingContext bindingContext)
        {
            if (bindingContext == null)
            {
                throw new ArgumentNullException(nameof(bindingContext));
            }
            var formReq = bindingContext.HttpContext.Request.Query;

            var page = new StringValues();

            formReq.TryGetValue("page", out page);
            var limit = new StringValues();

            formReq.TryGetValue("limit", out limit);
            var playerId = new StringValues();

            formReq.TryGetValue("playerId", out playerId);

            var result = new GetTeamsDto()
            {
                page     = Convert.ToInt16(page),
                limit    = Convert.ToInt16(limit),
                playerId = Convert.ToInt16(playerId)
            };

            bindingContext.Result = ModelBindingResult.Success(result);

            return(Task.CompletedTask);
        }
        public JsonResult GetTeams([ModelBinder(typeof(GetTeamsDtoBinder))] GetTeamsDto vm)
        {
            List <Asp.NetCore.Models.DTO.PlayerTeam> records;

            var query = _context.PlayerTeams.Where(pt => pt.PlayerID == vm.playerId).Select(pt => new Asp.NetCore.Models.DTO.PlayerTeam
            {
                ID       = pt.ID,
                PlayerID = pt.PlayerID,
                FromYear = pt.FromYear,
                ToYear   = pt.ToYear,
                Team     = pt.Team,
                Apps     = pt.Apps,
                Goals    = pt.Goals
            });

            int total = query.Count();

            if (vm.page.HasValue && vm.limit.HasValue)
            {
                int start = (vm.page.Value - 1) * vm.limit.Value;
                records = query.OrderBy(pt => pt.FromYear).Skip(start).Take(vm.limit.Value).ToList();
            }
            else
            {
                records = query.ToList();
            }
            return(new JsonResult(new { records, total }));
        }