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); } }
/// <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(); } }