// загрузка Авторов для правки
 private void loadAuthorsFromFB2Files()
 {
     foreach (FB2ItemInfo Info in m_AuthorFB2InfoList)
     {
         if (Info.FictionBook != null)
         {
             IList <Author> AuthorsList = Info.FictionBook.TIAuthors;
             if (AuthorsList != null)
             {
                 foreach (Author a in AuthorsList)
                 {
                     if (a != null)
                     {
                         if (!WorksWithBooks.authorIsExist(AuthorsListView, a))
                         {
                             ListViewItem lvi = new ListViewItem("");
                             if (a.LastName != null)
                             {
                                 lvi.Text = !string.IsNullOrEmpty(a.LastName.Value) ? a.LastName.Value : string.Empty;
                             }
                             if (a.FirstName != null)
                             {
                                 lvi.SubItems.Add(!string.IsNullOrEmpty(a.FirstName.Value) ? a.FirstName.Value : string.Empty);
                             }
                             else
                             {
                                 lvi.SubItems.Add(string.Empty);
                             }
                             if (a.MiddleName != null)
                             {
                                 lvi.SubItems.Add(!string.IsNullOrEmpty(a.MiddleName.Value) ? a.MiddleName.Value : string.Empty);
                             }
                             else
                             {
                                 lvi.SubItems.Add(string.Empty);
                             }
                             if (a.NickName != null)
                             {
                                 lvi.SubItems.Add(!string.IsNullOrEmpty(a.NickName.Value) ? a.NickName.Value : string.Empty);
                             }
                             else
                             {
                                 lvi.SubItems.Add(string.Empty);
                             }
                             if (a.HomePages != null)
                             {
                                 lvi.SubItems.Add(StringProcessing.makeStringFromListItems(a.HomePages));
                             }
                             else
                             {
                                 lvi.SubItems.Add(string.Empty);
                             }
                             if (a.Emails != null)
                             {
                                 lvi.SubItems.Add(StringProcessing.makeStringFromListItems(a.Emails));
                             }
                             else
                             {
                                 lvi.SubItems.Add(string.Empty);
                             }
                             lvi.SubItems.Add(!string.IsNullOrEmpty(a.ID) ? a.ID : string.Empty);
                             AuthorsListView.Items.Add(lvi);
                         }
                     }
                 }
             }
         }
     }
 }
Exemple #2
0
        // Добавить к создаваемому файлу суффикс из {Переводчик}[Издательство](FB2 Автор)
        public static string GetTranslatorPublisherFB2AuthorExt(FictionBook fb2, SortingOptions sortOptions)
        {
            if (!sortOptions.IsNeedSuffixTranslator && !sortOptions.IsNeedSuffixPublisher && !sortOptions.IsNeedSuffixFB2Author)
            {
                return(string.Empty);
            }

            string Suffix         = string.Empty;
            string TranslatorName = null;
            string BookPublisher  = null;
            string FB2Autor       = null;

            if (sortOptions.IsNeedSuffixTranslator)
            {
                IList <Author> TranslatorList = fb2.TITranslators;
                if (TranslatorList != null && TranslatorList.Count > 0)
                {
                    Author Translator = TranslatorList[0];
                    if (Translator != null)
                    {
                        if (Translator.LastName != null)
                        {
                            if (Translator.LastName.Value != null)
                            {
                                TranslatorName = Translator.LastName.Value.Trim();
                            }
                        }
                        // если фамилия автора нет, то используем его nickname
                        if (string.IsNullOrEmpty(TranslatorName))
                        {
                            if (Translator.NickName != null)
                            {
                                if (Translator.NickName.Value != null)
                                {
                                    TranslatorName = Translator.NickName.Value.Trim();
                                }
                            }
                        }
                    }
                }
            }

            if (sortOptions.IsNeedSuffixPublisher)
            {
                Publisher PIBookPublisher = fb2.PIPublisher;
                if (PIBookPublisher != null)
                {
                    if (PIBookPublisher.Value != null)
                    {
                        BookPublisher = PIBookPublisher.Value.Trim();
                    }
                }
            }

            if (sortOptions.IsNeedSuffixFB2Author)
            {
                IList <Author> FB2AutorList = fb2.DIAuthors;
                if (FB2AutorList != null && FB2AutorList.Count > 0)
                {
                    Author DIFB2Autor = FB2AutorList[0];
                    if (DIFB2Autor != null)
                    {
                        if (DIFB2Autor.LastName != null)
                        {
                            if (DIFB2Autor.LastName.Value != null)
                            {
                                FB2Autor = DIFB2Autor.LastName.Value.Trim();
                            }
                        }
                        // если фамилия fb2 автора нет, то используем его nickname
                        if (string.IsNullOrEmpty(FB2Autor))
                        {
                            if (DIFB2Autor.NickName != null)
                            {
                                if (DIFB2Autor.NickName.Value != null)
                                {
                                    FB2Autor = DIFB2Autor.NickName.Value.Trim();
                                }
                            }
                        }
                    }
                }
            }

            // генерация суффикса
            if (!string.IsNullOrEmpty(TranslatorName))
            {
                Suffix = "{" + TranslatorName + "}";
            }

            if (!string.IsNullOrEmpty(BookPublisher))
            {
                Suffix += "[" + StringProcessing.makeString(BookPublisher.Trim(), Convert.ToInt16(sortOptions.MaxPublisherLenght)) + "]";
            }

            if (!string.IsNullOrEmpty(FB2Autor))
            {
                Suffix += "(" + FB2Autor + ")";
            }

            return(Suffix);
        }