public IEnumerable <PlayerStat> GetPlayers() { var _playerStats = new List <PlayerStat>(); using (var context = new StatsDataModel()) { _playerStats = context.Stats.OrderByDescending(s => s.Score).Take(4).ToList(); } return(_playerStats); }
public static ProfileViewModel GetProfile(string forumUsername) { PlayerStat stats; using (var context = new StatsDataModel()) { stats = context.Stats.FirstOrDefault(p => p.ForumUsername.ToLower() == forumUsername.ToLower()); } if (stats == null) { return(null); } string lastInventory; bool lastAlive; string lastServer; using (var context = new PlayerDataModel()) { var characters = context.Players.Where(p => p.PlayerUID == stats.PUID).OrderByDescending(d => d.Datestamp).Select(p => p).ToList(); lastInventory = characters.Select(i => i.Inventory).FirstOrDefault(); lastAlive = characters.Select(p => p.Alive == 1).FirstOrDefault(); lastServer = characters.Select(p => p.OriginDB).FirstOrDefault(); } var inventory = new Inventory(lastInventory); return(new ProfileViewModel() { Player = stats, LastCharacter = new LastPlayedCharacter() { Inventory = inventory, Alive = lastAlive, Server = lastServer } }); }
public static PlayerIndexViewModel GetPlayerIndex(string searchString, string sortOrder, int page, int pageSize) { var timer = new Stopwatch(); timer.Start(); var players = new List <PlayerStat>(); using (var repository = new StatsDataModel()) { if (!String.IsNullOrEmpty(searchString)) { players = repository.Stats.Where(p => p.ForumUsername.ToUpper().Contains(searchString.ToUpper()) || p.Name.ToUpper().Contains(searchString.ToUpper()) || p.PUID.ToString(CultureInfo.InvariantCulture) == searchString || p.GUID.ToString(CultureInfo.InvariantCulture) == searchString).ToList(); } else { players = repository.Stats.ToList(); } } #region sort cases switch (sortOrder.ToLower()) { case "humankills": players = players.OrderBy(s => s.KillsH).ToList(); break; case "humankills_desc": players = players.OrderByDescending(s => s.KillsH).ToList(); break; case "banditkills": players = players.OrderBy(s => s.KillsB).ToList(); break; case "banditkills_desc": players = players.OrderByDescending(s => s.KillsB).ToList(); break; case "zombiekills": players = players.OrderBy(s => s.KillsZ).ToList(); break; case "zombiekills_desc": players = players.OrderByDescending(s => s.KillsZ).ToList(); break; case "deaths": players = players.OrderBy(s => s.Deaths).ToList(); break; case "deaths_desc": players = players.OrderByDescending(s => s.Deaths).ToList(); break; case "distance": players = players.OrderBy(s => s.DistanceMeter).ToList(); break; case "distance_desc": players = players.OrderByDescending(s => s.DistanceMeter).ToList(); break; case "score": players = players.OrderBy(s => s.Score).ToList(); break; case "tplayed": players = players.OrderBy(s => s.Playtime).ToList(); break; case "tplayed_desc": players = players.OrderByDescending(s => s.Playtime).ToList(); break; default: players = players.OrderByDescending(s => s.Score).ToList(); break; } #endregion // we should always round pageCount up to the nearest int int pageCount = (players.Count + pageSize - 1) / pageSize; int totalPlayers = players.Count; var pagedList = players.ToPagedList(page, pageSize); timer.Stop(); var ts = timer.Elapsed; return(new PlayerIndexViewModel() { CurrentPage = page, PageCount = pageCount, PlayerIndex = pagedList, TotalPlayers = totalPlayers, GeneratedIn = ts.TotalSeconds }); }