Ejemplo n.º 1
0
    /// <summary>
    /// 保存一条新访客会话
    /// </summary>
    /// <param name="session"></param>
    public static void NewSession(VisitSession session)
    {
        Trace.WriteLine(string.Format("VisitSessionService.NewSession : {0}", session.ToString()));

        if (GetSessionById(session.SessionId) != null)
        {
            Trace.WriteLine("Error: chat is aleady exist");
            return;
        }
        sessions.Add(new VisitSessionHit(session));
        Provider.NewSession(session);
        //
        if (NewVisiting != null)
        {
            NewVisiting(null, new NewVisitingEventArgs(VisitorService.GetVisitorById(session.VisitorId), session));
        }

        if (sessions.Count > MaxVisitorSessionCountInMemory)
        {
            for (int i = sessions.Count-1; i >= 0; i--)
            {
                if (sessions[i].Session.Status ==VisitSessionStatus.Leave)
                {
                    sessions.RemoveAt(i);
                    break;
                }
            }
        }
    }