public async Task EditPost_ReturnsARedirectAndUpdateSite_WhenModelStateIsValid() { // Arrange var mockRepo = new Mock <ISitesRepository>(); mockRepo.Setup(repo => repo.GetSingleAsync(It.IsAny <int>())).Returns(Task.FromResult(new Sites())); mockRepo.Setup(repo => repo.UpdateAsync(It.IsAny <Sites>())) .Returns(Task.CompletedTask) .Verifiable(); var mockMapper = new Mock <IMapper <SiteEditViewModel, Sites> >(); mockMapper.Setup(mapper => mapper.Map(It.IsAny <Sites>(), It.IsAny <SiteEditViewModel>())) .Returns(new Sites { CheckInterval = 100 }); var controller = new ManageController(mockRepo.Object, null, mockMapper.Object, null); var editModel = new SiteEditViewModel(); // Act var result = await controller.Edit(1, editModel); // Assert var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Null(redirectToActionResult.ControllerName); Assert.Equal("Index", redirectToActionResult.ActionName); mockRepo.Verify(); }
public ActionResult Edit(SiteEditViewModel model) { if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0) { var fileName = this.Request.Files[0].FileName; var extension = Path.GetExtension(fileName); //delete the old file if (!model.Site.IsNew()) { var oldImage = _service.GetSite().Logo; var oldImagePath = this.Server.MapPath(String.Format("~/user_images/{0}", oldImage)); if (System.IO.File.Exists(oldImagePath)) { System.IO.File.Delete(oldImagePath); } } model.Site.Logo = String.Format("{0}{1}", Guid.NewGuid(), extension); //resize using (var bitMap = ImageHelper.Instance().ResizeImage(Request.Files[0].InputStream, 20, 20)) { var saveTo = this.Server.MapPath(String.Format("~/user_images/{0}", model.Site.Logo)); bitMap.Save(saveTo); } } ; _service.SetSite(model.Site); TempData["message"] = "Site settings have been set"; return(RedirectToAction("Index", "Home", new { id = model.NavigationModel.Page.PageNavigation.Id })); }
public async Task CreatePost_ReturnsARedirectAndAddsSite_WhenModelStateIsValid() { // Arrange var mockRepo = new Mock <ISitesRepository>(); var mapper = new SiteEditViewModelToSiteModelMapper(); mockRepo.Setup(repo => repo.AddAsync(It.IsAny <Sites>())) .Returns(Task.CompletedTask) .Verifiable(); var controller = new ManageController(mockRepo.Object, null, mapper, null); var newEditModel = new SiteEditViewModel { Url = "Url", IntervalSeconds = 10, }; // Act var result = await controller.Create(newEditModel); // Assert var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Null(redirectToActionResult.ControllerName); Assert.Equal("Index", redirectToActionResult.ActionName); mockRepo.Verify(); }
public async Task <IActionResult> Edit(int id, SiteEditViewModel editModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var site = await _sitesRepository.GetSingleAsync(id); if (site == null) { return(NotFound()); } var siteModel = _editModelToModelMapper.Map(site, editModel); if (siteModel.CheckInterval < MinCheckTimeSeconds || siteModel.CheckInterval > MaxCheckTimeSeconds) { return(BadRequest()); } await _sitesRepository.UpdateAsync(siteModel); return(RedirectToAction(nameof(Index))); }
protected override void OnNavigatedTo(NavigationEventArgs e) { _viewModel = new SiteEditViewModel(e.Parameter as Site); MainPage mainPage = (Window.Current.Content as Frame).Content as MainPage; mainPage.NavigationViewLoadMenu(new List <NavigationViewItem>() { new NavigationViewItem() { Icon = new FontIcon() { Glyph = "\xE8BB" }, Content = "Close", Tag = "close" } }, async(sender, args) => { if ((string)(args.SelectedItem as NavigationViewItem).Tag == "close") { await this.ClosePageAsync(); } }); base.OnNavigatedTo(e); }
public ActionResult Edit(int id) { var model = new SiteEditViewModel { Site = _service.GetSite() }; model.NavigationModel = HomeIndexViewModelLoader.Create(id, _service); return(View(model)); }
public async Task EditPost_ReturnsNotFoundResult_WhenSiteNotFound() { // Arrange var mockRepo = new Mock <ISitesRepository>(); mockRepo.Setup(repo => repo.GetSingleAsync(It.IsAny <int>())).Returns(Task.FromResult <Sites>(null)); var controller = new ManageController(mockRepo.Object, null, null, null); var editModel = new SiteEditViewModel(); // Act var result = await controller.Edit(1, editModel); // Assert Assert.IsType <NotFoundResult>(result); }
public async Task CreatePost_ReturnsBadRequestResult_WhenModelStateIsInvalid() { // Arrange var mockRepo = new Mock <ISitesRepository>(); var controller = new ManageController(mockRepo.Object, null, null, null); controller.ModelState.AddModelError("Url", "Required"); var newEditModel = new SiteEditViewModel(); // Act var result = await controller.Create(newEditModel); // Assert var badRequestResult = Assert.IsType <BadRequestObjectResult>(result); Assert.IsType <SerializableError>(badRequestResult.Value); }
public async Task <IActionResult> Create(SiteEditViewModel editModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var siteModel = _editModelToModelMapper.Map(new Sites(), editModel); if (siteModel.CheckInterval < MinCheckTimeSeconds || siteModel.CheckInterval > MaxCheckTimeSeconds) { return(BadRequest()); } await _sitesRepository.AddAsync(siteModel); return(RedirectToAction(nameof(Index))); }
public async Task CreatePost_ReturnsBadRequestResult_WhenIntervalOutOFRange(int checkInterval) { // Arrange var mockRepo = new Mock <ISitesRepository>(); var mockMapper = new Mock <IMapper <SiteEditViewModel, Sites> >(); mockMapper.Setup(mapper => mapper.Map(It.IsAny <Sites>(), It.IsAny <SiteEditViewModel>())) .Returns(new Sites { CheckInterval = checkInterval }); var controller = new ManageController(mockRepo.Object, null, mockMapper.Object, null); var newEditModel = new SiteEditViewModel(); // Act var result = await controller.Create(newEditModel); // Assert Assert.IsType <BadRequestResult>(result); }
protected override async Task OnInitializedAsync() { await SiteEditViewModel.OnInitializedAsync(SiteId); }