コード例 #1
0
        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);
            }
        }
コード例 #2
0
ファイル: Timeline.cs プロジェクト: hmeydac/SituationRoom
        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);
        }
コード例 #3
0
        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();
            }
        }
コード例 #4
0
        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();
        }
コード例 #5
0
        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());
            }
        }
コード例 #6
0
        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());
            }
        }