/// <summary> /// Получеение открытого файла. /// </summary> /// <returns>Коллекцию</returns> public static ProjectVm OpenFile() { var dialog = new OpenFileDialog { FileName = "ListOfTasks", DefaultExt = ".xml", Filter = "(*.xml, *.csv)|*.xml;*.csv" }; var result = dialog.ShowDialog(); if (result != true) return null; var tasks = ReadTasksFromFile(dialog.FileName); if (tasks == null) { return null; } var projectVm = new ProjectVm { ListOfTasks = tasks }; ConfigHelper.UpdateLastProject(new Project(dialog.FileName)); return projectVm; }
public MainWindow() { InitializeComponent(); var filePath = ConfigHelper.GetLastSavedProject(); var projectVm = new ProjectVm(); if (!string.IsNullOrEmpty(filePath)) { var tasks = XmlWorker.ReadTasksFromFile(filePath); if (tasks != null) { projectVm.ListOfTasks = tasks; UpdateTitle(); } } DataContext = projectVm; Closing += OnWindowClosing; }
/// <summary> /// Метод сохранения проекта. /// </summary> /// <param name="projectVm">Проект для сохранения.</param> /// <param name="filePath">Путь для сохранения.</param> public static void SaveProject(ProjectVm projectVm, string filePath) { // Лишняя подстраховка не помешает. if (projectVm.ListOfTasks == null || projectVm.ListOfTasks.Count == 0) { throw new Exception("Не удалось сохранить проект. Пожалуйста, свяжитесь с разработчиком."); } var xmlSerializer = new XmlSerializer(typeof (ObservableCollection<Task>)); using (TextWriter writer = new StreamWriter(filePath, false)) { xmlSerializer.Serialize(writer, projectVm.ListOfTasks); } ConfigHelper.UpdateLastProject(new Project(filePath)); }