コード例 #1
0
        public async void Init(ForumsTopicNavigationArgs args)
        {
            ViewModelLocator.ForumsMain.CurrentBackNavRegistrar = this;
            if (LoadingTopic)
            {
                return;
            }

            LoadingTopic = true;
            _prevArgs    = args;
            Messages?.Clear();
            AvailablePages?.Clear();

            ToggleWatchingButtonText = "Toggle watching";
            CurrentTopicData         = await ForumTopicQueries.GetTopicData(_prevArgs.TopicId, _prevArgs.TopicPage, _prevArgs.LastPost, _prevArgs.MessageId);

            CurrentPage = _prevArgs.LastPost ? CurrentTopicData.AllPages : CurrentTopicData.CurrentPage;
            ViewModelLocator.GeneralMain.CurrentStatus = $"Forums - {(CurrentTopicData.IsLocked ? "Locked: " : "")}{CurrentTopicData?.Title}";
            Messages = new ObservableCollection <ForumTopicMessageEntryViewModel>(
                CurrentTopicData.Messages.Select(
                    entry => new ForumTopicMessageEntryViewModel(entry)));

            if (_prevArgs.FirstVisibleItemIndex != null)
            {
                RequestScroll?.Invoke(this, _prevArgs.FirstVisibleItemIndex.Value);
            }
            else if (_prevArgs.LastPost)
            {
                RequestScroll?.Invoke(this, Messages.Count - 1);
            }
            else if (CurrentTopicData.TargetMessageId != null /*|| (_prevArgs.MessageId != null && _prevArgs.MessageId != -1)*/)
            {
                //var index = _prevArgs.MessageId != null && _prevArgs.MessageId != -1 ? _prevArgs.MessageId.ToString() : CurrentTopicData.T
                RequestScroll?.Invoke(this, Messages.IndexOf(Messages.First(model => model.Data.Id == CurrentTopicData.TargetMessageId)));
            }

            var watched = _handyDataStorage.WatchedTopics.StoredItems.FirstOrDefault(model => model.Id == CurrentTopicData.Id);

            if (watched != null)
            {
                _isWatched         = true;
                watched.OnCooldown = false;
                _handyDataStorage.WatchedTopics.SaveData();
            }
            else
            {
                _isWatched = false;
            }
            RaisePropertyChanged(() => IsWatched);


            IsPinned = ViewModelLocator.ForumsMain.PinnedTopics.Any(entry => entry.Id == CurrentTopicData.Id);
            ViewModelLocator.ForumsMain.PinnedTopics.CollectionChanged += PinnedTopicsOnCollectionChanged;
            LoadingTopic = false;
        }
コード例 #2
0
        public async Task GotoPageAsync(AvailablePages page)
        {
            mdPage = (MasterDetailPage)Application.Current.MainPage;

            switch (page)
            {
            case AvailablePages.AddChildPage:
                mdPage.IsPresented = false;
                var AddChild = new AddChildPage();
                await mdPage.Detail.Navigation.PushAsync(AddChild);

                break;

            case AvailablePages.MainPage:
                Application.Current.Properties.Clear();
                await PopToRoot();

                Application.Current.MainPage = new NavigationPage(new MainPage())
                {
                    BarBackgroundColor = Color.FromHex("#016A6F"),
                };
                break;

            case AvailablePages.VaccineInfoPage:
                mdPage.IsPresented = false;
                PopupPage vacInfoPopUp = new VaccineInfoPage();
                await PopupNavigation.PushAsync(vacInfoPopUp);

                break;

            case AvailablePages.SettingsPage:
                mdPage.IsPresented = false;
                var SettingsPage = new SettingsPage();
                await mdPage.Detail.Navigation.PushAsync(SettingsPage);

                break;

            case AvailablePages.HistorikPage:
                mdPage.IsPresented = false;
                PopupPage HistorikPopup = new HistorikPage();
                await PopupNavigation.PushAsync(HistorikPopup);

                break;

            default:
                await App.Current.MainPage.DisplayAlert("Error", "Noget gik galt", "ok");

                break;
            }
        }
コード例 #3
0
        public bool Equals(PostSearchResponse input)
        {
            if (input == null)
            {
                return(false);
            }

            return
                ((
                     RelatedPosts == input.RelatedPosts ||
                     (RelatedPosts != null && RelatedPosts.SequenceEqual(input.RelatedPosts))
                     ) &&
                 (
                     Authors == input.Authors ||
                     (Authors != null && Authors.SequenceEqual(input.Authors))
                 ) &&
                 (
                     Groups == input.Groups ||
                     (Groups != null && Groups.SequenceEqual(input.Groups))
                 ) &&
                 (
                     SearchedTags == input.SearchedTags ||
                     (SearchedTags != null && SearchedTags.SequenceEqual(input.SearchedTags))
                 ) &&
                 (
                     Polls == input.Polls ||
                     (Polls != null && Polls.SequenceEqual(input.Polls))
                 ) &&
                 (
                     RecruitmentDetails == input.RecruitmentDetails ||
                     (RecruitmentDetails != null && RecruitmentDetails.SequenceEqual(input.RecruitmentDetails))
                 ) &&
                 (
                     AvailablePages == input.AvailablePages ||
                     (AvailablePages.Equals(input.AvailablePages))
                 ) &&
                 (
                     Results == input.Results ||
                     (Results != null && Results.SequenceEqual(input.Results))
                 ) &&
                 (
                     TotalResults == input.TotalResults ||
                     (TotalResults.Equals(input.TotalResults))
                 ) &&
                 (
                     HasMore == input.HasMore ||
                     (HasMore != null && HasMore.Equals(input.HasMore))
                 ) &&
                 (
                     Query == input.Query ||
                     (Query != null && Query.Equals(input.Query))
                 ) &&
                 (
                     ReplacementContinuationToken == input.ReplacementContinuationToken ||
                     (ReplacementContinuationToken != null && ReplacementContinuationToken.Equals(input.ReplacementContinuationToken))
                 ) &&
                 (
                     UseTotalResults == input.UseTotalResults ||
                     (UseTotalResults != null && UseTotalResults.Equals(input.UseTotalResults))
                 ));
        }