internal void EndDispatch(SwDocument doc) { lock (m_Lock) { m_DocsDispatchQueue.Remove(doc); var index = m_ModelsDispatchQueue.FindIndex(d => m_Comparer.Equals(d, doc.Model)); if (index != -1) { m_Logger.Log($"Removing '{doc.Title}' from the dispatch queue"); m_ModelsDispatchQueue.RemoveAt(index); } if (doc.IsCommitted) { if (doc is SwUnknownDocument) { doc = (SwDocument)(doc as SwUnknownDocument).GetSpecific(); } else { doc.AttachEvents(); } NotifyDispatchedSafe(doc); } if (!m_DocsDispatchQueue.Any()) { DispatchAllModels(); } } }
internal void EndDispatch(SwDocument doc) { lock (m_Lock) { m_DocsDispatchQueue.Remove(doc); var index = m_ModelsDispatchQueue.FindIndex( d => string.Equals(d.Path, doc.Path, StringComparison.CurrentCultureIgnoreCase) || string.Equals(d.Title, doc.Title, StringComparison.CurrentCultureIgnoreCase)); if (index != -1) { m_Logger.Log($"Removing '{doc.Title}' from the dispatch queue", LoggerMessageSeverity_e.Debug); m_ModelsDispatchQueue.RemoveAt(index); } else { m_Logger.Log($"Document '{doc.Title}' is not in the dispatch queue", LoggerMessageSeverity_e.Warning); } if (doc.IsCommitted) { if (doc is SwUnknownDocument) { doc = (SwDocument)(doc as SwUnknownDocument).GetSpecific(); } else { doc.AttachEvents(); } NotifyDispatchedSafe(doc); } if (!m_DocsDispatchQueue.Any()) { DispatchAllModels(); } } }