/// <summary>
        /// Požádá datovou vrstvu o úpravu existujícího záznamu zobrazené publikace podle zadaných vstupních dat.
        /// </summary>
        /// <param name="sender">původce události</param>
        /// <param name="e">data události</param>
        private void editPublicationButton_Click(object sender, RoutedEventArgs e)
        {
            // validace zadaných dat
            PublicationData publicationData = getValidPublicationData("Byly zadány neplatné nové údaje pro publikaci:");

            // zrušení akce v případě neplatných dat
            if (publicationData == null)
            {
                return;
            }

            try
            {
                // požadavek obsluhy příslušného formuláře pro daný typ publikace na úpravu existujícího záznamu
                currentBibliographyForm.EditPublication(originalPublication.Id,
                                                        publicationData.Publication, publicationData.Authors, publicationData.SpecificPublication);
                PerformedPublicationAction = PublicationAction.Update;
            }
            catch (DbEntityValidationException ex)
            {
                MessageBox.Show("Chyba při editaci záznamu publikace v databázi: " + ex.Message,
                                "Chyba v databázi", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            DialogResult = true;
            Close();
        }
        /// <summary>
        /// Požádá datovou vrstvu o vložení nového záznamu publikace se zadanými vstupními daty.
        /// </summary>
        /// <param name="sender">původce události</param>
        /// <param name="e">data události</param>
        private void insertPublicationButton_Click(object sender, RoutedEventArgs e)
        {
            // validace zadaných dat
            PublicationData publicationData = getValidPublicationData("Byly zadány neplatné údaje pro novou publikaci:");

            // zrušení akce v případě neplatných dat
            if (publicationData == null)
            {
                return;
            }

            try
            {
                // požadavek obsluhy příslušného formuláře pro zvolený typ publikace na vložení nového záznamu
                currentBibliographyForm.InsertPublication(
                    publicationData.Publication, publicationData.Authors, publicationData.SpecificPublication);
                PerformedPublicationAction = PublicationAction.Insert;
            }
            catch (DbEntityValidationException ex)
            {
                MessageBox.Show("Chyba při vkládání záznamu publikace do databáze: " + ex.Message,
                                "Chyba v databázi", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            DialogResult = true;
            Close();
        }
        /// <summary>
        /// Požádá datovou vrstvu o odstranění existujícího záznamu zobrazené publikace.
        /// </summary>
        /// <param name="sender">původce události</param>
        /// <param name="e">data události</param>
        private void deletePublicationButton_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show("Opravdu chcete odstranit vybranou publikaci?", "Odstranění publikace",
                                MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.No)
            {
                return;
            }

            try
            {
                // požadavek obsluhy příslušného formuláře pro daný typ publikace na odstranění existujícího záznamu
                currentBibliographyForm.DeletePublication(originalPublication.Id);
                PerformedPublicationAction = PublicationAction.Delete;
            }
            catch (DbEntityValidationException ex)
            {
                MessageBox.Show("Chyba při odstraňování záznamu publikace z databáze: " + ex.Message,
                                "Chyba v databázi", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            DialogResult = true;
            Close();
        }