/// <summary>
 /// Event raised upon completion of EnumSessionsAsync.
 /// </summary>
 /// <param name="e"></param>
 private void OnEnumSessionsCompleted(EnumSessionCompletedArgs e)
 {
     if (this.EnumSessionsCompleted != null)
     {
         this.EnumSessionsCompleted(this, e);
     }
 }
        /// <summary>
        /// Enumerates all sessions created with a management secret.
        /// </summary>
        /// <param name="identity">ClientIdentity object used for authentication.</param>
        /// <param name="managementID">The owner's management secret required to enumerate, modify, wipe sessions.</param>
        /// <param name="state">State to be passed as userState in the completion event args.</param>
        public void EnumSessionsAsync(ClientIdentity identity, Guid managementID, object state)
        {
            IAsyncResult asyncResult = SmashClientREST.EnumSessionsAsync(
                identity,
                managementID,
                new ServiceAgent<Contracts.EnumSessionsResponse>.OnCompleteDelegate(
                    (response) =>
                    {
                        EnumSessionCompletedArgs e = new EnumSessionCompletedArgs(response.Exception, response.Aborted, response.StateObject);
                        if (response.Exception == null && !response.Aborted)
                        {
                            e.SessionInfos = response.Sessions;
                        }
                        OnEnumSessionsCompleted(e);
                    }),
                state);

            SmashClientREST.HandleCompletion(asyncResult, state);
        }