Example #1
0
        public void CanPostEditorActivityEvent()
        {
            // Arrange
            var log = new EditorActivityEvent
            {
                SenderId     = 1,
                SolutionName = "Dummy Solution",
                CourseId     = 1
            };

            // Act
            var result = Posts.SaveEvent(log);

            // Assert
            using (var connection = new SqlConnection(StringConstants.ConnectionString))
            {
                var savedlog =
                    connection.Query <EditorActivityEvent>(
                        @"select b.EventLogId, a.EventTypeId,a.SenderId, b.SolutionName, a.CourseId
                        from EventLogs a
                        inner join EditorActivityEvents b on b.EventLogId=a.Id and a.Id=@id",
                        new { @Id = result }).SingleOrDefault();

                Assert.IsTrue(savedlog != null);
                Assert.IsTrue(savedlog.SenderId == log.SenderId);
                Assert.IsTrue(savedlog.EventType == log.EventType);
                Assert.IsTrue(savedlog.SolutionName == log.SolutionName);
                Assert.IsTrue(savedlog.CourseId == log.CourseId);
            }
        }
Example #2
0
        /// <summary>
        /// Called whenever the current line gets modified (text added / deleted).  Only raised at a maximum of
        /// once per minute in order to undercut the potential flood of event notifications.
        /// </summary>
        /// <param name="startPoint"></param>
        /// <param name="endPoint"></param>
        /// <param name="hint"></param>
        public override void EditorLineChanged(TextPoint startPoint, TextPoint endPoint, int hint)
        {
            base.EditorLineChanged(startPoint, endPoint, hint);
            if (_lastEditorActivityEvent < DateTime.UtcNow.Subtract(new TimeSpan(0, 1, 0)))
            {
                _lastEditorActivityEvent = DateTime.UtcNow;
                var activity = new EditorActivityEvent
                {
                    SolutionName = Path.GetFileName(Dte.Solution.FullName),
                    LineChanged  = startPoint.Line
                };
                NotifyEventCreated(this, new EventCreatedArgs(activity));

                CheckInterventionStatus();
            }
        }