Esempio n. 1
0
        /// <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());
        }