public async Task <bool> PushAnimeDetailsToMal(IAnimeDetailsJson details, string username, string password, bool canCache = true) { var useDetails = _jsonMapper.ConvertJsonAnimeDetailsToAnimeDetails(details); bool result; Log.Information("Received request to update {AnimeId} for {username}", details.AnimeId, username); var userlist = await _animeListRetriever.GetAnimeList(username); var item = userlist.Anime.FirstOrDefault(t => t.SeriesId == details.AnimeId); //The item doesn't exists - Use the add new method if (item == null) { result = await UpdateAnimeDetails(useDetails, username, password, canCache); Log.Information("Added {AnimeId} for {username}", details.AnimeId, username); } else { result = await UpdateAnimeDetails(useDetails, username, password, canCache, true); if (result) { Log.Information("Updated {AnimeId} for {username}", details.AnimeId, username); } else { Log.Warning("Update of {AnimeId} for {username} failed", details.AnimeId, username); } } return(result); }