/// <summary> /// Posts ladder stats to account id. /// </summary> /// <param name="statPost">Model containing account id and ladder stats collection.</param> /// <returns>Success or failure.</returns> public async Task <bool> PostLadderStats(StatPostDTO statPost) { bool result = false; try { if (_settings.SimulatedMode) { var account = await GetAccountById(statPost.AccountId); if (account == null) { return(false); } account.AccountWideStats = statPost.Stats; result = true; } else { result = (await PostDbAsync($"Stats/postStats", JsonConvert.SerializeObject(statPost))).IsSuccessStatusCode; } } catch (Exception e) { Logger.Error(e); } return(result); }
public async Task <dynamic> postStats([FromBody] StatPostDTO statData) { DateTime modifiedDt = DateTime.UtcNow; List <AccountStat> playerStats = db.AccountStat.Where(s => s.AccountId == statData.AccountId).OrderBy(s => s.StatId).Select(s => s).ToList(); int badStats = playerStats.Where(s => s.StatValue < 0).Count(); if (badStats > 0) { return(BadRequest("Found a negative stat in array. Can't have those!")); } foreach (AccountStat pStat in playerStats) { int newValue = statData.stats[pStat.StatId - 1]; pStat.ModifiedDt = modifiedDt; pStat.StatValue = newValue; db.AccountStat.Attach(pStat); db.Entry(pStat).State = Microsoft.EntityFrameworkCore.EntityState.Modified; } db.SaveChanges(); return(Ok()); }