public void ReturnsPlayersSortParams() { // Arrange -> Act var sort = new PlayersSortParams(); // Assert Assert.IsAssignableFrom <PlayersSortParams>(sort); }
public void ReturnsDefaults() { // Arrange var sort = new PlayersSortParams(); // Act sort.AddDefaults(); // Assert Assert.Equal(new[] { "-entries", "display_name", "id" }, sort); }
public void PropertyIsValid_AddsProperty(string property) { // Arrange var sort = new PlayersSortParams(); // Act sort.Add(property); // Assert Assert.Equal(property, sort.Last()); }
public void PropertyIsInvalid_ThrowsArgumentException() { // Arrange var sort = new PlayersSortParams(); var property = "myInvalidProperty"; // Act -> Assert var ex = Assert.Throws <ArgumentException>(() => { sort.Add(property); }); Assert.Null(ex.ParamName); }
public async Task <IHttpActionResult> GetPlayers( PlayersPagination pagination, PlayersSortParams sort, string q = null, CancellationToken cancellationToken = default) { IQueryable <Player> query = db.Players.AsNoTracking(); // Filtering if (q != null) { query = query.Where(p => p.Name.StartsWith(q)); } // Sorting query = query.OrderBy(SortKeySelectorMap, sort); var total = await query.CountAsync(cancellationToken); var players = await(from p in query select new PlayerDTO { Id = p.SteamId.ToString(), UpdatedAt = p.LastUpdate, DisplayName = p.Name, Avatar = p.Avatar, }) .Page(pagination) .ToListAsync(cancellationToken); var content = new PlayersEnvelope { Total = total, Players = players, }; return(Ok(content)); }