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