private static async Task <HttpResponseMessage> PartiPost(HttpRequestMessage req, TraceWriter log) { log.Info("[POST Parti] ble kalt"); var repo = new BekkSjakkRepository(); dynamic data = await req.Content.ReadAsAsync <object>(); if (data == null) { return(req.CreateResponse(HttpStatusCode.BadRequest)); } var hvitSpillerId = (int)data.hvitId; var svartSpillerId = (int)data.svartId; var dato = (DateTimeOffset)data.dato; var resultat = (PartiResultat)Enum.Parse(typeof(PartiResultat), (string)data.resultat); var pgn = (string)data.pgn; var partiDao = new PartiDao(hvitSpillerId, svartSpillerId, dato, resultat, pgn); var suksess = await repo.LeggTilParti(partiDao); await OppdaterEloRatinger(repo, partiDao); var statusCode = suksess ? HttpStatusCode.OK : HttpStatusCode.BadRequest; return(req.CreateResponse(statusCode)); }
private static async Task <HttpResponseMessage> PartiGet(HttpRequestMessage req, TraceWriter log) { log.Info("[GET Parti] ble kalt"); var repo = new BekkSjakkRepository(); string partiIdString = req.GetQueryNameValuePairs() .FirstOrDefault(q => q.Key == "id").Value; if (string.IsNullOrEmpty(partiIdString)) { return(req.CreateResponse(HttpStatusCode.BadRequest)); } int partiId = int.Parse(partiIdString); var parti = await repo.HentParti(partiId); if (parti.HarVerdi) { return(req.CreateResponse(HttpStatusCode.OK, parti.Verdi, "application/json")); } else { return(req.CreateResponse(HttpStatusCode.NotFound)); } }
public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequestMessage req, TraceWriter log) { log.Info("[GET Bekkere] ble kalt"); var repo = new BekkSjakkRepository(); List <Models.Bekker> bekkere = await repo.HentBekkere(); return(req.CreateResponse(HttpStatusCode.OK, bekkere, "application/json")); }
private static async Task <HttpResponseMessage> PartiGet(HttpRequestMessage req, TraceWriter log) { log.Info("[GET Partier] ble kalt"); var repo = new BekkSjakkRepository(); var parti = await repo.HentPartier(); return(req.CreateResponse(HttpStatusCode.OK, parti, "application/json")); }
private static async Task <HttpResponseMessage> BekkerPost(HttpRequestMessage req, TraceWriter log) { log.Info("[POST Bekker] ble kalt"); var repo = new BekkSjakkRepository(); dynamic data = await req.Content.ReadAsAsync <object>(); var bekkerNavn = (string)data?.navn; if (bekkerNavn != null) { var suksess = await repo.LeggTilBekker(new Bekker(bekkerNavn)); if (suksess) { return(req.CreateResponse(HttpStatusCode.Created)); } } return(req.CreateResponse(HttpStatusCode.BadRequest)); }
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)); }