public void PrepareNotificationBucket_should_sort_all_events_and_add_needed_event_in_a_new_bucket() { // Arrange var eventTest = new OneTimeEvent(_notifier, DateTime.Now.AddMinutes(3).AddSeconds(50)) { Name = "event1", NotifyBefore = new TimeSpan(0, 0, 0) }; var events = new List <IEvent>() { eventTest, new OneTimeEvent(_notifier, DateTime.Now.AddMinutes(15).AddSeconds(50)) { Name = "event2", NotifyBefore = new TimeSpan(0, 0, 0) }, new OneTimeEvent(_notifier, DateTime.Now.AddMinutes(3).AddSeconds(50)) { Name = "event3", NotifyBefore = new TimeSpan(0, 0, 0) }, }; //Act NotificationBucket result = Scheduler.PrepareNotificationBucket(events); //Assert result.Should().NotBeNull(); result.NextEvents.Should().HaveCount(2); result.NextEvents.Should().Contain(eventTest); }
/// <summary> /// Adds a particular meeting that is a one time event to an existing list of one time events. /// </summary> /// <param name="oneTimeEvents">List of one time events that will be added to.</param> /// <param name="courseAbbreviation">Abbreviation for course meeting belongs to.</param> /// <param name="meeting">Meeting to add one time event from.</param> private static void AddOneTimeEvent(ref List <OneTimeEvent> oneTimeEvents, string courseAbbreviation, Meeting meeting) { // Make sure start date is known. string startDate; if (meeting.StartDate != null) { startDate = ((DateTime)meeting.StartDate).ToString("ddd MM/dd/yy"); } else { startDate = "Unknown Date"; } // Make sure start time is known. string startTime; if (meeting.StartTime == new DateTime()) { startTime = "No Start Time"; } else { startTime = meeting.StartTime.ToString("hh:mmtt"); } // Make sure end date is known. string endTime; if (meeting.EndTime == new DateTime()) { endTime = "No End Time"; } else { endTime = meeting.EndTime.ToString("hh:mmtt"); } string time = $"{startTime} - {endTime} "; OneTimeEvent final = new OneTimeEvent() { CourseAbbreviation = courseAbbreviation, Time = time, Date = startDate, Location = $"{meeting.Location.RoomNumber} {meeting.Location.Building}", Type = meeting.MeetingType.ToString() }; oneTimeEvents.Add(final); }
public void Remove_should_remove_old_event() { //Arrang var eventTest = new OneTimeEvent(_notifier, new DateTime(2000, 12, 10)); var events = new List <IEvent>() { eventTest, new OneTimeEvent(_notifier, new DateTime(2000, 12, 10)), new OneTimeEvent(_notifier, DateTime.Now.AddMinutes(15).AddSeconds(50)), }; NotificationBucketInstance = new NotificationBucket(events); //Act NotificationBucketInstance.Remove(eventTest); //Assert NotificationBucketInstance.Should().NotBeNull(); NotificationBucketInstance.NextEvents.Should().HaveCount(2); NotificationBucketInstance.NextEvents.Should().NotContain(eventTest); }
public void Add_should_add_new_event() { //Arrang створюються змінні для того щоб виконати тестування var events = new List <IEvent>() { new OneTimeEvent(_notifier, DateTime.Now.AddMinutes(10).AddSeconds(60)), new OneTimeEvent(_notifier, DateTime.Now.AddMinutes(15).AddSeconds(50)), new OneTimeEvent(_notifier, DateTime.Now.AddMinutes(4).AddSeconds(40)), new OneTimeEvent(_notifier, DateTime.Now.AddMinutes(3).AddSeconds(40)), }; NotificationBucketInstance = new NotificationBucket(events); var newEvent = new OneTimeEvent(_notifier, DateTime.Now.AddMinutes(10).AddSeconds(60)); //Act виконуються визначенні дії над системою NotificationBucketInstance.Add(newEvent); //Assert очікуваний результат NotificationBucketInstance.Should().NotBeNull(); NotificationBucketInstance.NextEvents.Should().HaveCount(5); NotificationBucketInstance.NextEvents.Should().Contain(events); }
/// <summary> /// Constructor. /// </summary> /// <param name="appRef"><see cref="AppRef" /> of the package being downloaded.</param> public PendingDownload(AppRef appRef) { this.AppRef = appRef; this.waitEvent = new OneTimeEvent(); }
public static void WaitUntil(OneTimeEvent evnt, UnityAction action) { evnt.AddListener(action); }
static void InitApp() { Application.Init(); var top = Application.Top; using (DAMSDbContext db = new DAMSDbContext()) { #region OneTimeEvent var oneTimeEvent1 = new OneTimeEvent() { Date = new DateTime(2020, 07, 20, 23, 23, 00), Name = "ДР Андрюхи", Status = EventStatus.Active, NotifyBefore = new TimeSpan(0, 5, 0) }; db.OneTimeEvents.Add(oneTimeEvent1); db.SaveChanges(); #endregion #region PeriodEvent var periodEvent1 = new PeriodEvent() { Date = new DateTime(2020, 08, 08, 15, 23, 00), Name = "ДР когось", NotifyBefore = new TimeSpan(24, 0, 0), Status = EventStatus.Active, PeriodType = PeriodType.Yearly }; db.PeriodEvents.Add(periodEvent1); db.SaveChanges(); #endregion #region CustomEventModel var customEventModel1 = new CustomEventModel { Name = "Поход на турнік", Status = EventStatus.Active, NotifyBefore = new TimeSpan(24, 0, 0) }; db.CustomEventModels.Add(customEventModel1); db.SaveChanges(); var myEventsModel1 = new CustomEventDate { Date = new DateTime(2020, 07, 01, 12, 25, 00), Status = EventStatus.Active, CustomEventModel = customEventModel1 }; var myEventsModel2 = new CustomEventDate { Date = new DateTime(2020, 07, 02, 12, 25, 00), Status = EventStatus.Active, CustomEventModel = customEventModel1 }; var myEventsModel3 = new CustomEventDate { Date = new DateTime(2020, 07, 03, 12, 25, 00), Status = EventStatus.Active, CustomEventModel = customEventModel1 }; var myEventsModel4 = new CustomEventDate { Date = new DateTime(2020, 07, 04, 12, 25, 00), Status = EventStatus.Active, CustomEventModel = customEventModel1 }; db.MyEventsModels.AddRange(myEventsModel1, myEventsModel2, myEventsModel3, myEventsModel4); db.SaveChanges(); var customEventModel2 = new CustomEventModel { Name = "Футболчік", Status = EventStatus.Active, NotifyBefore = new TimeSpan(0, 5, 0) }; db.CustomEventModels.Add(customEventModel2); db.SaveChanges(); var myEventsModel11 = new CustomEventDate { Date = new DateTime(2020, 08, 11, 12, 25, 00), Status = EventStatus.Active, CustomEventModel = customEventModel2 }; var myEventsModel21 = new CustomEventDate { Date = new DateTime(2020, 08, 12, 12, 25, 00), Status = EventStatus.Active, CustomEventModel = customEventModel2 }; var myEventsModel31 = new CustomEventDate { Date = new DateTime(2020, 08, 13, 12, 25, 00), Status = EventStatus.Active, CustomEventModel = customEventModel2 }; var myEventsModel41 = new CustomEventDate { Date = new DateTime(2020, 08, 14, 12, 25, 00), Status = EventStatus.Closed, CustomEventModel = customEventModel2 }; var myEventsModel51 = new CustomEventDate { Date = new DateTime(2020, 06, 25, 12, 25, 00), Status = EventStatus.Active, CustomEventModel = customEventModel2 }; db.MyEventsModels.AddRange(myEventsModel11, myEventsModel21, myEventsModel31, myEventsModel41, myEventsModel51); db.SaveChanges(); #endregion #region MinValue in our DB DateTime nextNotification = db.MyEventsModels.Min(p => p.Date); Console.WriteLine("2 - {0}", nextNotification); Console.ReadKey(); #endregion } var window = new Window("DAMS Console") { X = 0, Y = 1, Width = Dim.Fill(), Height = Dim.Fill() }; top.Add(window); }