Exemple #1
0
        public void UpdateRating(DynamicListData <User> users, Action onFinish)
        {
            /* TODO reativar ranking AppController */

            UserDialogs.Instance.ShowLoading(AppResources.LoadingRanking);

            var parameters = new KinveyDownloadListParameters(KinveyDownloadCountType.FirstPage,
                                                              QueryBuilder.Instance.GetRankingKinveyQuery());

            var requestTask = new DownloadUsersBackgroundTask(AppModel.Instance.Users, parameters);

            requestTask.ContinueWith((task, result) =>
            {
                UserDialogs.Instance.HideLoading();

                if (result == null)
                {
                    AppProvider.PopUpFactory.ShowMessage(AppResources.FailedServer, AppResources.Error);
                }
                else
                {
                    users.ClearData();
                    users.UpdateData(result);

                    Device.BeginInvokeOnMainThread(onFinish);
                }
            });
            _backgroundWorkers[AppBackgroundWorkerType.DownloadRanking].Add(requestTask);
        }
        public void UpdateProfileData(UserModel userModel, bool downloadConnections = true, Action onFinish = null)
        {
            UserDialogs.Instance.ShowLoading(AppResources.LoadingHistory);

            //download user profile

            var downloadProfileTask = new DownloadUsersBackgroundTask(null, new KinveyDownloadListParameters(KinveyDownloadCountType.FirstPage,
                                                                                                             QueryBuilder.Instance.GetUserByEmailKinveyQuery(userModel.User.Email)));

            downloadProfileTask.ContinueWith((profileTask, profileResult) =>
            {
                if (profileResult == null)
                {
                    UserDialogs.Instance.HideLoading();
                    AppProvider.PopUpFactory.ShowMessage(AppResources.FailedServer, AppResources.Error);
                }
                else
                {
                    userModel.UpdateUser(profileResult[0]); //points, score, etc
                                                            //UserDialogs.Instance.HideLoading();

                    var downloadBadges = new DownloadBadgesTypesBackgroundTask();
                    downloadBadges.ContinueWith((badgesTask, badgesResult) =>
                    {
                        if (badgesResult == null)
                        {
                            UserDialogs.Instance.HideLoading();
                            AppProvider.PopUpFactory.ShowMessage(AppResources.FailedServer, AppResources.Error);
                        }
                        else
                        {
                            var downloadBadgesByUserTask = new DownloadBadgesByUserBackgroundTask(userModel.BadgeActions, userModel.User.Id);
                            downloadBadgesByUserTask.ContinueWith((badgesUserTask, badgesUserResult) =>
                            {
                                UserDialogs.Instance.HideLoading();

                                if (badgesUserResult == null)
                                {
                                    AppProvider.PopUpFactory.ShowMessage(AppResources.FailedServer, AppResources.Error);
                                }
                                /* TODO - reativar DownloadConnections USERCONTROLLER:UpdateProfileData - validar se necessário*/
                                else if (downloadConnections)
                                {
                                    DownloadConnections(onFinish: onFinish);
                                }
                                else
                                {
                                    Device.BeginInvokeOnMainThread(onFinish);
                                }
                            });
                            _backgroundWorkers[AppBackgroundWorkerType.UserDefault].Add(downloadBadgesByUserTask);
                        }
                    });
                    _backgroundWorkers[AppBackgroundWorkerType.UserDefault].Add(downloadBadges);
                }
            });

            _backgroundWorkers[AppBackgroundWorkerType.UserDefault].Add(downloadProfileTask);
        }
Exemple #3
0
        public void DownloadAllUsers(Action onFinish = null)
        {
            var parameters = new KinveyDownloadListParameters(KinveyDownloadCountType.All,
                                                              QueryBuilder.Instance.GetUsersSortByNameKinveyQuery());

            var downloadAllUsersTask = new DownloadUsersBackgroundTask(AppModel.Instance.Users,
                                                                       parameters);

            downloadAllUsersTask.ContinueWith((task, result) => Device.BeginInvokeOnMainThread(onFinish));

            _backgroundWorkers[AppBackgroundWorkerType.DownloadUsers].Add(downloadAllUsersTask);
        }
Exemple #4
0
        public void SearchUsers(DynamicListData <User> dataModel, string pattern, Action onFinish)
        {
            String searchPatern = FirstCharToUpper(pattern);
            //TODO reativar Search user AppController
            var parameters = new KinveyDownloadListParameters(KinveyDownloadCountType.All,
                                                              QueryBuilder.Instance.GetSearchUsersKinveyQuery(searchPatern));

            var searchTask = new DownloadUsersBackgroundTask(dataModel, parameters);

            searchTask.ContinueWith((task, result) =>
            {
                Device.BeginInvokeOnMainThread(onFinish);
                if (result == null)
                {
                    AppProvider.PopUpFactory.ShowMessage(AppResources.FailedServer, AppResources.Error);
                }
            });
            _backgroundWorkers[AppBackgroundWorkerType.SearchUsers].Add(searchTask);
        }