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 })); }