private void New_Execute(object sender, ExecutedRoutedEventArgs e) { bool shouldSetNewModel = false; if (_viewModel?.Title != null) { var result = MessageBox.Show("Would you like to save your file before creating a new entry?", "Save before new?", MessageBoxButton.YesNoCancel); if (result == MessageBoxResult.Yes && SaveFile() || result == MessageBoxResult.No) { shouldSetNewModel = true; } } else { shouldSetNewModel = true; } if (shouldSetNewModel) { var newModel = new PageEntryModel(); if (_viewModel != null) { newModel.EntryDate = _viewModel.EntryDate; } SetAsViewModel(null, newModel); } }
private void SetAsViewModel(string filename, PageEntryModel model) { CurrentFileName = filename; _viewModel = new PageEntryViewModel(); _viewModel.Load(model); DataContext = _viewModel; }
private void LoadFileAt(string filename) { PageEntryModel model; if (File.Exists(filename)) { model = Serializer.Deserialize(filename); } else { model = new PageEntryModel(); } SetAsViewModel(filename, model); }
public PageEntryModel Save() { var model = new PageEntryModel { Title = Title, Category = Category.DisplayName, Steps = ProcessSteps.Where(s => s.IsPresent).Select(s => s.DisplayName).ToArray(), EntryDate = EntryDate, NextSteps = NextSteps.GetModel(), ItemsAccomplished = ItemsAccomplished.GetModel(), Attended = AttendanceViewModel.GetModel(), Author = AttendanceViewModel.Author?.DisplayName, Sections = Sections.GetModel(), Reflections = Reflections, }; return(model); }
public PageEntryViewModel Load(PageEntryModel model) { Title = model.Title; EntryDate = model.EntryDate ?? DateTime.Now; if (model.Category != null) { model.Category = ModifyCategory(model.Category); Category = Category.AvailableCategories .FirstOrDefault(c => c.DisplayName == model.Category); if (Category == null) { Category = Category.AvailableCategories.FirstOrDefault(c => c.DisplayName == model.Category); } } if (model.Steps != null) { foreach (var step in model.Steps) { var stepVm = FindStep(step); if (stepVm != null) { stepVm.IsPresent = true; } } } ItemsAccomplished.LodeModel(model.ItemsAccomplished); NextSteps.LodeModel(model.NextSteps); Sections.LoadModel(model.Sections); AttendanceViewModel.SetAuthorAndAttendees(model.Author, model.Attended); Reflections = model.Reflections; return(this); }