//**************************************************** // Method: OpenCourseWorkBtn_Click // // Purpose: Opens file chooser dialog, deserializes JSON data using CouseWork.dll and populates // controls on the front end with said data. //**************************************************** private void OpenCourseWorkBtn_Click(object sender, RoutedEventArgs e) { string filename = ""; OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Multiselect = false; openFileDialog.Filter = "JSON files (*.json)|*.json"; openFileDialog.InitialDirectory = Directory.GetCurrentDirectory(); openFileDialog.Title = "Open Course Work From JSON"; if (openFileDialog.ShowDialog() == true) { filename = openFileDialog.FileName; CourseWorkFilenameTb.Text = filename; } else { return; } try { CategoriesListView.Items.Clear(); AssignmentsListView.Items.Clear(); SubmissionsListView.Items.Clear(); FileStream fileStream; DataContractJsonSerializer serializerJSON; fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read); serializerJSON = new DataContractJsonSerializer(typeof(CourseWork.CourseWork)); cw = (CourseWork.CourseWork)serializerJSON.ReadObject(fileStream); CourseNameTb.Text = cw.CourseName; OverallGradeTb.Text = Math.Round(cw.CalculateGrade(), 2).ToString(); foreach (Category c in cw.Categories) { CategoriesListView.Items.Add(c); } foreach (Assignment a in cw.Assignments) { AssignmentsListView.Items.Add(a); } foreach (Submission s in cw.Submissions) { SubmissionsListView.Items.Add(s); } TargetAssignmentTb.Clear(); AssignmentNameTb.Clear(); CategoryNameTb.Clear(); GradeTb.Clear(); } catch { MessageBoxResult result = MessageBox.Show("Error parsing JSON file.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }