Ejemplo n.º 1
0
 private void UpdateTagsBox(ITagsDBReadByLanguage tagsRead)
 {
     tagsBox.BeginUpdate();
     tagsBox.Items.Clear();
     if (m_SelectedCategoryId >= 0)
     {
         m_Tags = tagsRead.GetAllTags(m_SelectedCategoryId);
     }
     else
     {
         IList <TagInfoForLanguage> allTags = tagsRead.GetAllTags();
         m_Tags = new List <TagForLanguage>(allTags.Count);
         foreach (TagInfoForLanguage tagInfo in allTags)
         {
             m_Tags.Add(new TagForLanguage()
             {
                 Name = tagInfo.Name, Id = tagInfo.Id
             });
         }
     }
     foreach (TagForLanguage tag in m_Tags)
     {
         tagsBox.Items.Add(tag.Name);
         if (m_SelectedTags.Contains(tag.Id))
         {
             tagsBox.SetItemCheckState(tagsBox.Items.Count - 1, CheckState.Checked);
         }
     }
     tagsBox.EndUpdate();
 }
Ejemplo n.º 2
0
 private void UpdateTagsBox(ITagsDBReadByLanguage tagsRead)
 {
     tagsBox.BeginUpdate();
     tagsBox.Items.Clear();
     if (m_SelectedCategoryId >= 0)
     {
         m_Tags = tagsRead.GetAllTags(m_SelectedCategoryId);
     }
     else
     {
         IList <TagInfoForLanguage> allTags = tagsRead.GetAllTags();
         m_Tags = new List <TagForLanguage>(allTags.Count);
         foreach (TagInfoForLanguage tagInfo in allTags)
         {
             m_Tags.Add(new TagForLanguage()
             {
                 Name = tagInfo.Name, Id = tagInfo.Id
             });
         }
     }
     try
     {
         var readIf = Ares.Tags.TagsModule.GetTagsDB().ReadInterface;
         foreach (TagForLanguage tag in m_Tags)
         {
             tagsBox.Items.Add(tag.Name);
             if (m_Files != null && m_Files.Count > 0)
             {
                 HashSet <int> tagsSet = new HashSet <int>();
                 tagsSet.Add(tag.Id);
                 var  files           = readIf.GetAllFilesWithAnyTag(tagsSet);
                 bool allFilesHaveTag = true;
                 bool anyFileHasTag   = false;
                 foreach (String file in m_Files)
                 {
                     if (files.Contains(file, StringComparer.InvariantCultureIgnoreCase))
                     {
                         anyFileHasTag = true;
                         if (!allFilesHaveTag)
                         {
                             break;
                         }
                     }
                     else
                     {
                         allFilesHaveTag = false;
                         if (anyFileHasTag)
                         {
                             break;
                         }
                     }
                 }
                 if (anyFileHasTag)
                 {
                     tagsBox.SetItemCheckState(tagsBox.Items.Count - 1, allFilesHaveTag ? CheckState.Checked : CheckState.Indeterminate);
                 }
             }
         }
     }
     catch (Ares.Tags.TagsDbException ex)
     {
         MessageBox.Show(this, String.Format(StringResources.TagsDbError, ex.Message), StringResources.Ares, MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     tagsBox.EndUpdate();
 }