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; }
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(); } }
public bool IsTagSet(ProjectCollectionTag tag) { return(_tagIds?.ContainsKey(tag.Id) ?? false); }