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")); }
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")); }
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(); }