private static async Task OppdaterEloRatinger(BekkSjakkRepository repo, PartiDao parti) { var hvitTask = repo.HentBekkerPåId(parti.SpillerHvitId); var svartTask = repo.HentBekkerPåId(parti.SpillerSvartId); await Task.WhenAll(hvitTask, svartTask); var hvitBekker = hvitTask.Result; var svartBekker = svartTask.Result; if (!hvitBekker.HarVerdi || !svartBekker.HarVerdi) { throw new Exception("Klarte ikkje å oppdatere ratingar"); } var nyeElo = Elo.FinnNyeEloRatinger(hvitBekker.Verdi, svartBekker.Verdi, parti.Resultat); hvitBekker.Verdi.Elo = nyeElo.Item1; svartBekker.Verdi.Elo = nyeElo.Item2; var oppdaterTask1 = repo.OppdaterBekker(hvitBekker.Verdi); var oppdaterTask2 = repo.OppdaterBekker(svartBekker.Verdi); await Task.WhenAll(oppdaterTask1, oppdaterTask2); }
private static async Task <HttpResponseMessage> BekkerGet(HttpRequestMessage req, TraceWriter log) { log.Info("[GET Bekker] ble kalt"); var repo = new BekkSjakkRepository(); var parameters = req.GetQueryNameValuePairs().ToList(); string navn = parameters.FirstOrDefault(q => q.Key == "navn").Value; if (!string.IsNullOrEmpty(navn)) { return(HentBekkerRespons(req, await repo.HentBekkerPåNavn(navn))); } string idString = parameters.FirstOrDefault(q => q.Key == "id").Value; int id; if (!string.IsNullOrEmpty(idString) && int.TryParse(idString, out id)) { return(HentBekkerRespons(req, await repo.HentBekkerPåId(id))); } return(req.CreateResponse(HttpStatusCode.BadRequest)); }