Пример #1
0
        public void ShouldBulkEditConferences()
        {
            var conferences = _repository.GetAll();
            var conferenceBulkEditCommand = new ConferenceBulkEditCommand
            {
                Commands = conferences.Select(x => new ConferenceEditCommand
                {
                    Cost      = x.Cost + 1,
                    EndDate   = x.EndDate.AddDays(1),
                    HashTag   = x.HashTag,
                    Id        = x.Id,
                    Name      = x.Name + "1",
                    StartDate = x.StartDate.AddDays(1)
                }).ToList()
            };

            foreach (var editCommand in conferenceBulkEditCommand.Commands)
            {
                var conference = _repository.Load(editCommand.Id);
                conference.ChangeName(editCommand.Name);
                conference.ChangeCost(editCommand.Cost);
                conference.ChangeDates(editCommand.StartDate.Value, editCommand.EndDate.Value);
                _repository.Save(conference);
            }

            var editedConferences = _repository.GetAll().ToArray();

            editedConferences[0].Name.ShouldBe("Game Developer Conference 20161");
            editedConferences[0].Cost.ShouldBe(51);
            editedConferences[0].StartDate.ShouldBe(DateTime.Parse("03/15/2016"));
            editedConferences[0].EndDate.ShouldBe(DateTime.Parse("03/19/2016"));

            editedConferences[1].Name.ShouldBe("PASS Summit1");
            editedConferences[1].Cost.ShouldBe(300);
            editedConferences[1].StartDate.ShouldBe(DateTime.Parse("10/28/2016"));
            editedConferences[1].EndDate.ShouldBe(DateTime.Parse("10/31/2016"));

            editedConferences[2].Name.ShouldBe("Build 20161");
            editedConferences[2].Cost.ShouldBe(200);
            editedConferences[2].StartDate.ShouldBe(DateTime.Parse("03/31/2016"));
            editedConferences[2].EndDate.ShouldBe(DateTime.Parse("04/02/2016"));
        }
Пример #2
0
        public ActionResult BulkEdit(ConferenceBulkEditCommand command)
        {
            if (!ModelState.IsValid)
            {
                return(View(command));
            }

            var conferencesToEdit = new List <Conference>();

            foreach (var editCommand in command.Commands)
            {
                var conference = _repository.Load(editCommand.Id);
                conference.ChangeName(editCommand.Name);
                conference.ChangeCost(editCommand.Cost);
                conference.ChangeDates(editCommand.StartDate.Value, editCommand.EndDate.Value);
                conferencesToEdit.Add(conference);
            }

            _repository.BulkSave(conferencesToEdit);
            return(RedirectToAction("Index"));
        }
Пример #3
0
        public void ShouldBulkEditConferencesWithoutNameChange()
        {
            var conferences = _repository.GetAll();
            var conferenceBulkEditCommand = new ConferenceBulkEditCommand
            {
                Commands = conferences.Select(x => new ConferenceEditCommand
                {
                    Cost      = x.Cost,
                    EndDate   = x.EndDate,
                    HashTag   = x.HashTag,
                    Id        = x.Id,
                    Name      = x.Name,
                    StartDate = x.StartDate
                }).ToList()
            };

            var validator         = new ConferenceEditCommandValidator(new ConferenceValidatorHelper(_repository));
            var validationResults = conferenceBulkEditCommand.Commands.Select(command => validator.Validate(command)).ToList();

            validationResults.Any(x => x.Errors.Count > 0).ShouldBeFalse();
        }