/// <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); }
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); }
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); }
/// <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); }
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()); }
/// <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); }
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)); }