Exemple #1
0
        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)));
 }