public async Task <ServiceResponse <GetCharacterDTO> > Create(AddCharacterSpellDTO spell) { var response = new ServiceResponse <GetCharacterDTO>(); var character = await this.context.Characters .Include(c => c.Weapon) .Include(c => c.CharacterSpells).ThenInclude(cs => cs.Spell) .FirstOrDefaultAsync(c => c.Id == spell.CharacterId && c.User.Id == GetUserID()); if (character != null) { var s = await context.Spells.FirstOrDefaultAsync(s => s.Id == spell.SpellId); if (s != null) { var cs = this.mapper.Map <CharacterSpell>(spell); cs.Character = character; await context.CharacterSpells.AddAsync(cs); await context.SaveChangesAsync(); response.Data = this.mapper.Map <GetCharacterDTO>(character); } else { response.Message = "Spell not found"; response.Success = false; } } else { response.Message = "Character not found"; response.Success = false; } return(response); }
public async Task <IActionResult> Create(AddCharacterSpellDTO spell) { return(Ok(await this.characterSpellService.Create(spell))); }