private void OkClick(object sender, RoutedEventArgs e)
 {
     // Удаляем удалённые тэги
     for (var i = _original.Count - 1; i >= 0; i--)
     {
         var origTag = _original[i];
         if (_localCopy.All(t => t.Id != origTag.Id))
         {
             _original.Remove(origTag);
         }
     }
     // Заменяем или добавляем новые тэги
     foreach (var tag in _localCopy)
     {
         var found = _original.FirstOrDefault(t => t.Id == tag.Id);
         if (found == null)
         {
             found = new ProjectCollectionTag {
                 Id = tag.Id
             };
             _original.Add(found);
         }
         found.Name  = tag.Name;
         found.Color = tag.Color;
     }
     DialogResult = true;
 }
示例#2
0
 public void SetTag(ProjectCollectionTag tag, bool isChecked)
 {
     if (isChecked)
     {
         if (_tagIds == null)
         {
             _tagIds = new Dictionary <int, ProjectCollectionTag>();
         }
         _tagIds.Add(tag.Id, tag);
     }
     else
     {
         var curTag = _tagIds.FirstOrDefault(t => t.Value == tag);
         _tagIds.Remove(curTag.Key);
     }
     if (_tagIds != null)
     {
         var tagStrs = (from t in _tagIds
                        select t.Key.ToString()).ToArray();
         var tagStr = string.Join(";", tagStrs);
         if (Project != null)
         {
             Project.Tags = tagStr;
         }
         ShowTags();
     }
 }
示例#3
0
 public bool IsTagSet(ProjectCollectionTag tag)
 {
     return(_tagIds?.ContainsKey(tag.Id) ?? false);
 }