Пример #1
0
        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);
            }
        }
Пример #2
0
 private void SetAsViewModel(string filename, PageEntryModel model)
 {
     CurrentFileName = filename;
     _viewModel      = new PageEntryViewModel();
     _viewModel.Load(model);
     DataContext = _viewModel;
 }
Пример #3
0
        private void LoadFileAt(string filename)
        {
            PageEntryModel model;

            if (File.Exists(filename))
            {
                model = Serializer.Deserialize(filename);
            }
            else
            {
                model = new PageEntryModel();
            }

            SetAsViewModel(filename, model);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }