public static void GetAuthenticatedUserMods(Action <List <ModProfile> > onSuccess, Action <WebRequestError> onError) { List <int> cachedModIds = CacheClient.LoadAuthenticatedUserMods(); if (cachedModIds != null) { ModManager.GetModProfiles(cachedModIds, onSuccess, onError); } else { RequestFilter userModsFilter = new RequestFilter(); userModsFilter.fieldFilters[GetUserModFilterFields.gameId] = new EqualToFilter <int>() { filterValue = APIClient.gameId }; Action <List <ModProfile> > onGetMods = (modProfiles) => { CacheClient.SaveModProfiles(modProfiles); List <int> modIds = new List <int>(modProfiles.Count); foreach (ModProfile profile in modProfiles) { modIds.Add(profile.id); } CacheClient.SaveAuthenticatedUserMods(modIds); if (onSuccess != null) { onSuccess(modProfiles); } }; // - Get All Events - ModManager.FetchAllResultsForQuery <ModProfile>((p, s, e) => APIClient.GetUserMods(userModsFilter, p, s, e), onGetMods, onError); } }