Esempio n. 1
0
        public async Task <HuntedList> DeleteGuildFromListAsync(string name, int listId)
        {
            HuntedList huntedList = _context.HuntedList
                                    .Include(h => h.HuntedListCharacters)
                                    .ThenInclude(h => h.TibiaCharacter)
                                    .FirstOrDefault(h => h.Id == listId);

            if (huntedList == null)
            {
                return(null);
            }

            var huntedListCharacters = huntedList.HuntedListCharacters
                                       .Where(x => x.TibiaCharacter.GuildName == name)
                                       .ToList();

            if (huntedListCharacters == null)
            {
                return(null);
            }

            foreach (var huntedCharacter in huntedListCharacters)
            {
                huntedList.HuntedListCharacters.Remove(huntedCharacter);
            }

            if (_context.ChangeTracker.HasChanges())
            {
                await _context.SaveChangesAsync();
            }

            return(huntedList);
        }
Esempio n. 2
0
        public async Task <HuntedList> DeleteCharacterFromListAsync(int characterId, int listId)
        {
            HuntedList huntedList = _context.HuntedList
                                    .Include(h => h.HuntedListCharacters)
                                    .FirstOrDefault(h => h.Id == listId);

            if (huntedList == null)
            {
                return(null);
            }

            HuntedListCharacter huntedListCharacter = huntedList.HuntedListCharacters
                                                      .FirstOrDefault(c => c.TibiaCharacterId == characterId);

            if (huntedListCharacter == null)
            {
                return(null);
            }

            huntedList.HuntedListCharacters.Remove(huntedListCharacter);

            await _context.SaveChangesAsync();

            return(huntedList);
        }
Esempio n. 3
0
        public async Task <HuntedList> AddGuildToListAsync(string name, int listId)
        {
            HuntedList huntedList = _context.HuntedList
                                    .Include(x => x.HuntedListCharacters)
                                    .ThenInclude(x => x.TibiaCharacter)
                                    .FirstOrDefault(h => h.Id == listId);

            if (huntedList == null)
            {
                return(null);
            }

            var guildCharacterNames = await _parser.GetCharacterNamesFromGuildAsync(name);

            if (guildCharacterNames == null)
            {
                return(null);
            }

            foreach (var charName in guildCharacterNames)
            {
                var huntedListCharacter = huntedList.HuntedListCharacters
                                          .FirstOrDefault(c => c.TibiaCharacter.Name == charName);
                if (huntedListCharacter == null)
                {
                    TibiaCharacter tibiaCharacter = null;
                    TibiaCharacter charFromDB     = GetCharacterFromDB(charName);
                    if (charFromDB == null)
                    {
                        tibiaCharacter = await _parser.GetTibiaCharacterAsync(charName);
                    }
                    else
                    {
                        tibiaCharacter = charFromDB;
                    }
                    huntedList.HuntedListCharacters.Add(new HuntedListCharacter
                    {
                        HuntedListId     = huntedList.Id,
                        HuntedList       = huntedList,
                        TibiaCharacterId = tibiaCharacter.Id,
                        TibiaCharacter   = tibiaCharacter
                    });
                }
                else
                {
                    continue;
                }
            }

            if (_context.ChangeTracker.HasChanges())
            {
                await _context.SaveChangesAsync();
            }


            return(huntedList);
        }
Esempio n. 4
0
        public async Task <HuntedList> UpdateHuntedListAsync(int id, string name)
        {
            HuntedList huntedList = _context.HuntedList.FirstOrDefault(h => h.Id == id);

            if (huntedList == null)
            {
                return(null);
            }

            huntedList.Name = name;
            _context.HuntedList.Update(huntedList);
            await _context.SaveChangesAsync();

            return(huntedList);
        }