private void RemoveManagedSession(ExecutingSessionInfo session) { lock (this) { _sessions.RemoveAll(x => x.Equals(session)); } }
/// <summary> /// Clears the current session. /// </summary> public void ClearCurrentSession() { if (_currentDisplayedSession != null) { _currentDisplayedSession = null; } }
private void AddManagedSession(ExecutingSessionInfo newSession) { lock (this) { _sessions.Add(newSession); } SetCurrentSession(newSession.SessionId); }
/// <summary> /// Updates the session information from database asynchronously. /// </summary> /// <param name="sessionInfo">The session information.</param> /// <param name="includeStateData">if set to <c>true</c> [include state data].</param> /// <returns>Task.</returns> internal Task UpdateSessionInfoFromDatabaseAsynch(ExecutingSessionInfo sessionInfo, bool includeStateData = true) { Task returnValue = null; if (sessionInfo != null) { returnValue = Task.Factory.StartNew(() => UpdateSessionInfoFromDatabase(sessionInfo, includeStateData)); } return(returnValue); }
private ExecutingSessionInfo GetSessionInfoFromDatabase(string sessionId) { ExecutingSessionInfo result = new ExecutingSessionInfo() { SessionId = sessionId }; UpdateSessionInfoFromDatabase(result); return(result); }
public override bool Equals(object obj) { if (obj == null || GetType() != obj.GetType()) { return(false); } ExecutingSessionInfo p = (ExecutingSessionInfo)obj; return(SessionId == p.SessionId); }
/// <summary> /// Sets the current session to the specified Session Id. /// </summary> /// <param name="sessionId">The session identifier.</param> public void SetCurrentSession(string sessionId) { if (!string.IsNullOrEmpty(sessionId)) { _currentDisplayedSession = GetExecutingSessionInfo(sessionId); RefreshCurrentSession(); } else { MessageBox.Show("No session found for {0}".FormatWith(sessionId) , "Session Not Found", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
private bool UpdateSessionInfoFromDatabase(ExecutingSessionInfo execSessionInfo, bool includeStateData = true) { bool result = false; DateTime?actualEndTime = null; if (execSessionInfo != null && !string.IsNullOrEmpty(execSessionInfo.SessionId)) { var sessionId = execSessionInfo.SessionId; using (var context = DbConnect.DataLogContext()) { var session = context.Sessions.FirstOrDefault(s => s.SessionId == sessionId); if (session != null) { actualEndTime = session.ShutdownDateTime?.LocalDateTime; if (actualEndTime.HasValue) { execSessionInfo.ShutDownDate = actualEndTime; } execSessionInfo.Dispatcher = session.Dispatcher; execSessionInfo.SessionId = session.SessionId; execSessionInfo.Name = session.SessionName; execSessionInfo.Owner = session.Owner; execSessionInfo.StartDate = session.StartDateTime?.LocalDateTime; execSessionInfo.EstimatedEndDate = session.ProjectedEndDateTime?.LocalDateTime; //if (includeStateData) //{ // var state = Enum<SessionState>.Parse(session.Status, true); // execSessionInfo.MapElement = null; // execSessionInfo.State = state; // execSessionInfo.StartupTransition = SessionStartupTransition.None; //} } } result = true; } return(result); }
private ExecutingSessionInfo GetNewExecutingSessionInfo(SessionTicket ticket) { if (IsManagedSession(ticket.SessionId)) { throw new Exception("Session {0} already exists".FormatWith(ticket.SessionId)); } var result = new ExecutingSessionInfo() { SessionId = ticket.SessionId, Name = ticket.SessionName, Owner = ticket.SessionOwner.UserName, MapElement = null, State = SessionState.Available, StartupTransition = SessionStartupTransition.None, Dispatcher = Dispatcher, }; AddManagedSession(result); SetCurrentSession(result.SessionId); return(result); }