示例#1
0
        public void ignore_when_dates_overlap_existing(int startHour, int endHour)
        {
            //Arrange
            var buildingModelSaver = Substitute.For <IRepository <ScheduleItem> >();

            var schedule = new List <ScheduleItem>
            {
                new ScheduleItem
                {
                    DaysOfWeek = new List <DayOfWeek> {
                        DayOfWeek.Monday
                    },
                    BeginTime = new TimeSpan(10, 0, 0),
                    EndTime   = new TimeSpan(17, 0, 0)
                }
            };

            var building = new Building
            {
                Zones = new List <Zone>
                {
                    new Zone
                    {
                        ZoneId   = 1,
                        Schedule = schedule
                    }
                }
            };

            var input = new NewScheduleItemCommand
            {
                ZoneId     = 1,
                DaysOfWeek = new List <DayOfWeek> {
                    DayOfWeek.Monday
                },
                BeginTime = new TimeSpan(startHour, 0, 0),
                EndTime   = new TimeSpan(endHour, 0, 0)
            };

            //Act
            var newScheduleItemExecutor = new NewScheduleItemCommandExecutor(buildingModelSaver);

            newScheduleItemExecutor.Execute(input, new CommandContext
            {
                ControllerState = new ControllerState
                {
                    Model = building
                }
            });

            //Assert
            buildingModelSaver.DidNotReceiveWithAnyArgs().Create(null, null);
            Assert.Equal(1, schedule.Count);
        }
 public IActionResult NewScheduleItem([FromBody] NewScheduleItemCommand command)
 {
     return(_commandHandler.ExecuteCommand(command, UserId));
 }