コード例 #1
0
        /// <summary>
        /// Update a given characterStat in the database
        /// </summary>
        /// <param name="id">Id of characterStat to be updated</param>
        /// <param name="characterStat">CharacterStatDTO information for update</param>
        /// <returns>Successful result of specified updated characterStat</returns>
        public async Task <CharacterStatDTO> Update(CharacterStatDTO characterStatDTO)
        {
            CharacterStat characterStat = new CharacterStat()
            {
                CharacterId = characterStatDTO.CharacterId,
                StatId      = characterStatDTO.StatId,
                Level       = characterStatDTO.Level
            };

            _context.Entry(characterStat).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            characterStatDTO.Stat = await _stat.GetStat(characterStatDTO.StatId);

            return(characterStatDTO);
        }
コード例 #2
0
        public async Task CanUpdateCharacterStat()
        {
            CharacterStatDTO newCharacterStat = new CharacterStatDTO()
            {
                CharacterId = 1,
                StatId      = 1,
                Level       = 10
            };
            var repo = BuildRepo();

            await repo.Update(newCharacterStat);

            var result = await repo.GetCharacterStat(1, 1);

            Assert.Equal(newCharacterStat.Level, result.Level);
        }
コード例 #3
0
        public async Task CanSaveCharacterStat()
        {
            CharacterStatDTO newCharacterStat = new CharacterStatDTO()
            {
                CharacterId = 1,
                StatId      = 3,
                Level       = 8
            };
            var repo = BuildRepo();

            var saved = await repo.Create(newCharacterStat);

            var result = await repo.GetCharacterStat(1, 3);

            Assert.NotNull(result);
            Assert.Equal(saved.Level, result.Level);
        }
コード例 #4
0
        /// <summary>
        /// Get a specific characterStat in the database by ID
        /// </summary>
        /// <param name="id">Id of characterStat to search for</param>
        /// <returns>Successful result of specified characterStat</returns>
        public async Task <CharacterStatDTO> GetCharacterStat(int charId, int statId)
        {
            var result = await _context.StatSheet.Where(x => x.CharacterId == charId && x.StatId == statId).Include(x => x.Stat).Include(x => x.Character).FirstOrDefaultAsync();

            CharacterStatDTO resultDTO = new CharacterStatDTO()
            {
                CharacterId = result.CharacterId,
                StatId      = result.StatId,
                Stat        = new StatDTO()
                {
                    Name = result.Stat.Name,
                    Id   = result.Stat.Id
                },
                Level = result.Level
            };

            return(resultDTO);
        }
コード例 #5
0
        public async Task <IActionResult> PutCharacterStat(int charId, int statId, CharacterStatDTO characterStat)
        {
            if (!ValidateUser(User, _character, charId))
            {
                return(BadRequest("You do not have access to this account"));
            }

            if (statId != characterStat.StatId || charId != characterStat.CharacterId)
            {
                return(BadRequest());
            }

            await _characterStat.Update(characterStat);

            await _log.CreateLog(HttpContext, User.FindFirst("UserName").Value);

            return(NoContent());
        }
コード例 #6
0
        /// <summary>
        /// Get a list of all characterStats in the database
        /// </summary>
        /// <returns>Successful result with list of characterStats</returns>
        public async Task <List <CharacterStatDTO> > GetCharacterStats(int id)
        {
            List <CharacterStat> result = await _context.StatSheet.Where(x => x.CharacterId == id).Include(x => x.Stat).ToListAsync();

            List <CharacterStatDTO> resultDTO = new List <CharacterStatDTO>();

            foreach (var item in result)
            {
                CharacterStatDTO newDTO = new CharacterStatDTO()
                {
                    CharacterId = item.CharacterId,
                    StatId      = item.StatId,
                    Stat        = new StatDTO()
                    {
                        Name = item.Stat.Name,
                        Id   = item.Stat.Id
                    },
                    Level = item.Level
                };
                resultDTO.Add(newDTO);
            }
            return(resultDTO);
        }
コード例 #7
0
        public async Task <ActionResult <CharacterStat> > PostCharacterStat(int charId, CharacterStatDTO characterStat)
        {
            if (!ValidateUser(User, _character, charId))
            {
                return(BadRequest("You do not have access to this account"));
            }

            await _characterStat.Create(characterStat);

            await _log.CreateLog(HttpContext, User.FindFirst("UserName").Value);

            return(CreatedAtAction("GetCharacterStat", new { id = characterStat.StatId }, characterStat));
        }