public async Task AddNew(NewAddInputModel input, string userId) { if (input == null) { throw new ArgumentNullException("input", $"The given input was null!"); } if (!this.db.Users.Any(u => u.Id == userId)) { throw new ArgumentNullException("userId", $"There is no user with the given user Id!"); } var newDb = new New() { Title = input.Title, Content = input.Content, Image = input.Image, UserId = userId, UploadedOn = DateTime.Now, }; await this.db.News.AddAsync(newDb); await this.db.SaveChangesAsync(); }
public async Task <IActionResult> AddNew(NewAddInputModel input) { var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); if (!this.User.IsInRole("Administrator")) { return(this.Redirect("/")); } await this.newsService.AddNew(input, userId); return(this.Redirect("/LOL/Home")); }
public async Task EditNewShouldReturnTrueWhenSuccessfullyEditedNew() { var user = new ApplicationUser() { Email = "*****@*****.**", PasswordHash = "4297F44B13955235245B2497399D7A93", }; var testNewTitle = "Test"; var testNewContent = "TestContentTestContentTestContent"; var testNewImage = "https://p.bigstockphoto.com/GeFvQkBbSLaMdpKXF1Zv_bigstock-Aerial-View-Of-Blue-Lakes-And--227291596.jpg"; var newDbF = new New() { Title = testNewTitle, Content = testNewContent, Image = testNewImage, UserId = user.Id, UploadedOn = DateTime.UtcNow, }; var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase("test"); var db = new ApplicationDbContext(options.Options); await db.Users.AddAsync(user); await db.News.AddAsync(newDbF); await db.SaveChangesAsync(); var service = new NewsService(db); var editedInput = new NewAddInputModel() { Title = "EditTitle", Content = "EditContent", Image = "EditedImage", }; bool isEdited = await service.EditNew(editedInput, newDbF.NewId); var editedNew = db.News.First(); Assert.True(isEdited, "Edit New does not return true upon successfully editing a new!"); Assert.Equal(editedInput.Title, editedNew.Title); Assert.Equal(editedInput.Content, editedNew.Content); Assert.Equal(editedInput.Image, editedNew.Image); }
public async Task EditNewShouldThrowArgumentNullExceptionIfGivenInvalidNewId() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase("test"); var db = new ApplicationDbContext(options.Options); var service = new NewsService(db); var editedInput = new NewAddInputModel() { Title = "EditTitle", Content = "EditContent", Image = "EditedImage", }; await Assert.ThrowsAsync <ArgumentNullException>(() => service.EditNew(editedInput, "fake_id")); }
public async Task AddNewShouldThrowArgumentNullExceptionIfGivenInvalidUserId() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase("test"); var db = new ApplicationDbContext(options.Options); var service = new NewsService(db); var testNewTitle = "Test"; var testNewContent = "TestContentTestContentTestContent"; var testNewImage = "https://p.bigstockphoto.com/GeFvQkBbSLaMdpKXF1Zv_bigstock-Aerial-View-Of-Blue-Lakes-And--227291596.jpg"; var addNewInput = new NewAddInputModel() { Title = testNewTitle, Content = testNewContent, Image = testNewImage, }; await Assert.ThrowsAsync <ArgumentNullException>(() => service.AddNew(addNewInput, "fake_user_id")); }
public async Task AddNewShouldAddNewWithGivenValidNewAddInputModelAndUserId() { var user = new ApplicationUser() { Email = "*****@*****.**", PasswordHash = "4297F44B13955235245B2497399D7A93", }; var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase("testadd"); var db = new ApplicationDbContext(options.Options); await db.Users.AddAsync(user); await db.SaveChangesAsync(); var service = new NewsService(db); var testNewTitle = "Test"; var testNewContent = "TestContentTestContentTestContent"; var testNewImage = "https://p.bigstockphoto.com/GeFvQkBbSLaMdpKXF1Zv_bigstock-Aerial-View-Of-Blue-Lakes-And--227291596.jpg"; var addNewInput = new NewAddInputModel() { Title = testNewTitle, Content = testNewContent, Image = testNewImage, }; int newsCountBeforeAdd = db.News.Count(); await service.AddNew(addNewInput, user.Id); var addedNew = db.News.First(); Assert.Equal(newsCountBeforeAdd + 1, db.News.Count()); Assert.Equal(addNewInput.Title, addedNew.Title); Assert.Equal(addNewInput.Content, addedNew.Content); Assert.Equal(addNewInput.Image, addedNew.Image); }
public async Task <bool> EditNew(NewAddInputModel input, string newId) { if (input == null) { throw new ArgumentNullException("input", $"The given input was null!"); } var newDb = this.db.News.FirstOrDefault(n => n.NewId == newId); if (newDb != null) { newDb.Title = input.Title; newDb.Content = input.Content; newDb.Image = input.Image; await this.db.SaveChangesAsync(); return(true); } else { throw new ArgumentNullException("newId", $"There is no new with the given new Id ({newId})"); } }