Beispiel #1
0
        public void ScreenshotActionFired(Image img, int timestamp)
        {
            _LastScreenshotTime = timestamp;
            _NotificationHandler.ScreenshotTaken();

            int delta = TimingHelper.CalcTimestampDelta(CurrentContext
                                                        .GetInstance().Session.StartTimestamp, timestamp);

            CacheProcessor.SaveImage(img, delta.ToString(),
                                     CurrentContext.GetInstance().Session.StartTimestamp.ToString(), false);

            CurrentContext.GetInstance().Session.PostTime = delta;
            CurrentContext.GetInstance().Session.StopTime = -1;
            // AHMED TODO add app titles instead of TEST
            Process[] processes = Process.GetProcesses();
            var       sb        = new System.Text.StringBuilder();

            foreach (Process p in processes)
            {
                if (!String.IsNullOrEmpty(p.MainWindowTitle))
                {
                    sb.Append(p.MainWindowTitle.ToString() + "***");
                }
            }
            string outputSb = sb.ToString().Replace(",", " - ");

            if (!CurrentContext.GetInstance().Session.ActiveAppTitles.Contains(outputSb))
            {
                CurrentContext.GetInstance().Session.ActiveAppTitles.Add(outputSb);
            }
            // Ahmed END script

            /*LogController.GetInstance().LogData(LogController.
             *              GetInstance().LogFormat.GetSessionLine("ScreenshotActionFired() -- mode 1: IsSessionDataLocked: " +
             *              CurrentContext.GetInstance().IsSessionDataLocked.ToString()));*/

            // while (CurrentContext.GetInstance().IsSessionDataLocked)
            //     Thread.Sleep(1000);

            /*LogController.GetInstance().LogData(LogController.
             *              GetInstance().LogFormat.GetSessionLine("ScreenshotActionFired() -- mode 2: IsSessionDataLocked: " +
             *              CurrentContext.GetInstance().IsSessionDataLocked.ToString()));*/

            //CurrentContext.GetInstance().IsSessionDataLocked = true;
            CacheStrategyExecutor.GetInstance().CacheStrategy.PostCurrentSession(CurrentContext
                                                                                 .GetInstance().Session.StartTimestamp.ToString());

            CacheStrategyExecutor.GetInstance().CacheStrategy.PostOldSessions(CurrentContext
                                                                              .GetInstance().Session.StartTimestamp.ToString());
            // CurrentContext.GetInstance().IsSessionDataLocked = false;

            /*LogController.GetInstance().LogData(LogController.
             *              GetInstance().LogFormat.GetSessionLine("ScreenshotActionFired() -- mode 3: IsSessionDataLocked: " +
             *              CurrentContext.GetInstance().IsSessionDataLocked.ToString()));*/
        }
Beispiel #2
0
        public void StopSession(bool unsubscribe)
        {
            Context.Timer.Timer.GetInstance().StopTimer();
            ErrorTimer.GetInstance().StopTimer();
            if (unsubscribe)
            {
                ActivityProcessor.GetInstance().UnsubscribeFromMouseKeyEvents();
            }

            int delta = TimingHelper.CalcTimestampDelta(CurrentContext
                                                        .GetInstance().Session.StartTimestamp, TimingHelper.GetCurrentTimestamp());

            //if (delta < CommonConst.DELAY)
            //    return;

            CurrentContext.GetInstance().Session.PostTime = delta;
            CurrentContext.GetInstance().Session.StopTime = delta;

            ThreadPool.QueueUserWorkItem(new WaitCallback((s) =>
            {
                /*LogController.GetInstance().LogData(LogController.
                 *          GetInstance().LogFormat.GetSessionLine("StopSession() -- mode 1: IsSessionDataLocked: " +
                 *          CurrentContext.GetInstance().IsSessionDataLocked.ToString()));*/

                //while (CurrentContext.GetInstance().IsSessionDataLocked)
                //    Thread.Sleep(1000);

                /*LogController.GetInstance().LogData(LogController.
                 *          GetInstance().LogFormat.GetSessionLine("StopSession() -- mode 2: IsSessionDataLocked: " +
                 *          CurrentContext.GetInstance().IsSessionDataLocked.ToString()));*/

                //CurrentContext.GetInstance().IsSessionDataLocked = true;
                CacheStrategyExecutor.GetInstance().CacheStrategy.PostCurrentSession(CurrentContext
                                                                                     .GetInstance().Session.StartTimestamp.ToString());

                CacheStrategyExecutor.GetInstance().CacheStrategy.PostOldSessions(CurrentContext
                                                                                  .GetInstance().Session.StartTimestamp.ToString());
                // CurrentContext.GetInstance().IsSessionDataLocked = false;

                /*LogController.GetInstance().LogData(LogController.
                 *          GetInstance().LogFormat.GetSessionLine("StopSession() -- mode 3: IsSessionDataLocked: " +
                 *          CurrentContext.GetInstance().IsSessionDataLocked.ToString()));*/

                _NotificationHandler.SessionStopped();
            }));
        }
Beispiel #3
0
        public void KeyboardActionFired(int timestamp)
        {
            _LastActivityTime = timestamp;

            if (CurrentContext.GetInstance().IsSessionSleep)
            {
                _NotificationHandler.ActivityFired();
            }
            else
            {
                int delta = TimingHelper.CalcTimestampDelta(CurrentContext
                                                            .GetInstance().Session.StartTimestamp, timestamp);
                if (!CurrentContext.GetInstance().Session.KeyboardTimes.Contains(delta))
                {
                    CurrentContext.GetInstance().Session.KeyboardTimes.Add(delta);
                }
            }
        }