public async Task <IActionResult> Edit(EditSlideViewModel model) { if (!this.ModelState.IsValid) { var slide = this.homePageSlidesService.GetById <EditSlideViewModel>(model.Id); if (slide == null) { this.TempData["Error"] = "Slide not found."; return(this.RedirectToAction(nameof(this.All))); } return(this.View(slide)); } var editResult = await this.homePageSlidesService.EditAsync(model, model.Image); if (editResult) { this.TempData["Alert"] = "Successfully edited slide."; } else { this.TempData["Error"] = "There was a problem editing the slide."; } return(this.RedirectToAction(nameof(this.All))); }
public async Task EditAsyncGenericShouldReturnFalseWithInvalidSlideIdUsingMoq() { AutoMapperConfig.RegisterMappings(typeof(ErrorViewModel).GetTypeInfo().Assembly); var slidesRepository = new Mock <IRepository <HomePageSlide> >(); var slides = new List <HomePageSlide> { new HomePageSlide { Id = 1 }, new HomePageSlide { Id = 2 }, }; slidesRepository.Setup(r => r.All()).Returns(slides.AsQueryable()); var service = new HomePageSlidesService(slidesRepository.Object, null); var model = new EditSlideViewModel { Id = 3 }; Assert.False(await service.EditAsync(model, null)); slidesRepository.Verify(x => x.All(), Times.Once); }
public async Task EditAsyncGenericShouldWorkCorrectlyWithImageUsingMoq() { AutoMapperConfig.RegisterMappings(typeof(ErrorViewModel).GetTypeInfo().Assembly); var slidesRepository = new Mock <IRepository <HomePageSlide> >(); var imagesService = new Mock <IImagesService>(); var slides = new List <HomePageSlide> { new HomePageSlide { Id = 1 }, new HomePageSlide { Id = 2, Description = "TestDescription", LinkUrl = "TestLinkUrl" }, }; slidesRepository.Setup(r => r.All()).Returns(slides.AsQueryable()); slidesRepository.Setup(r => r.Update(It.IsAny <HomePageSlide>())).Callback((HomePageSlide item) => { var foundSlide = slides.FirstOrDefault(x => x.Id == item.Id); foundSlide.Description = item.Description; foundSlide.LinkUrl = item.LinkUrl; }); slidesRepository.Setup(r => r.SaveChangesAsync()).Verifiable(); imagesService.Setup(r => r.UploadAzureBlobImageAsync(It.IsAny <IFormFile>(), It.IsAny <string>())) .Returns(async(IFormFile image, string path) => await Task.FromResult(path + "/" + image.FileName)); var service = new HomePageSlidesService(slidesRepository.Object, imagesService.Object); var model = new EditSlideViewModel { Id = 2, Description = "TestDescriptionEdited", LinkUrl = "TestLinkUrlEdited" }; Assert.True(await service.EditAsync(model, new FormFile(null, 0, 0, "test", "test.png"))); Assert.Equal("TestDescriptionEdited", slides.FirstOrDefault(x => x.Id == 2).Description); Assert.Equal("TestLinkUrlEdited", slides.FirstOrDefault(x => x.Id == 2).LinkUrl); Assert.Equal("images/test.png", slides.FirstOrDefault(x => x.Id == 2).ImageUrl); slidesRepository.Verify(x => x.All(), Times.Once); slidesRepository.Verify(x => x.Update(It.IsAny <HomePageSlide>()), Times.Once); slidesRepository.Verify(x => x.SaveChangesAsync()); imagesService.Verify(x => x.UploadAzureBlobImageAsync(It.IsAny <IFormFile>(), It.IsAny <string>()), Times.Once); }
public async Task EditAsyncGenericShouldWorkCorrectlyWithNoImageUsingMoq() { AutoMapperConfig.RegisterMappings(typeof(ErrorViewModel).GetTypeInfo().Assembly); var slidesRepository = new Mock <IRepository <HomePageSlide> >(); var slides = new List <HomePageSlide> { new HomePageSlide { Id = 1 }, new HomePageSlide { Id = 2, Description = "TestDescription", LinkUrl = "TestLinkUrl" }, }; slidesRepository.Setup(r => r.All()).Returns(slides.AsQueryable()); slidesRepository.Setup(r => r.Update(It.IsAny <HomePageSlide>())).Callback((HomePageSlide item) => { var foundSlide = slides.FirstOrDefault(x => x.Id == item.Id); foundSlide.Description = item.Description; foundSlide.LinkUrl = item.LinkUrl; }); slidesRepository.Setup(r => r.SaveChangesAsync()).Verifiable(); var service = new HomePageSlidesService(slidesRepository.Object, null); var model = new EditSlideViewModel { Id = 2, Description = "TestDescriptionEdited", LinkUrl = "TestLinkUrlEdited" }; Assert.True(await service.EditAsync(model, null)); Assert.Equal("TestDescriptionEdited", slides.FirstOrDefault(x => x.Id == 2).Description); Assert.Equal("TestLinkUrlEdited", slides.FirstOrDefault(x => x.Id == 2).LinkUrl); slidesRepository.Verify(x => x.All(), Times.Once); slidesRepository.Verify(x => x.Update(It.IsAny <HomePageSlide>()), Times.Once); slidesRepository.Verify(x => x.SaveChangesAsync()); }
public async Task OnGetAsync(Guid id) { var slideDto = await _slideAppService.GetAsync(id); Slide = ObjectMapper.Map <SlideDto, EditSlideViewModel>(slideDto); }