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")); }
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); }
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); }