예제 #1
0
        public void Adding_ScheduleItem_On_Blacked_Out_Date_Should_Fail()
        {
            DateTime           blackedOutDate = DateTime.Now.AddDays(3);
            string             key            = KeyHelper.GetKey <IScheduleRepository>();
            var                repository     = RepositoryFactory.GetRepository <IScheduleRepository>(key);
            ScheduleController controller     = new ScheduleController();

            controller.CreateSchedule(TestFactories.GetDefaultLookup(), "Test Schedule", "This is a test", "test user");

            Schedule schedule = repository.GetAllSchedules().Last();

            controller.CreateBlackoutDate(schedule, "Test blackout date", blackedOutDate, "test user");

            try
            {
                controller.CreateScheduleItem(schedule, blackedOutDate, TestFactories.GetDefaultPerson(), new List <Baptizer>(),
                                              TestFactories.GetDefaultPerson(), true, "test user");
                Assert.Fail("controller.CreateScheduleItem() should throw an exception.");
            }
            catch (ValidationException ex)
            {
                Assert.IsTrue(ex.Errors[0].Contains("Unable to schedule a baptism on a Black Out Date."));
                Assert.AreEqual(ex.Errors.Count, 1);
            }
        }
예제 #2
0
        public void Schedule_Item_Create()
        {
            ScheduleController controller = new ScheduleController();
            Schedule           schedule   = CreateSchedule();

            controller.CreateScheduleItem(schedule, DateTime.Now, TestFactories.GetDefaultPerson(), new List <Baptizer>(),
                                          TestFactories.GetDefaultPerson(), true, "test user");

            Assert.Greater(schedule.ScheduleItems.Count, 0);
            Assert.AreEqual(schedule.ScheduleItems.First().CreatedBy, "test user");
            Assert.Greater(schedule.ScheduleItems.First().ScheduleItemID, 0);
        }
예제 #3
0
        public void Schedule_Item_Read()
        {
            ScheduleController controller = new ScheduleController();
            Schedule           schedule   = CreateSchedule();

            controller.CreateScheduleItem(schedule, DateTime.Now, TestFactories.GetDefaultPerson(), new List <Baptizer>(),
                                          TestFactories.GetDefaultPerson(), true, "test user");

            ScheduleItem item    = schedule.ScheduleItems.First();
            string       key     = KeyHelper.GetKey <IScheduleItemRepository>();
            ScheduleItem newItem = RepositoryFactory.GetRepository <IScheduleItemRepository>(key).GetScheduleItem(item.ScheduleItemID);

            Assert.AreSame(item, newItem);
        }
예제 #4
0
        public void Schedule_Item_Delete()
        {
            ScheduleController controller = new ScheduleController();
            Schedule           schedule   = CreateSchedule();

            controller.CreateScheduleItem(schedule, DateTime.Now, TestFactories.GetDefaultPerson(), new List <Baptizer>(),
                                          TestFactories.GetDefaultPerson(), true, "test user");

            ScheduleItem item   = schedule.ScheduleItems.First();
            int          itemID = item.ScheduleItemID;

            controller.DeleteScheduleItem(schedule, item.ScheduleItemID);
            string key = KeyHelper.GetKey <IScheduleItemRepository>();

            Assert.IsFalse(RepositoryFactory.GetRepository <IScheduleItemRepository>(key).Exists(itemID));
        }
예제 #5
0
        public void Schedule_Item_Update()
        {
            ScheduleController controller = new ScheduleController();
            Schedule           schedule   = CreateSchedule();

            controller.CreateScheduleItem(schedule, DateTime.Now, TestFactories.GetDefaultPerson(), new List <Baptizer>(),
                                          TestFactories.GetDefaultPerson(), true, "test user");

            ScheduleItem item = schedule.ScheduleItems.First();

            item.ScheduleItemDate = DateTime.Now.AddDays(1);
            controller.UpdateScheduleItem(schedule, item.ScheduleItemID, item.ScheduleItemDate, item.Person,
                                          item.Baptizers.ToList(), item.ApprovedBy, true, "other user");

            Assert.AreNotEqual(item.ScheduleItemDate, DateTime.Now);
            Assert.AreNotEqual(item.CreatedBy, item.ModifiedBy);
            Assert.AreEqual(item.ModifiedBy, "other user");
        }
예제 #6
0
        public void Schedule_Item_Baptizer_Sync()
        {
            ScheduleController controller = new ScheduleController();
            Schedule           schedule   = CreateSchedule();

            Baptizer b1 = new Baptizer
            {
                Person = new Person {
                    PersonID = 3, FirstName = "Jimmy", LastName = "Jams"
                }
            };

            Baptizer b2 = new Baptizer
            {
                Person = new Person {
                    PersonID = 4, FirstName = "James", LastName = "Jams"
                }
            };

            List <Baptizer> baptizers = new List <Baptizer>
            {
                TestFactories.GetBaptizer(),
                            b1
            };

            controller.CreateScheduleItem(schedule, DateTime.Now, TestFactories.GetDefaultPerson(), baptizers,
                                          TestFactories.GetDefaultPerson(), true, "test user");
            ScheduleItem item = schedule.ScheduleItems.First();

            baptizers = new List <Baptizer>
            {
                TestFactories.GetBaptizer(),
                    b2
            };

            controller.UpdateScheduleItem(schedule, item.ScheduleItemID, DateTime.Now, TestFactories.GetDefaultPerson(), baptizers,
                                          TestFactories.GetDefaultPerson(), true, "test user");

            Assert.AreEqual(item.Baptizers.Count, 2);
            Assert.IsTrue(item.Baptizers.Any(b => b.Person.PersonID == 2));
            Assert.IsTrue(item.Baptizers.Any(b => b.Person.PersonID == 4));
            Assert.IsFalse(item.Baptizers.Any(b => b.Person.PersonID == 3));
        }
예제 #7
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                ClearStatus();
                DateTime date     = GetDate();
                Person   person   = LoadPerson(ihPersonID.Value);
                Person   approver = LoadPerson(ihApproverID.Value);
                int      scheduleItemID;

                if (scheduleItem == null)
                {
                    scheduleController.CreateScheduleItem(schedule, date, person, GetBaptizers(),
                                                          approver, cbConfirmed.Checked, CurrentUser.Identity.Name);
                    scheduleItemID = schedule.ScheduleItems.First(i => i.Person.FullName == person.FullName).ScheduleItemID;
                    scheduleItem   = schedule.ScheduleItems.SingleOrDefault(i => i.ScheduleItemID == scheduleItemID);
                }
                else
                {
                    scheduleController.UpdateScheduleItem(schedule, scheduleItem.ScheduleItemID, date,
                                                          person, GetBaptizers(), approver, cbConfirmed.Checked, CurrentUser.Identity.Name);
                    scheduleItemID = scheduleItem.ScheduleItemID;
                }

                if (approver == null)
                {
                    lblApprover.Text = Constants.NULL_STRING;
                }

                ihPersonList.Value     = Constants.NULL_STRING;
                ihSearchType.Value     = Constants.NULL_STRING;
                ihScheduleItemID.Value = scheduleItemID.ToString();
                ShowSuccess();
            }
            catch (ValidationException ex)
            {
                ShowErrors(ex.Errors);
            }
        }