Exemple #1
0
        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);
        }
Exemple #2
0
        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));
        }