Пример #1
0
        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());
        }
Пример #5
0
        public async Task OnGetAsync(Guid id)
        {
            var slideDto = await _slideAppService.GetAsync(id);

            Slide = ObjectMapper.Map <SlideDto, EditSlideViewModel>(slideDto);
        }