public ActionResult Update(AddSportEventViewModel viewModel) { if (ModelState.IsValid) { try { _sportEventManager.EditSportEvent(viewModel.SportEvent); TempData["notification"] = viewModel.SportEvent.Name.UpdateMessage("Sportevent"); return(RedirectToAction("Index")); } catch (DbUpdateException db) { TempData["notification"] = viewModel.SportEvent.Name.InUseRemoveMessage("Sportevent"); } catch (Exception e) { TempData["notification"] = viewModel.SportEvent.Name.ErrorUpdateMessage("Sportevent"); } } else { TempData["notification"] = viewModel.SportEvent.Name.ErrorUpdateMessage("Sportevent"); } var sports = _sportManager.SportsList(); viewModel.Sports = sports; return(View("Update", viewModel)); }
public Task BindModelAsync(ModelBindingContext modelBindingContext) { if (!DateTime.TryParse( modelBindingContext.ActionContext.HttpContext.Request.Form["SportEvent.EventStartTime.Date"], out var dateTime) || !TimeSpan.TryParse( modelBindingContext.ActionContext.HttpContext.Request.Form["SportEvent.EventEndTime.Time"], out var timeFinishTime) || !TimeSpan.TryParse( modelBindingContext.ActionContext.HttpContext.Request.Form["SportEvent.EventStartTime.Time"], out var timeStartTime) || !int.TryParse(modelBindingContext.ActionContext.HttpContext.Request.Form["SportEvent.SportId"], out var sportId) || !int.TryParse(modelBindingContext.ActionContext.HttpContext.Request.Form["SportEvent.MinAttendees"], out var minAttendees) || !int.TryParse(modelBindingContext.ActionContext.HttpContext.Request.Form["SportEvent.MaxAttendees"], out var maxAttendees) || !int.TryParse(modelBindingContext.ActionContext.HttpContext.Request.Form["SportEvent.SportEventId"], out var sportEventId) ) { var modelfail = new AddSportEventViewModel() { SportEvent = new SportEvent { Description = modelBindingContext.ActionContext.HttpContext.Request.Form["SportEvent.Description"], EventEndTime = dateTime.Add(timeFinishTime), EventStartTime = dateTime.Add(timeStartTime), Name = modelBindingContext.ActionContext.HttpContext.Request.Form["SportEvent.Name"], MinAttendees = 0, MaxAttendees = 0, }, AddReservation = true }; modelBindingContext.Result = ModelBindingResult.Success(modelfail); return(Task.CompletedTask); } var model = new AddSportEventViewModel() { SportEvent = new SportEvent { Description = modelBindingContext.ActionContext.HttpContext.Request.Form["SportEvent.Description"], EventEndTime = dateTime.Add(timeFinishTime), EventStartTime = dateTime.Add(timeStartTime), Name = modelBindingContext.ActionContext.HttpContext.Request.Form["SportEvent.Name"], MinAttendees = minAttendees, MaxAttendees = maxAttendees, SportId = sportId, SportEventId = sportEventId }, AddReservation = false }; modelBindingContext.Result = ModelBindingResult.Success(model); return(Task.CompletedTask); }
public ViewResult Add() { var sports = _sportManager.SportsList(); var addSportEventViewModel = new AddSportEventViewModel { Sports = sports }; return(View(addSportEventViewModel)); }
public ActionResult Update(int sportEventId) { var sports = _sportManager.SportsList(); SportEvent sportEventToUpdate = _sportEventManager.ViewSportEvent(sportEventId); var addSportEventViewModel = new AddSportEventViewModel { SportEvent = sportEventToUpdate, Sports = sports }; return(View(addSportEventViewModel)); }
public void TestUpdateSportEventGetRequestsReturnsViewWithSportEventModel() { //Arrange var dummySportEvent = new SportEvent { Name = "Voetbaltoernooi", Description = "Potje voetballen voor de starters", MaxAttendees = 5, MinAttendees = 20, SportId = 2, EventStartTime = DateTime.Today.AddHours(11), EventEndTime = DateTime.Today.AddHours(13) }; var sports = new[] { new Sport { Name = "Voetbal" }, new Sport { Name = "Basketbal" }, new Sport { Name = "Hockey" }, new Sport { Name = "Volleybal" }, }; var addSportEventViewModel = new AddSportEventViewModel { SportEvent = dummySportEvent, Sports = sports }; var mockSportManager = new Mock <ISportManager>(); var mockSportEventManager = new Mock <ISportEventManager>(); var controller = new SportEventController(mockSportEventManager.Object, mockSportManager.Object); mockSportManager.Setup(sm => sm.SportsList()).Returns(sports); mockSportEventManager.Setup(sm => sm.ViewSportEvent(It.IsAny <int>())).Returns(dummySportEvent); //Act var result = controller.Update(1) as ViewResult; var viewModel = (AddSportEventViewModel)result.Model; //Assert Assert.IsType(typeof(ViewResult), result); Assert.Equal(4, viewModel.Sports.Count()); }
public void TestAddSportEventGetViewThatContainsListOfSports() { //Arrange var sports = new[] { new Sport { Name = "Voetbal" }, new Sport { Name = "Basketbal" }, new Sport { Name = "Hockey" }, new Sport { Name = "Volleybal" } }; var addSportEventViewModel = new AddSportEventViewModel { Sports = sports, AddReservation = false }; var mockSportManager = new Mock <ISportManager>(); var mockSportEventManager = new Mock <ISportEventManager>(); var controller = new SportEventController(mockSportEventManager.Object, mockSportManager.Object); mockSportManager.Setup(sm => sm.SportsList()).Returns(sports); //Act var result = controller.Add(); var viewModel = (AddSportEventViewModel)result.Model; //Assert Assert.IsType(typeof(ViewResult), result); Assert.Equal(4, viewModel.Sports.Count()); }
public void TestUpdateSportEventPostRequestModelStateInvalidReturnsToIndex() { //Arrange var dummySportEvent = new SportEvent { Name = "Voetbaltoernooi", Description = "Potje voetballen voor de starters", MaxAttendees = 5, MinAttendees = 20, SportId = 2, EventStartTime = DateTime.Today.AddHours(11), EventEndTime = DateTime.Today.AddHours(13) }; var addSportEventViewModel = new AddSportEventViewModel { SportEvent = dummySportEvent }; var mockSportManager = new Mock <ISportManager>(); var mockSportEventManager = new Mock <ISportEventManager>(); var mockTempData = new Mock <ITempDataDictionary>(); var controller = new SportEventController(mockSportEventManager.Object, mockSportManager.Object) { TempData = mockTempData.Object }; controller.ModelState.AddModelError("key", "error message"); mockSportEventManager.Setup(sm => sm.EditSportEvent(It.IsAny <SportEvent>())).Returns(true); //Act var result = controller.Update(addSportEventViewModel) as ViewResult; //Assert Assert.IsType(typeof(ViewResult), result); Assert.Same("Update", result.ViewName); }
public void TestAddModelInvalidSportEventReturnsAddViewWithErrorMessage() { //Arrange var dummySportEvent = new SportEvent { Name = "Voetbaltoernooi", Description = "Potje voetballen voor de starters", MaxAttendees = 5, MinAttendees = 20, SportId = 2, EventStartTime = DateTime.Today.AddHours(11), EventEndTime = DateTime.Today.AddHours(13) }; var addSportEventViewModel = new AddSportEventViewModel { SportEvent = dummySportEvent, AddReservation = false }; var mockSportManager = new Mock <ISportManager>(); var mockSportEventManager = new Mock <ISportEventManager>(); var mockTempData = new Mock <ITempDataDictionary>(); var controller = new SportEventController(mockSportEventManager.Object, mockSportManager.Object) { TempData = mockTempData.Object }; controller.ModelState.AddModelError("key", "error message"); //Act var result = controller.Add(addSportEventViewModel) as ViewResult; //Assert Assert.IsType(typeof(ViewResult), result); }
public void TestAddSportEventReturnsToAddMethodInReservationControllerAction() { //Arrange var dummySportEvent = new SportEvent { Name = "Voetbaltoernooi", Description = "Potje voetballen voor de starters", MaxAttendees = 30, MinAttendees = 22, SportId = 2, EventStartTime = DateTime.Today.AddHours(11), EventEndTime = DateTime.Today.AddHours(13) }; var addSportEventViewModel = new AddSportEventViewModel { SportEvent = dummySportEvent, AddReservation = true }; var mockSportManager = new Mock <ISportManager>(); var mockSportEventManager = new Mock <ISportEventManager>(); var mockTempData = new Mock <ITempDataDictionary>(); var controller = new SportEventController(mockSportEventManager.Object, mockSportManager.Object) { TempData = mockTempData.Object }; mockSportEventManager.Setup(x => x.AddSportEvent(It.IsAny <SportEvent>())).Returns(true); //Act var result = controller.Add(addSportEventViewModel) as RedirectToActionResult; //Assert Assert.IsType(typeof(RedirectToActionResult), result); Assert.Same("Index", result.ActionName); }