コード例 #1
0
ファイル: SchedulerTest.cs プロジェクト: andry5bb/DAMS2
        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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
 /// <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();
 }
コード例 #6
0
ファイル: HelperMethods.cs プロジェクト: dsim7/sky-seekers
 public static void WaitUntil(OneTimeEvent evnt, UnityAction action)
 {
     evnt.AddListener(action);
 }
コード例 #7
0
ファイル: Program.cs プロジェクト: andry5bb/DAMS2
        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);
        }