/// <summary> /// Returns callback client associated file name. /// </summary> /// <param name="client">Client.</param> /// <returns>File name.</returns> public string GetCallbackFileName(IBookmarkCallbackClient client) { if (client == null) { throw new ArgumentNullException(nameof(client)); } if (_bookmarkCallbacks.ContainsValue(client)) { return(_bookmarkCallbacks.First(b => b.Value == client).Key); } else { return(null); } }
/// <summary> /// Unregisters callback client. /// </summary> /// <param name="client">Client.</param> public void UnregisterCallback(IBookmarkCallbackClient client) { if (client == null) { throw new ArgumentNullException(nameof(client)); } if (!_bookmarkCallbacks.ContainsValue(client)) { _log.LogMessage("Callback client hasn't been registered", LOG_CATEGORY); return; } var fileName = _bookmarkCallbacks.First(b => b.Value == client).Key; if (!string.IsNullOrEmpty(fileName)) { _bookmarkCallbacks.Remove(fileName); } _log.LogMessage($"File '{Path.GetFileName(fileName)}' unregistered for bookmarks callback", LOG_CATEGORY); }
/// <summary> /// Registers callback client. /// </summary> /// <param name="client">Client.</param> /// <param name="fileName">Document's file name.</param> public void RegisterCallback(IBookmarkCallbackClient client, string fileName) { if (client == null) { throw new ArgumentNullException(nameof(client)); } if (string.IsNullOrEmpty(fileName)) { throw new ArgumentNullException(nameof(fileName)); } if (_bookmarkCallbacks.ContainsKey(fileName) || _bookmarkCallbacks.ContainsValue(client)) { _log.LogMessage($"Callback client has already been registered: {Path.GetFileName(fileName)}", LOG_CATEGORY); return; } _log.LogMessage($"File '{Path.GetFileName(fileName)}' registered for bookmarks callback", LOG_CATEGORY); _bookmarkCallbacks.Add(fileName, client); }