using System.Collections; using System.Collections.Generic; namespace VberZero.Workflow.Persistence { public class ExecutionPointerCollection : ICollection { private readonly Dictionary _dictionary; public ExecutionPointerCollection() { _dictionary = new Dictionary(); } public ExecutionPointerCollection(int capacity) { _dictionary = new Dictionary(capacity); } public IEnumerator GetEnumerator() { return _dictionary.Values.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } public WorkflowExecutionPointerInfo FindById(string id) { if (!_dictionary.ContainsKey(id)) return null; return _dictionary[id]; } public void Add(WorkflowExecutionPointerInfo item) { _dictionary.Add(item.Id, item); } public void Clear() { _dictionary.Clear(); } public bool Contains(WorkflowExecutionPointerInfo item) { return _dictionary.ContainsValue(item); } public void CopyTo(WorkflowExecutionPointerInfo[] array, int arrayIndex) { _dictionary.Values.CopyTo(array, arrayIndex); } public bool Remove(WorkflowExecutionPointerInfo item) { return _dictionary.Remove(item.Id); } public int Count => _dictionary.Count; public bool IsReadOnly => false; } }