/// <summary> /// Deletes a remfile and associated viewmodel. /// </summary> /// <param name="remFileViewModel">The associated viewmodel to the remFile model</param> /// <returns>Task completed</returns> private async Task DeleteRemFile(RemFileViewModel remFileViewModel) { RemFiles.Remove(remFileViewModel); var remFile = await _remFileStore.GetRemFile(remFileViewModel.Id); await _remFileStore.DeleteRemFile(remFile); }
/// <summary> /// Creates new empty remFile with viewmodel, navigates to DetailPage. /// </summary> /// <returns>Task completed</returns> private async Task AddRemFile() { var viewModel = new RemFileDetailPageViewModel(new RemFileViewModel(), _remFileStore, _pageService); viewModel.RemFileAdded += (source, remFile) => { RemFiles.Add(new RemFileViewModel(remFile)); }; await this._pageService.PushAsync(new RemFileDetailPage(viewModel)); SelectedRemFile = null; }
/// <summary> /// Loads remFiles from Database, creates viewmodels and fills remFiles observable collection. /// </summary> /// <returns>Task completed</returns> private async Task LoadData() { if (_isDataLoaded) { return; } _isDataLoaded = true; var remfiles = await _remFileStore.GetRemFilesAsync(); foreach (var r in remfiles) { RemFiles.Add(new RemFileViewModel(r)); } }
/// <summary> /// Search command used when textChanged in SearchBar or when user pushes SearchButton. /// Creates a copy of all remFiles which is restored when the search is empty or cancelled. /// </summary> /// <param name="text">Text to search for in title (contains)</param> private void Search(string text) { IEnumerable <RemFileViewModel> searchedRemFiles = null; if (!_isSearchActive) { _remFiles = new List <RemFileViewModel>(RemFiles); } if (String.IsNullOrWhiteSpace(text)) { searchedRemFiles = _remFiles; _isSearchActive = false; } else { searchedRemFiles = _remFiles.Where(r => (r.Title.ToLower() + r.Description.ToLower()).Contains(text.ToLower())); _isSearchActive = true; } RemFiles.Clear(); foreach (var r in searchedRemFiles) { RemFiles.Add(r); } }