Exemplo n.º 1
0
        // В конструкторе получаем ссылку на списк книг из главной формы
        public BookNodeForm(BookStore bk)
        {
            InitializeComponent();
            _bk = bk;

            // Устанавливаем текстовые поля с датой и ценой по умолчанию
            textBoxPrice.Text = "0";
            textBoxYear.Text  = DateTime.Today.Year.ToString();
        }
Exemplo n.º 2
0
        public static void SaveXml(BookStore bk, string fileName)
        {
            // передаем в конструктор тип класса
            XmlSerializer writer = new XmlSerializer(typeof(BookStore));

            // получаем поток, куда будем записывать сериализованный объект
            FileStream   sw   = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite);
            StreamWriter file = new StreamWriter(sw);

            writer.Serialize(file, bk);
            file.Close();
        }
Exemplo n.º 3
0
        // Открытие XML файла
        private void ButtonOpenXML_Click(object sender, EventArgs e)
        {
            // Если в документе были не сохраненные изменения
            if (_isDocumentChanged)
            {
                // Спрашиваем пользователя
                if (MessageBox.Show($"Вы не сохранили изменения в текущем файле! Все равно открыть новый?", "Уведомление!",
                                    MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                {
                    return;
                }
            }

            OpenFileDialog openFileDlg = new OpenFileDialog();

            openFileDlg.Filter = "XML files (*.xml)|*.xml";
            if (openFileDlg.ShowDialog() == DialogResult.OK)
            {
                // Пробуем открыть xml файл
                try
                {
                    _bs = _controller.OpenXml(openFileDlg.FileName);
                }
                catch (Exception ex)
                {
                    MessageBox.Show($"Ошибка при открытии файла {ex.Message}",
                                    "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                // Чистим таблицу от старых записей
                bookDataGridView.Rows.Clear();
                // Инициализируем таблицу данными из файла
                foreach (Book item in _bs)
                {
                    bookDataGridView.Rows.Add();
                    bookDataGridView["name", bookDataGridView.Rows.Count - 1].Value = item.Title;

                    foreach (var i in item.Authors)
                    {
                        bookDataGridView["author", bookDataGridView.Rows.Count - 1].Value += i;
                    }

                    bookDataGridView["price", bookDataGridView.Rows.Count - 1].Value    = item.Price;
                    bookDataGridView["category", bookDataGridView.Rows.Count - 1].Value = item.Category;
                }
            }
        }