async public Task <HttpResponseMessage> SavePlayer(GameResultViewModel player) { List <string> errors = new List <string>(); var game = db.games.Where(g => g.GameId == player.GameId).SingleOrDefault(); if (game == null) { errors.Add("No such game found"); } // no errors if (errors.Count == 0) { try { game.Player = player.Player; await db.SaveChangesAsync(); // update cache for top players list foreach (var item in MemoryDB.GetTopPlayers()) { if (item.Value == game.GameId) { item.Key.Name = game.Player; } } return(Request.CreateResponse(HttpStatusCode.Accepted)); } catch { return(Request.CreateResponse(HttpStatusCode.InternalServerError)); } } else { return(Request.CreateResponse <List <string> >(HttpStatusCode.BadRequest, errors)); } }
public IList <TopPlayer> TopPlayers() { return(MemoryDB.GetTopPlayers().Keys); }