Beispiel #1
0
 /// <summary>
 /// Добавить документ в базу данных
 /// </summary>
 /// <param name="book">Документ класса Book</param>
 public void Add(Book book)
 {
     using (var transaction = _session.BeginTransaction())
     {
         _session.Save(book);
         transaction.Commit();
     }
 }
Beispiel #2
0
 public PageOpen(Redactor redactor)
 {
     InitializeComponent();
     _redactor = redactor;
     _redactor.Enabled = false;
     _book = _redactor.Book;
     if (_book == null)
         Close();
 }
Beispiel #3
0
 private void BookListSelectedIndexChanged(object sender, EventArgs e)
 {
     _selectedBook = _books[BookList.SelectedIndex];
     if (_selectedBook == null)
     {
         okButton.Enabled = false;
         deleteButton.Enabled = false;
     }
     okButton.Enabled = true;
     deleteButton.Enabled = true;
 }
Beispiel #4
0
        public void CanAddNewBook()
        {
            var page = new Page { FileName = "test_filename", Number = 1};
            page.AddLine(new Line {Number = 1});
            var book = new Book { Directory = "test", Name = "test"};
            book.AddPage(page);
            var repository = new BookRepository(DbFile);
            repository.Add(book);

            using (var session = _sessionFactory.OpenSession())
            {
                var fromDb = session.Get<Book>(book.UID);

                Assert.IsNotNull(fromDb);
                Assert.AreNotSame(book, fromDb);
                Assert.AreEqual(book.Name, fromDb.Name);
                Assert.AreEqual(book.Directory, fromDb.Directory);
                Assert.AreEqual(book.Pages[0].Number, fromDb.Pages[0].Number);
                Assert.AreEqual(book.Pages[0].FileName, fromDb.Pages[0].FileName);
                Assert.AreEqual(book.Pages[0].Lines[0].Number, fromDb.Pages[0].Lines[0].Number);
            }
        }
Beispiel #5
0
        private void OkClick(object sender, EventArgs e)
        {
            if (BookFolderBox.Text=="" || BookNameBox.Text=="")
            {
                MessageBox.Show(@"Имя документа или папки не может быть пустым", @"Ошибка", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                return;
            }

            var book = new Book {Directory = BookFolderBox.Text, Name = BookNameBox.Text};
            Cursor = Cursors.WaitCursor;

            if (Directory.Exists(book.Directory))
            {
                MessageBox.Show(@"Папка с таким именем уже существует", @"Ошибка", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                Cursor = Cursors.Default;
                return;
            }

            if (_redactor.Repository.GetByName(book.Name)!=null)
            {
                MessageBox.Show(@"Документ с таким именем уже существует", @"Ошибка", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                Cursor = Cursors.Default;
                return;
            }

            Directory.CreateDirectory(book.Directory);

            _redactor.Repository.Add(book);
            _createdBook = _redactor.Repository.GetByName(BookNameBox.Text);

            _redactor.LoadElement(_createdBook);

            Cursor = Cursors.Default;
            _redactor.Enabled = true;
            Close();
        }
Beispiel #6
0
 private bool IsInCollection(Book product, IEnumerable<Book> fromDb)
 {
     return fromDb.Any(item => product.UID == item.UID);
 }
Beispiel #7
0
        private void UpdateElementView(Book book)
        {
            pageListBox.Items.Clear();
            pagesCountLink.Text = book.Pages.Count().ToString();
            documentNameInputBox.Text = Book.Name;

            if (book.Pages != null)
                foreach (var page in book.Pages)
                {
                    var s = page.Number.ToString();
                    if (page.Lines.Count == 0)
                        s += " (Пустая)";
                    else
                        s += String.Format(" (Строк: {0} )", page.Lines.Count);

                    s += String.Format(" [Файл: {0}]", page.FileName);
                    pageListBox.Items.Add(s);
                }
            UpdateHeader();
        }
Beispiel #8
0
 private void ProcessElementChanges(Book book)
 {
     ProcessDocumentChanges();
     UpdateElementView(book);
 }
Beispiel #9
0
        public void LoadElement(Book book)
        {
            Book = book;
            PageMenu.Enabled = true;

            saveBookMenuItem.Enabled = true;
            documentTabControl.Enabled = true;
            documentTabControl.SelectedIndex = 0;

            pageTabPanel.Enabled = true;

            if (book.Pages.Count > 0)
                LoadElement(book.Pages[0]);

            UpdateElementView(book);
        }
Beispiel #10
0
 /// <summary>
 /// Обновить книгу в базе данных
 /// </summary>
 /// <param name="book">Документ класса Book</param>
 public void Update(Book book)
 {
     using (var transaction = _session.BeginTransaction())
     {
         _session.Update(book);
         transaction.Commit();
     }
 }
Beispiel #11
0
 /// <summary>
 /// Удалить книгу из базы данных
 /// </summary>
 /// <param name="book">Документ класса Book</param>
 public void Remove(Book book)
 {
     using (var transaction = _session.BeginTransaction())
     {
         _session.Delete(book);
         transaction.Commit();
     }
 }