Esempio n. 1
0
        /// <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;
        }
Esempio n. 3
0
        /// <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));
        }