/// <summary> /// Požádá o vygenerování BibTeX záznamu publikace a tento záznam vypíše. /// </summary> public void PrintBibtexEntry() { Publication publication = publicationModel.GetPublicationById(publicationId); PublicationType publicationType = PublicationType.GetTypeByName( publicationTypes, publication.Type); publicationType.Dialog.PrintSpecificBibtexEntry(publication); }
/// <summary> /// Požádá o vygenerování citace publikace podle ISO normy a tuto citaci vypíše. /// </summary> public void PrintIsoCitation() { Publication publication = publicationModel.GetPublicationById(publicationId); PublicationType publicationType = PublicationType.GetTypeByName( publicationTypes, publication.Type); publicationType.Dialog.PrintSpecificIsoCitation(publication); }
/// <summary> /// Po potvrzení požádá o odstranění publikace. /// </summary> public void DeletePublication() { if (!ReadYesNoAnswer("Opravdu chcete publikaci s ID {0} odstranit?")) { return; } Publication publication = publicationModel.GetPublicationById(publicationId); PublicationType publicationType = PublicationType.GetTypeByName( publicationTypes, publication.Type); publicationType.Dialog.DeleteSpecificBibliography(publicationId); WriteLine("Publikace s ID {0} byla úspěšně odstraněna.", publicationId); ExitMenu(); }
/// <summary> /// Přijme a vypíše bibliografické údaje o publikaci. /// </summary> public void GetBibliography() { Publication publication = publicationModel.GetPublicationById(publicationId); WriteLine("--- Výpis údajů publikace s ID {0} ---", publicationId); WriteLine("Klíč pro uložení BibTeX záznamu: " + publication.Entry); Write("Autoři: "); WriteAuthors(publication.Author); WriteLine("Název publikace: " + publication.Title); WriteLine("Rok vydání: " + publication.Year); PublicationType publicationType = PublicationType.GetTypeByName( publicationTypes, publication.Type); WriteLine("Typ publikace: " + publicationType.Description); publicationType.Dialog.GetSpecificBibliography(publication); }
/// <summary> /// Vypíše seznam publikací pokud bylo dokončeno přidávání filtrů. /// </summary> public void PrintFilteredPublicationList() { WriteLine("Seznam publikací:"); WriteLine("ID\tBibTeX klíč\tTyp\tNázev\tRok\tAutoři"); List <Publication> publications = publicationModel.GetPublications( authorFilter, yearFilter, publicationTypeFilter); foreach (Publication publication in publications) { Write($"{publication.Id}\t{publication.Entry}\t{PublicationType.GetTypeByName(publicationTypes, publication.Type).Description}\t{publication.Title}\t{publication.Year}\t"); WriteAuthors(publication.Author); } authorFilter.Clear(); yearFilter.Clear(); publicationTypeFilter.Clear(); }
/// <summary> /// Požádá o vytvoření HTML dokumentu pro umístění publikace na webové stránky. /// </summary> public void PrintHtmlDocument() { Publication publication = publicationModel.GetPublicationById(publicationId); PublicationType publicationType = PublicationType.GetTypeByName( publicationTypes, publication.Type); WriteLine("Zadejte cestu k souboru se šablonou pro vytvoření HTML dokumentu " + "nebo ponechte prázdný řádek pro použití výchozí šablony pro daný typ publikace:"); string templatePath = ReadLine(); WriteLine("Zadejte cestu k výstupnímu souboru exportovaného dokumentu ve formátu HTML " + "nebo ponechte prázdný řádek pro výpis HTML dokumentu na obrazovku:"); string htmlPath = ReadLine(); publicationType.Dialog.PrintSpecificHtmlDocument( publication, templatePath, htmlPath); }
/// <summary> /// Načte od uživatele nové bibliografické údaje o publikaci a zažádá o úpravu údajů v záznamu. /// </summary> public void UpdateBibliography() { Publication publication = new Publication(); WriteLine("Zadejte nový název BibTeX záznamu publikace:"); string entry = ReadLine().Trim(); if (!string.IsNullOrEmpty(entry)) { publication.Entry = entry; } List <Author> authors = null; if (ReadYesNoAnswer("Chcete nastavit nový seznam autorů?")) { WriteLine("Zadejte křestní jméno nového autora NEBO " + "číslo představující ID již použitého autora:"); authors = ReadAuthorList(authorModel, "Zadejte křestní jméno dalšího nového autora NEBO " + "číslo představující ID již použitého autora NEBO " + "potvrďte hotový seznam autorů klávesou ENTER (tj. vložením prázdného řádku):", "Zadejte příjmení nového autora:"); } WriteLine("Zadejte nový skutečný název publikace:"); string title = ReadLine().Trim(); if (!string.IsNullOrEmpty(title)) { publication.Title = title; } WriteLine("Zadejte nový rok vydání publikace:"); int year; if (int.TryParse(ReadLine(), out year)) { publication.Year = year; } if (ReadYesNoAnswer("Chcete upravit text publikace?")) { WriteLine("Zadejte cestu k textovému souboru publikace pro import textu " + "nebo prázdný řádek pro zadání z konzole: (pouze pro testovací účely)"); string path = ReadLine().Trim(); if (string.IsNullOrEmpty(path)) { WriteLine("Vložte text publikace: (\\n pro nový řádek)"); publication.Text = ReadLine().Replace("\\n", Environment.NewLine);; } else { using (var reader = new StreamReader(path)) { publication.Text = reader.ReadToEnd(); } } } // předání načítání údajů dialogu pro zvolený typ publikace PublicationType.GetTypeByName(publicationTypes, publicationModel.GetPublicationById(publicationId).Type) .Dialog.UpdateSpecificBibliography(publicationId, publication, authors); WriteLine("Publikace s ID {0} byla úspěšně upravena.", publicationId); }