예제 #1
0
        public void DownloadFavouriteEvents()
        {
            var task = new DownloadFavouriteEventsBackgroundTask(AppModel.Instance.CurrentUser.User,
                                                                 AppModel.Instance.CurrentUser.FavouriteActions);

            _backgroundWorkers[AppBackgroundWorkerType.UserDownloadFavouriteEvents].Add(task);
        }
예제 #2
0
        public void AddEventToFavourites(EventData eventData)
        {
            if (AppModel.Instance.CurrentUser == null)
            {
                AppProvider.PopUpFactory.ShowMessage(AppResources.LoginFirstMessage, AppResources.Warning);
                return;
            }

            UserDialogs.Instance.ShowLoading(AppResources.LoadingFavouriteActions);
            FavouriteEventData favData = AppModel.Instance.CurrentUser.FavouriteActions.Items.Find(temp => temp.EventId.Equals(eventData.Id));

            if (favData != null)
            {
                string query = QueryBuilder.Instance.GetDeleteFavEventsKinveyQuery(favData.Id);
                var    deleteFavEventTask = new DeleteDataBackgroundTask <FavouriteEventData>(AppModel.Instance.CurrentUser.FavouriteActions, favData, query);
                deleteFavEventTask.ContinueWith((task, result) => UserDialogs.Instance.HideLoading());
                _backgroundWorkers[AppBackgroundWorkerType.UserPostData].Add(deleteFavEventTask);
            }
            else
            {
                var getIsFavouriteEventTask = new DownloadFavouriteEventsBackgroundTask(eventData.Id, AppModel.Instance.CurrentUser.User.Id,
                                                                                        AppModel.Instance.CurrentUser.FavouriteActions);

                getIsFavouriteEventTask.ContinueWith((resultIsFavTask, isFavResult) =>
                {
                    if (isFavResult.Count > 0)
                    {
                        UserDialogs.Instance.HideLoading();
                        AppProvider.PopUpFactory.ShowMessage(AppResources.AlreadyLikePostMessage, string.Empty);

                        string query           = QueryBuilder.Instance.GetDeleteFavEventsKinveyQuery(favData.Id);
                        var deleteFavEventTask = new DeleteDataBackgroundTask <FavouriteEventData>(AppModel.Instance.CurrentUser.FavouriteActions, favData, query);
                        deleteFavEventTask.ContinueWith((task, result) => UserDialogs.Instance.HideLoading());
                        _backgroundWorkers[AppBackgroundWorkerType.UserPostData].Add(deleteFavEventTask);
                    }
                    else
                    {
                        var addToFavouriteTask = new PostFavouriteEventBackgroundTask(AppModel.Instance.CurrentUser.User, eventData,
                                                                                      AppModel.Instance.CurrentUser.FavouriteActions);

                        addToFavouriteTask.ContinueWith((task, result) =>
                        {
                            UserDialogs.Instance.HideLoading();
                            if (result == null)
                            {
                                AppProvider.PopUpFactory.ShowMessage(AppResources.FailedServer, AppResources.Error);
                            }
                            else
                            {
                                UserDialogs.Instance.ShowSuccess(AppResources.SuccessfullFavAdd, 1);
                            }
                        });
                        _backgroundWorkers[AppBackgroundWorkerType.UserPostData].Add(addToFavouriteTask);
                    }
                });
                _backgroundWorkers[AppBackgroundWorkerType.UserPostData].Add(getIsFavouriteEventTask);
            }
        }