Пример #1
0
        public ServiceResult AddSession(MudSessionModel session)
        {
            if (_Sessions.Add(session))
            {
                SessionAdded?.Invoke(this, session);
            }

            return(new ServiceResult());
        }
Пример #2
0
        private void AddNewSession(AudioSessionControl asc)
        {
            M.D(21000, "AddNewSession");
            var s = new Session(asc.BasePtr, ref L);

            s.Offline += S_Offline;
            s.Online  += S_Online;
            SS.Add(s);
            L.SSD.Add(new SessionData(asc.BasePtr, asc.DisplayName));
            L.SSN.Add(s.DisplayName);
            SessionAdded?.Invoke(this, new SessionEventArgs(asc.BasePtr));
            M.D(21001, $"# SS:{SS.Count}, SSD:{L.SSD.Count}, SSN:{L.SSN.Count}");
        }
        /// <summary>
        ///		Consolida los datos de la sesión
        /// </summary>
        private async Task UpdateSessionDataAsync(WebSession.Session session, SessionEventArgs e, bool isNew)
        {
            var webRequest  = e.WebSession.Request;
            var webResponse = e.WebSession.Response;

            // Código de estado, protocolo, proceso...
            session.StatusCode = webResponse?.StatusCode ?? 0;
            session.Uri        = webRequest.RequestUri;
            session.ProcessId  = e.WebSession.ProcessId.Value;
            // Tamaño del cuerpo
            session.BodySize = -1;
            if (!session.IsTunnelConnect && webResponse != null)
            {
                if (webResponse.ContentLength != -1)
                {
                    session.BodySize = webResponse.ContentLength;
                }
                else if (webResponse.IsBodyRead && webResponse.Body != null)
                {
                    session.BodySize = webResponse.Body.Length;
                }
            }
            // Obtiene los detalles de la solicitud y la respuesta
            session.Request  = ReadRequestData(webRequest);
            session.Response = ReadResponseData(webResponse);
            // Trata la sesión nueva o modificada
            await Dispatcher.InvokeAsync(() =>
            {
                if (isNew)
                {
                    // Añade la sesión al diccionario
                    _sessions.Add(e.WebSession, session);
                    // Lanza el evento
                    SessionAdded?.Invoke(this, new NewSessionEventArgs(session));
                }
                else
                {
                    // Lanza el evento
                    SessionUpdated?.Invoke(this, new UpdateSessionEventArgs(session));
                    // Elimina la sesión del diccionario
                    _sessions.Remove(e.WebSession);
                }
            });
        }
Пример #4
0
 private void OnSessionAdded(Session newSession)
 {
     Sessions.Add(newSession);
     SessionAdded.RaiseEvent(newSession);
 }
Пример #5
0
 private void OnSessionAdded(ISession session)
 {
     _relayStateService.SendStateToClient(session);
     SessionAdded?.Invoke(session);
 }
        public override void OnSessionAdded(Session session)
        {
            LogWriteLine("********* SESSION " + session.GetName().GetString() + " ADDED ******");

            SessionAdded?.Invoke(session);
        }
        public void NotifySessionAdded(SessionInfoDto sessionInfoDto)
        {
            TelemetrySessionArgs args = new TelemetrySessionArgs(sessionInfoDto);

            SessionAdded?.Invoke(this, args);
        }
Пример #8
0
 protected override void Consume(SessionAddedEvent @event)
 {
     SessionAdded?.Invoke(this, @event.SessionId);
 }