예제 #1
0
        public static int UpdateSession(Session sessionCopy)
        {
            var originalSession = Sessions.FirstOrDefault(x => x.SessionId.Equals(sessionCopy.SessionId));

            if (!originalSession.SessionName.Equals(sessionCopy.SessionName))
            {
                if (Sessions.FirstOrDefault(x => x.SessionName.Equals(sessionCopy.SessionName)) != null)
                {
                    return(-1); // name already exists
                }
            }
            var index = Sessions.FindIndex(c => c.SessionId == originalSession.SessionId);

            Sessions[index] = sessionCopy;
            if (SessionsTableMgr.UpdateSession(sessionCopy))
            {
                if (!SessionClipsTableMgr.UpdateSessionClips(sessionCopy.SessionId, sessionCopy.SessionAudioClipsList))
                {
                    return(-3);
                }
            }
            else
            {
                return(-2);
            }
            return(sessionCopy.SessionId);
        }
예제 #2
0
 public static int AddSession(string sessionName, Ruleset ruleset)
 {
     if (Sessions.FirstOrDefault(x => x.SessionName.Equals(sessionName)) == null)
     {
         var newSession = new Session()
         {
             SessionName = sessionName,
             Ruleset     = ruleset
         };
         Sessions.Add(newSession);
         // update database
         if (SessionsTableMgr.AddSession(newSession))
         {
             newSession.SessionId = SessionsTableMgr.GetSessionId(sessionName);
             SessionsTableMgr.UpdateSession(newSession);
             Logger.AddLogEntry(LogCategory.INFO, "Added Session: " + sessionName);
             return(newSession.SessionId);
         }
         else
         {
             return(-1);
         }
     }
     return(-2); // session name already exits
 }