public override Task OnNavigatedToAsync(INavigationParameters parameters) { var mode = parameters.GetNavigationMode(); if (mode == NavigationMode.New) { Keyword = System.Net.WebUtility.UrlDecode(parameters.GetValue <string>("keyword")); SearchOption = new CommunitySearchPagePayloadContent() { Keyword = Keyword }; } SelectedSearchTarget.Value = SearchOption?.SearchTarget ?? SearchTarget.Community; if (SearchOption == null) { throw new Models.Infrastructure.HohoemaExpception("コミュニティ検索"); } SelectedSearchSort.Value = CommunitySearchSortOptionListItems.FirstOrDefault(x => x.Order == SearchOption.Order && x.Sort == SearchOption.Sort); SelectedSearchMode.Value = CommunitySearchModeOptionListItems.FirstOrDefault(x => x.Mode == SearchOption.Mode); new[] { SelectedSearchSort.ToUnit(), SelectedSearchMode.ToUnit() } .CombineLatest() .Subscribe(async _ => { SearchOption.Sort = SelectedSearchSort.Value.Sort; SearchOption.Order = SelectedSearchSort.Value.Order; SearchOption.Mode = SelectedSearchMode.Value.Mode; ResetList(); }) .AddTo(_NavigatingCompositeDisposable); _searchHistoryRepository.Searched(SearchOption.Keyword, SearchOption.SearchTarget); return(base.OnNavigatedToAsync(parameters)); }
public override void OnNavigatedTo(NavigatedToEventArgs e, Dictionary <string, object> viewModelState) { if (e.Parameter is string) { SearchOption = PagePayloadBase.FromParameterString <CommunitySearchPagePayloadContent>(e.Parameter as string); } SelectedSearchTarget.Value = SearchOption?.SearchTarget ?? SearchTarget.Community; if (SearchOption == null) { throw new Exception("コミュニティ検索"); } SelectedSearchSort.Value = CommunitySearchSortOptionListItems.FirstOrDefault(x => x.Order == SearchOption.Order && x.Sort == SearchOption.Sort); SelectedSearchMode.Value = CommunitySearchModeOptionListItems.FirstOrDefault(x => x.Mode == SearchOption.Mode); new[] { SelectedSearchSort.ToUnit(), SelectedSearchMode.ToUnit() } .CombineLatest() .Subscribe(async _ => { SearchOption.Sort = SelectedSearchSort.Value.Sort; SearchOption.Order = SelectedSearchSort.Value.Order; SearchOption.Mode = SelectedSearchMode.Value.Mode; await ResetList(); RefreshSearchOptionText(); }) .AddTo(_NavigatingCompositeDisposable); Database.SearchHistoryDb.Searched(SearchOption.Keyword, SearchOption.SearchTarget); base.OnNavigatedTo(e, viewModelState); }