async Task <List <NewsCategory> > GetUsersNewsCategories() { try { var loggedIn = authService.IsLoggedIn(); if (!loggedIn) { return(new List <NewsCategory>()); } var dbResult = await Data.ListAsync <UserInterests>( DefaultPartitions.UserDocuments ); var allNewsCats = new AllNewsCategories(); var userInterests = new List <UserInterests>(); userInterests.AddRange(dbResult.CurrentPage.Items.Select(i => i.DeserializedValue)); while (dbResult.HasNextPage) { await dbResult.GetNextPageAsync(); userInterests.AddRange(dbResult.CurrentPage.Items.Select(i => i.DeserializedValue)); } foreach (var interest in userInterests) { var favoriteCategory = allNewsCats.First(c => c.CategoryName == interest.NewsCategoryName); favoriteCategory.IsFavorite = true; // add the tabs var interestInfo = new InterestSubMessage { Category = favoriteCategory.CategoryName, Title = favoriteCategory.DisplayName }; var msg = new AddInterestTabMessage { InterestInfo = interestInfo }; MessagingCenter.Send(msg, AddInterestTabMessage.AddTabMessage); } return(allNewsCats); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex); return(new List <NewsCategory>()); } }
void AddNewsTab(AddInterestTabMessage msg) { MainThread.BeginInvokeOnMainThread(() => { newsTab.Items.Add(new ShellContent { Content = new NewsCollectionPage { CategoryName = msg.InterestInfo.Category }, Title = msg.InterestInfo.Title }); }); }
async Task GetInitialTabLayout() { var dataService = DependencyService.Get <IDataService>(); var displayNewsCategories = (await dataService.GetInterestCategories()); var addMessage = new AddInterestTabMessage { InterestNames = new List <InterestSubMessage>() }; foreach (var item in displayNewsCategories) { addMessage.InterestNames.Add(new InterestSubMessage { Title = item.DisplayName, Category = item.CategoryName }); } MessagingCenter.Send(addMessage, AddInterestTabMessage.AddTabMessage); }
async Task CreateFavorite(NewsCategory newsCategory) { await Data.CreateAsync <UserInterest>(newsCategory.CategoryName, new UserInterest { NewsCategoryName = newsCategory.CategoryName }, DefaultPartitions.UserDocuments); // Tell the App Shell to add a new interest tab var interestInfo = new InterestSubMessage { Category = newsCategory.CategoryName, Title = newsCategory.DisplayName }; var msg = new AddInterestTabMessage { InterestInfo = interestInfo }; MessagingCenter.Send(msg, AddInterestTabMessage.AddTabMessage); }