public int CountHigherScores(string gameName, int score) { var stopWatch = Stopwatch.StartNew(); var scores = m_dataStorage.CountHigherScores(gameName, score); stopWatch.Stop(); m_logger.Info(string.Format("{0} CountHigherScores: Call took {1} Ms", m_dataStorage.GetType(), stopWatch.ElapsedMilliseconds)); return(scores); }
public ScoreboardModule(IDataStorage dataStorage, ICryptation cryptation, ILogFactory logger) : base("/api/v1") { StaticConfiguration.DisableErrorTraces = false; m_dataStorage = dataStorage; m_cryptation = cryptation; m_logger = logger.GetLogger(GetType()); Get["/ping"] = parameters => { var response = (Response)"pong"; response.StatusCode = HttpStatusCode.OK; return response; }; Post["/addScoreBoardData"] = parameters => { try { var scoreBoardData = this.Bind<ScoreRecord>(); int createdId = m_dataStorage.AddScoreRecordToStorage(scoreBoardData); var response = Response.AsJson(createdId); response.StatusCode = HttpStatusCode.Created; return response; } catch (Exception e) { m_logger.Error(e.Message, e); var response = (Response)e.ToString(); response.StatusCode = HttpStatusCode.BadRequest; return response; } }; Get["/gameScoreBoard"] = parameters => { string gameNameFromQuery = Request.Query["gameName"]; string numberOfRecords = Request.Query["count"]; int count; if (int.TryParse(numberOfRecords, out count)) { try { return Response.AsJson(m_dataStorage.GetScoresForGame(gameNameFromQuery, count)); } catch (Exception e) { m_logger.Error(e.Message, e); var response = (Response)e.ToString(); response.StatusCode = HttpStatusCode.BadRequest; return response; } } return Response.AsJson(m_dataStorage.GetAllScoresForGame(gameNameFromQuery)); }; Get["/countHigherScores"] = parameters => { string gameNameFromQuery = Request.Query["gameName"]; string scoreFromQuery = Request.Query["score"]; int count; if (int.TryParse(scoreFromQuery, out count)) { try { return Response.AsJson(m_dataStorage.CountHigherScores(gameNameFromQuery, count)); } catch (Exception e) { m_logger.Error(e.Message, e); var response = (Response)e.ToString(); response.StatusCode = HttpStatusCode.BadRequest; return response; } } return Response.AsJson(m_dataStorage.GetAllScoresForGame(gameNameFromQuery)); }; Get["/playerScoreBoard"] = parameters => { try { string playerNameFromQuery = Request.Query["playerName"]; return Response.AsJson(m_dataStorage.GetAllScoresForUsername(playerNameFromQuery)); } catch (Exception e) { m_logger.Error(e.Message, e); var response = (Response)e.ToString(); response.StatusCode = HttpStatusCode.BadRequest; return response; } }; Get["/gameNames"] = parameters => { try { return Response.AsJson(m_dataStorage.GetAllGameNames()); } catch (Exception e) { m_logger.Error(e.Message, e); var response = (Response)e.ToString(); response.StatusCode = HttpStatusCode.BadRequest; return response; } }; }
public ScoreboardModule(IDataStorage dataStorage, ICryptation cryptation, ILogFactory logger) : base("/api/v1") { StaticConfiguration.DisableErrorTraces = false; m_dataStorage = dataStorage; m_cryptation = cryptation; m_logger = logger.GetLogger(GetType()); Get["/ping"] = parameters => { var response = (Response)"pong"; response.StatusCode = HttpStatusCode.OK; return(response); }; Post["/addScoreBoardData"] = parameters => { try { var scoreBoardData = this.Bind <ScoreRecord>(); int createdId = m_dataStorage.AddScoreRecordToStorage(scoreBoardData); var response = Response.AsJson(createdId); response.StatusCode = HttpStatusCode.Created; return(response); } catch (Exception e) { m_logger.Error(e.Message, e); var response = (Response)e.ToString(); response.StatusCode = HttpStatusCode.BadRequest; return(response); } }; Get["/gameScoreBoard"] = parameters => { string gameNameFromQuery = Request.Query["gameName"]; string numberOfRecords = Request.Query["count"]; int count; if (int.TryParse(numberOfRecords, out count)) { try { return(Response.AsJson(m_dataStorage.GetScoresForGame(gameNameFromQuery, count))); } catch (Exception e) { m_logger.Error(e.Message, e); var response = (Response)e.ToString(); response.StatusCode = HttpStatusCode.BadRequest; return(response); } } return(Response.AsJson(m_dataStorage.GetAllScoresForGame(gameNameFromQuery))); }; Get["/countHigherScores"] = parameters => { string gameNameFromQuery = Request.Query["gameName"]; string scoreFromQuery = Request.Query["score"]; int count; if (int.TryParse(scoreFromQuery, out count)) { try { return(Response.AsJson(m_dataStorage.CountHigherScores(gameNameFromQuery, count))); } catch (Exception e) { m_logger.Error(e.Message, e); var response = (Response)e.ToString(); response.StatusCode = HttpStatusCode.BadRequest; return(response); } } return(Response.AsJson(m_dataStorage.GetAllScoresForGame(gameNameFromQuery))); }; Get["/playerScoreBoard"] = parameters => { try { string playerNameFromQuery = Request.Query["playerName"]; return(Response.AsJson(m_dataStorage.GetAllScoresForUsername(playerNameFromQuery))); } catch (Exception e) { m_logger.Error(e.Message, e); var response = (Response)e.ToString(); response.StatusCode = HttpStatusCode.BadRequest; return(response); } }; Get["/gameNames"] = parameters => { try { return(Response.AsJson(m_dataStorage.GetAllGameNames())); } catch (Exception e) { m_logger.Error(e.Message, e); var response = (Response)e.ToString(); response.StatusCode = HttpStatusCode.BadRequest; return(response); } }; }