protected override void Paint(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex, DataGridViewElementStates cellState, object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts) { base.Paint(graphics, clipBounds, cellBounds, rowIndex, cellState, "", "", errorText, cellStyle, advancedBorderStyle, paintParts); TimelineActivity activity = (TimelineActivity)value; TimelineController controller = ((TimeLeftColumn)OwningColumn).Controller; { double timeTillStart = activity.TimeFromStart - controller.CurrentTime; float timeTillStartF = (float)timeTillStart; float durationF = (float)activity.Duration; if (durationF < 0.1F) { durationF = 0.1F; } PaintBar(graphics, cellBounds, timeTillStartF, durationF); } { double timeTillEnd = activity.EndTime - controller.CurrentTime; string text = timeTillEnd > 0 ? timeTillEnd.ToString("0") : "ACTION!"; PaintText(graphics, cellBounds, text); } }
public void AddActivity(TimelineActivity activity) { if (this.GetActivity(activity.Id) != null) { var message = string.Format("Timeline Activity {0} already exists in the Timeline {1}.", activity.Id, this.Id); throw new EntityAlreadyExistsException(message); } this.Activities.Add(activity); }
public static string ObjectLinkFor(this UrlHelper url, TimelineActivity activity) { switch (activity.ObjectType) { case TimelineActivityObjectType.Item: return(url.Action("Details", "Items", new { id = activity.ObjectId })); default: throw new ArgumentOutOfRangeException(); } }
public void LogActivity(TimelineActivity activity) { var currentUser = LoggedInUser(); activity.Date = DateTime.UtcNow; activity.SubjectId = currentUser.UserId; activity.SubjectName = currentUser.UserName; activity.SubjectDescriptor = currentUser.DisplayName; Db.TimelineActivities.Add(activity); Db.SaveChanges(); }
public void AlertLookupShouldReturnValidResults() { TimelineActivity activity = new TimelineActivity { TimeFromStart = 10 }; List<TimelineActivity> activities = new List<TimelineActivity>() { activity }; List<ActivityAlert> alerts = new List<ActivityAlert>(); for (int i = 0; i < 10; ++i) alerts.Add(new ActivityAlert { ReminderTimeOffset = (double)i, Activity = activity }); Timeline t = new Timeline("foobar", activities, new List<TimelineAnchor>(), alerts, new AlertSoundAssets()); // t.alertsTimeFromStart == 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Assert.AreEqual(4, t.FindFirstAlertIndexAfterStartTime(4.9)); Assert.AreEqual(5, t.FindFirstAlertIndexAfterStartTime(5)); Assert.AreEqual(5, t.FindFirstAlertIndexAfterStartTime(5.1)); { var pending = t.PendingAlertsAt(0); CollectionAssert.AreEqual( new List<double> { }, pending.Select(a => a.TimeFromStart).ToList()); } { var pending = t.PendingAlertsAt(1.1); CollectionAssert.AreEqual( new List<double> { 1.0 }, pending.Select(a => a.TimeFromStart).ToList()); } { var pending = t.PendingAlertsAt(2.1); CollectionAssert.AreEqual( new List<double> { 1.0, 2.0 }, pending.Select(a => a.TimeFromStart).ToList()); } { var pending = t.PendingAlertsAt(3.1); CollectionAssert.AreEqual( new List<double> { 1.0, 2.0, 3.0 }, pending.Select(a => a.TimeFromStart).ToList()); } { var pending = t.PendingAlertsAt(5.1); CollectionAssert.AreEqual( new List<double> { 3.0, 4.0, 5.0 }, pending.Select(a => a.TimeFromStart).ToList()); } }
public void AlertLookupShouldReturnValidResults() { TimelineActivity activity = new TimelineActivity { TimeFromStart = 10 }; List <TimelineActivity> activities = new List <TimelineActivity>() { activity }; List <ActivityAlert> alerts = new List <ActivityAlert>(); for (int i = 0; i < 10; ++i) { alerts.Add(new ActivityAlert { ReminderTimeOffset = (double)i, Activity = activity }); } Timeline t = new Timeline("foobar", activities, new List <TimelineAnchor>(), alerts, new AlertSoundAssets()); // t.alertsTimeFromStart == 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Assert.AreEqual(4, t.FindFirstAlertIndexAfterStartTime(4.9)); Assert.AreEqual(5, t.FindFirstAlertIndexAfterStartTime(5)); Assert.AreEqual(5, t.FindFirstAlertIndexAfterStartTime(5.1)); { var pending = t.PendingAlertsAt(0); CollectionAssert.AreEqual( new List <double> { }, pending.Select(a => a.TimeFromStart).ToList()); } { var pending = t.PendingAlertsAt(1.1); CollectionAssert.AreEqual( new List <double> { 1.0 }, pending.Select(a => a.TimeFromStart).ToList()); } { var pending = t.PendingAlertsAt(2.1); CollectionAssert.AreEqual( new List <double> { 1.0, 2.0 }, pending.Select(a => a.TimeFromStart).ToList()); } { var pending = t.PendingAlertsAt(3.1); CollectionAssert.AreEqual( new List <double> { 1.0, 2.0, 3.0 }, pending.Select(a => a.TimeFromStart).ToList()); } { var pending = t.PendingAlertsAt(5.1); CollectionAssert.AreEqual( new List <double> { 3.0, 4.0, 5.0 }, pending.Select(a => a.TimeFromStart).ToList()); } }