private async void HandleSearchMessage(string searchingContent) { IsNoDecks = false; IsDeckSelected = false; if (await CheckInternetConnection()) { List <Deck> searchList; DecksCollection.Clear(); _favouriteDecks.Clear(); SearchMessageVisibility = false; IsDataLoading = true; try { if (_accountService.IsUserLoggedIn()) { searchList = await _restService.GetAllDecks(true, false, true, searchingContent); IsUser = true; } else { searchList = await _restService.GetAllDecks(false, false, true, searchingContent); IsUser = false; } if (searchList != null && searchList.Count > 0) { searchList.Sort((x, y) => DateTime.Compare(y.CreationDate, x.CreationDate)); searchList.ForEach(x => DecksCollection.Add(x)); if (IsUser) { _favouriteDecks = _favouriteService.GetFavouriteDecks(); CheckIfDeckIsFavourite(); } IsDataLoading = false; } } catch (Exception ex) { Messenger.Default.Send <MessageToMessageBoxControl>(new MessageToMessageBoxControl(true, false, true, false, ex.Message)); } finally { IsDataLoading = false; if (DecksCollection != null && DecksCollection.Count == 0) { SearchMessageVisibility = true; } } } }
private async void InitializeDecksCollection() { if (await CheckInternetConnection() && _accountService.IsUserLoggedIn()) { IsUser = true; _favouriteDecks.Clear(); _favouriteDecks = _favouriteService.GetFavouriteDecks(); List <Deck> _deckLists = new List <Deck>(); IsDataLoading = true; try { if (_decksType == DecksType.PublicDecks) { Messenger.Default.Send <MessageToMenuControl>(new MessageToMenuControl(true, false)); _deckLists = await _restService.GetDecks(); } else if (_decksType == DecksType.Favourite) { _deckLists = await _restService.GetDecks(); List <Deck> _deckList2 = await _restService.GetUserDecks(); if (_deckList2 != null) { _deckLists = _deckLists.Union(_deckList2).ToList(); } if (_deckLists != null && _favouriteDecks != null) { _favouriteDecks.Sort((x, y) => DateTime.Compare(y.ViewModel.AddToFavouriteDecksDate, x.ViewModel.AddToFavouriteDecksDate)); foreach (Deck deck in _favouriteDecks) { Deck favouriteDeck = _deckLists.Where(x => x.ID == deck.ID).FirstOrDefault(); if (favouriteDeck != null) { favouriteDeck.ViewModel.IsFavourite = true; favouriteDeck.ViewModel.AddToFavouriteDecksDate = deck.ViewModel.AddToFavouriteDecksDate; DecksCollection.Add(favouriteDeck); } } } } else { Messenger.Default.Send <MessageToMenuControl>(new MessageToMenuControl(false, false)); _deckLists = await _restService.GetUserDecks(); } if (_deckLists != null && _decksType != DecksType.Favourite) { _deckLists.Sort((x, y) => string.Compare(x.Name, y.Name)); _deckLists.ForEach(x => DecksCollection.Add(x)); CheckIfDeckIsFavourite(); } } catch (Exception ex) { Messenger.Default.Send <MessageToMessageBoxControl>(new MessageToMessageBoxControl(true, false, true, false, ex.Message)); } finally { if (DecksCollection != null && DecksCollection.Count == 0) { IsNoDecks = true; } IsDataLoading = false; } } }