Beispiel #1
0
        /// <summary>
        /// Removes the specified session data.
        /// </summary>
        /// <param name="sessionData">The session data.</param>
        public static void Remove(SessionData sessionData)
        {
            if(sessionData == null) return;
            var item = tree.Where(x => x.SessionData == sessionData).FirstOrDefault();
            if(item != null)
            {
                foreach (var child in item.AllChildren)
                    Remove(child.SessionData);

                if (sessionData.Parent == null)
                {
                    foreach (var child in item.AllChildren)
                        tree.Remove(child);
                    tree.Remove(item);
                }
                else
                {
                    item.SessionData = null;
                    if (item.ProtocolEvents.Count == 0)
                        tree.Remove(item);
                }
            }
        }
Beispiel #2
0
 /// <summary>
 /// Gets the SessionEvents for sessionData.
 /// </summary>
 /// <param name="sessionData">The session data.</param>
 /// <returns></returns>
 public static SessionEvents GetEvents(SessionData sessionData)
 {
     SessionEvents result = null;
     if (sessionData != null)
     {
         result = tree.Where(x => x.SessionData == sessionData).FirstOrDefault();
         if (result == null)
         {
             result = new SessionEvents
                          {
                              SessionData = sessionData,
                              StartedOn = sessionData.StartedOn,
                              SessionId = sessionData.SessionId
                          };
             tree.Add(result);
             if (sessionData.Parent != null)
                 result.Parent = GetEvents(sessionData.Parent);
         }
     }
     return result;
 }
Beispiel #3
0
        /// <summary>
        /// Registers the session.
        /// </summary>
        /// <param name="session">The session.</param>
        /// <returns>New SessionData object</returns>
        internal SessionData RegisterSession(Session session)
        {
            if (collectorDisabled) return null;

            SessionData result;
            if (!sessionRegistry.ContainsKey(session))
            {
                result = new SessionData(session, this);
                sessionRegistry.Add(session, result);
                subscribeToSessionEvents(session);
                if (session is NestedUnitOfWork)
                    result.Parent = RegisterSession(((NestedUnitOfWork)session).Parent);
            }
            else
                result = sessionRegistry[session];

            return result;
        }
Beispiel #4
0
 public TrackedObjectBag(SessionData sessionData)
 {
     SessionData = sessionData;
 }
Beispiel #5
0
 public TrackedObjectBag(SessionData sessionData)
 {
     SessionData = sessionData;
 }