Esempio n. 1
0
        public async Task EditWebtoon(EditWebtoonInputModel input, string userId, string webRootPath)
        {
            var webtoon = this.webtoonsRepository.GetWebtoonByTitleNumber(input.WebtoonTitleNumber);

            if (webtoon.AuthorId != userId)
            {
                throw new ArgumentException("Invalid operation.");
            }

            if (input.Title != input.OldTitle)
            {
                var topFolder        = $@"{webRootPath}\Webtoons";
                var webtoonFolder    = Path.Combine(topFolder, input.OldTitle);
                var newWebtoonFolder = Path.Combine(topFolder, input.Title);
                Directory.Move(webtoonFolder, newWebtoonFolder);
            }

            var extention = Path.GetExtension(webtoon.CoverPhoto).TrimStart('.');

            webtoon.GenreId    = input.GenreId;
            webtoon.UploadDay  = input.UploadDay;
            webtoon.Title      = input.Title;
            webtoon.Synopsis   = input.Synopsis;
            webtoon.CoverPhoto = input.Title + $"/cover.{extention}";

            await this.webtoonsRepository.SaveChangesAsync();
        }
        public async Task <IActionResult> EditWebtoon(EditWebtoonInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                input.Genres = this.genresService.GetAllAsKeyValuePairs();
                return(this.View(input));
            }

            var userId      = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
            var webRootPath = this.webHostEnvironment.WebRootPath;

            await this.webtoonsService.EditWebtoon(input, userId, webRootPath);

            return(this.RedirectToAction("GetAllWebtoons"));
        }
Esempio n. 3
0
        public async Task EditWebtoonAsyncWorksCorrectly()
        {
            var mockWebtoonsRepo = new Mock <IWebtoonsRepository>();
            var webtoons         = new List <Webtoon>();
            var firstWebtoon     = new Webtoon()
            {
                Id       = "7",
                AuthorId = "123",
                GenreId  = "14",
                Genre    = new Genre()
                {
                    Name = "action",
                    Id   = "14"
                },
                Author = new ApplicationUser()
                {
                    Id       = "123",
                    UserName = "******"
                },
                Title       = "New Title",
                TitleNumber = "1",
                UploadDay   = MyWebtoonWebProject.Data.Models.Enums.DayOfWeek.Friday,
                Synopsis    = "old synopsis",
                CoverPhoto  = "my old friend.jpeg"
            };

            mockWebtoonsRepo.Setup(x => x.GetWebtoonByTitleNumber("1")).Returns(firstWebtoon);
            var input = new EditWebtoonInputModel()
            {
                Title              = "Darkness",
                OldTitle           = "Darkness",
                GenreId            = "16",
                UploadDay          = MyWebtoonWebProject.Data.Models.Enums.DayOfWeek.Tuesday,
                Synopsis           = "new synopsis",
                WebtoonTitleNumber = "1",
            };
            var fakePath = $@"C:\MyWebtoonWebProject\MyWebtoonWebProject\TestResults";

            var service = new WebtoonsService(mockWebtoonsRepo.Object, null, null, null, null, null, null, null, null, null);

            await service.EditWebtoon(input, "123", fakePath);

            Assert.Equal("Darkness", firstWebtoon.Title);
            Assert.Equal("16", firstWebtoon.GenreId);
            Assert.Equal("Tuesday", firstWebtoon.UploadDay.ToString());
            Assert.Equal("new synopsis", firstWebtoon.Synopsis);
        }
Esempio n. 4
0
        public EditWebtoonInputModel GetWebtoonToEdit(string webtoonTitleNumber, string userId)
        {
            var webtoon = this.webtoonsRepository.GetWebtoonByTitleNumber(webtoonTitleNumber);

            if (webtoon.AuthorId != userId)
            {
                throw new ArgumentException("Invalid data!");
            }

            var info = new EditWebtoonInputModel
            {
                OldTitle           = webtoon.Title,
                Title              = webtoon.Title,
                Synopsis           = webtoon.Synopsis,
                UploadDay          = webtoon.UploadDay,
                WebtoonTitleNumber = webtoon.TitleNumber,
            };

            return(info);
        }