/// <summary> /// Tries to reject the pending engagement request of the given party. /// </summary> /// <param name="partyToReject">The party whose request to reject.</param> /// <param name="rejecterParty">The party rejecting the request (optional).</param> /// <returns>The result of the operation.</returns> public MessageRouterResult RejectPendingRequest(Party partyToReject, Party rejecterParty = null) { if (partyToReject == null) { throw new ArgumentNullException($"The party to reject ({nameof(partyToReject)} cannot be null"); } MessageRouterResult result = new MessageRouterResult() { ConversationOwnerParty = rejecterParty, ConversationClientParty = partyToReject }; if (RoutingDataManager.RemovePendingRequest(partyToReject)) { result.Type = MessageRouterResultType.EngagementRejected; } else { result.Type = MessageRouterResultType.Error; result.ErrorMessage = $"Failed to remove the pending request of user \"{partyToReject.ChannelAccount?.Name}\""; } return(result); }