// PUT: /ExerciseItemUserScores(5)
        /// <summary>
        /// Support for updating Knowledge items
        /// </summary>
        public async Task <IActionResult> Put([FromODataUri] int key, [FromBody] ExerciseItemUserScore update)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (key != update.ID)
            {
                return(BadRequest());
            }

            var coll = await _context.ExerciseItemUserScores
                       .SingleOrDefaultAsync(x => x.ID == key);

            if (coll == null)
            {
                return(NotFound());
            }
            coll.UpdateData(update);

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                throw;
            }

            return(Updated(update));
        }
        public async Task <IActionResult> Post([FromBody] ExerciseItemUserScore score)
        {
            if (!ModelState.IsValid)
            {
                foreach (var value in ModelState.Values)
                {
                    foreach (var err in value.Errors)
                    {
                        System.Diagnostics.Debug.WriteLine(err.Exception?.Message);
                    }
                }

                return(BadRequest());
            }

            if (score.TakenDate == null)
            {
                score.TakenDate = DateTime.Now;
            }

            var scorecnt = (from dbscore in this._context.ExerciseItemUserScores
                            where dbscore.User == score.User && dbscore.RefID == score.RefID &&
                            dbscore.TakenDate.Value.Date == score.TakenDate.Value.Date
                            select dbscore).Count();

            if (scorecnt > 0)
            {
                return(BadRequest("Same record exists"));
            }

            _context.ExerciseItemUserScores.Add(score);
            await _context.SaveChangesAsync();

            return(Created(score));
        }
Ejemplo n.º 3
0
        public void TestCase_ExerciseItemUserScore_UpdateData()
        {
            var score = new ExerciseItemUserScore();

            score.ID    = 1;
            score.RefID = 2;
            score.Score = 100;
            score.User  = "******";

            Assert.Throws <InvalidOperationException>(() => score.UpdateData(null));

            var score2 = new ExerciseItemUserScore();

            score2.UpdateData(score);

            Assert.Equal(score2.Score, score.Score);
        }