public virtual bool IsEngaged(Party party, EngagementProfile engagementProfile) { bool isEngaged = false; if (party != null) { switch (engagementProfile) { case EngagementProfile.Client: isEngaged = EngagedParties.Values.Contains(party); break; case EngagementProfile.Owner: isEngaged = EngagedParties.Keys.Contains(party); break; case EngagementProfile.Any: isEngaged = (EngagedParties.Values.Contains(party) || EngagedParties.Keys.Contains(party)); break; default: break; } } return(isEngaged); }
public virtual IList <MessageRouterResult> RemoveEngagement(Party party, EngagementProfile engagementProfile) { IList <MessageRouterResult> messageRouterResults = new List <MessageRouterResult>(); if (party != null) { List <Party> keysToRemove = new List <Party>(); foreach (var partyPair in EngagedParties) { bool removeThisPair = false; switch (engagementProfile) { case EngagementProfile.Client: removeThisPair = partyPair.Value.Equals(party); break; case EngagementProfile.Owner: removeThisPair = partyPair.Key.Equals(party); break; case EngagementProfile.Any: removeThisPair = (partyPair.Value.Equals(party) || partyPair.Key.Equals(party)); break; default: break; } if (removeThisPair) { keysToRemove.Add(partyPair.Key); if (engagementProfile == EngagementProfile.Owner) { // Since owner is the key in the dictionary, there can be only one break; } } } messageRouterResults = RemoveEngagements(keysToRemove); } return(messageRouterResults); }
public IList <MessageRouterResult> RemoveEngagement(Party party, EngagementProfile engagementProfile) { throw new NotImplementedException(); }
public bool IsEngaged(Party party, EngagementProfile engagementProfile) { throw new NotImplementedException(); }