예제 #1
0
        private async void EditSelectedItem()
        {
            if (_selectedItem != null)
            {
                DependencyService.Get <IMetricsManagerService>().TrackEvent("MySurveysLoadOnlyEdit");
                await _selectedItem.EditAsync();

                SelectedItem = null;
            }
        }
예제 #2
0
        private void ResponseDeleted(object sender, EventArgs args)
        {
            var item = (MySurveysItemViewModel)sender;

            if (item == SelectedItem)
            {
                SelectedItem = null;
            }

            Surveys.Remove(item);
        }
예제 #3
0
        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");
            }
        }