コード例 #1
0
ファイル: ModManager.cs プロジェクト: Caker-wxj/modioUNITY
        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);
            }
        }