1) Added ProcessContextMessageReponse method to Info Agents this will allow agents to update their state as necessary

rg2023 [2003-05-10 20:51:20]
1) Added ProcessContextMessageReponse method to Info Agents this will allow agents to update their state as necessary
when a context message response is received e.g. if IA1 sends a resource recalled context message to IA2, after
IA2 removes these resources from the meeting it will respond to IA1 to indicate that it complied with the recall
request. At this point IA1 should update its state to reflect that the resources it requested recalled have been
removed from the meeting
2) Rebuilt installers with latest Info Agent changes
Filename
discus2/bin/InfoAgent.asmx.cs
discus2/bin/TotalRecallSetup.msi
discus2/bin/TotalRecallSetupDebug.msi
diff --git a/discus2/bin/InfoAgent.asmx.cs b/discus2/bin/InfoAgent.asmx.cs
index e54f634..efd317f 100644
--- a/discus2/bin/InfoAgent.asmx.cs
+++ b/discus2/bin/InfoAgent.asmx.cs
@@ -483,6 +483,8 @@ namespace TotalRecall
 				// Anyone can send a response, just save it
 				ContextMsgDAO ctxMsgDAO = new ContextMsgDAO( this.DBConnect );
 				ctxMsgDAO.ReceiveContextMessage( respMsg, false );
+				// Process context message response
+				ProcessContextMessageResponse( respMsg, senderCert );
 			}
 			catch( Exception e )
 			{
@@ -491,6 +493,32 @@ namespace TotalRecall
 			}
 		}

+		private void ProcessContextMessageResponse( ContextMsgResponse respMsg, X509Certificate senderCert )
+		{
+			// If the response is of type resource recalled then
+			// get the context messages sent that matches
+			// recreate the message sent, scroll thru the list of
+			// resource ids recalled and update our database to reflect that
+			if( respMsg.Type == enuContextMsgType.ResourceRecalledResponse )
+			{
+				ContextMsgDAO ctxMsgDAO = new ContextMsgDAO( this.DBConnect );
+				ContextMsg ctxMsg = ctxMsgDAO.GetContextMsgSent( respMsg.MeetingID, respMsg.MessageID, respMsg.Sender );
+				if( ctxMsg == null )
+					return;
+
+				if( ctxMsg is ResourceCtxMsg && ctxMsg.Type == enuContextMsgType.ResourceRecalled )
+				{
+					ResourceDAO resDAO = new ResourceDAO( this.DBConnect );
+					ResourceCtxMsg resCtxMsg = (ResourceCtxMsg) ctxMsg;
+					IEnumerator it = resCtxMsg.ResourceIDs.GetEnumerator();
+					while( it.MoveNext() )
+					{
+						resDAO.RecallResource( (string) it.Current );
+					}
+				}
+			}
+		}
+
 		[SoapDocumentMethod(OneWay=true)]
 		[WebMethod]
 		public void SendContextUpdate( string strCtxResponse, string strContactID, string strIAUrl )
diff --git a/discus2/bin/TotalRecallSetup.msi b/discus2/bin/TotalRecallSetup.msi
index 660635e..315e7c6 100644
Binary files a/discus2/bin/TotalRecallSetup.msi and b/discus2/bin/TotalRecallSetup.msi differ
diff --git a/discus2/bin/TotalRecallSetupDebug.msi b/discus2/bin/TotalRecallSetupDebug.msi
index ee9b4d2..6981048 100644
Binary files a/discus2/bin/TotalRecallSetupDebug.msi and b/discus2/bin/TotalRecallSetupDebug.msi differ