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