public async Task RefreshAsync() { Surveys?.Clear(); try { // Get all the files that match *.survey.json var fileHelper = new FileHelper(); var files = await fileHelper.GetFilesAsync(); var surveyFiles = files.Where(f => f.EndsWith(".survey.json")); var managers = new List <MySurveysItemViewModel>(); foreach (var surveyFile in surveyFiles) { // Clean up surveys older than maximum age. var lastModified = await fileHelper.LastModifiedAsync(surveyFile); if (DateTime.Now - lastModified > s_maxAge) { await fileHelper.DeleteAsync(surveyFile); } else { var manager = new MySurveysItemViewModel(surveyFile); manager.Deleted += ResponseDeleted; await manager.LoadAsync(); managers.Add(manager); } } // Sort the surveys from most recently saved to least recently saved managers.Sort((x, y) => - CompareDateTime(x.LastModified, y.LastModified)); Surveys = new ObservableCollection <MySurveysItemViewModel>(managers); } catch (Exception ex) { DependencyService.Get <IMetricsManagerService>().TrackException("MySurveysRefreshAsyncFailed", ex); await App.DisplayAlertAsync( "My Surveys Refresh Failed", "Failed to refresh stored surveys, please try again.", "OK"); } }