public async Task <IActionResult> PostAsync([NotNull] string bookId) { var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; var subscription = new BookSubscriptionServiceModel() { BookId = bookId, UserId = userId }; await _bookSubscriptionsRepository.SaveAsync(subscription); return(Ok()); }
public async Task <IActionResult> DeleteAsync([NotNull] string bookId) { var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; var subscription = new BookSubscriptionServiceModel() { BookId = bookId, UserId = userId }; var deleted = await _bookSubscriptionsRepository.DeleteAsync(subscription); if (!deleted) { return(NotFound()); } return(Ok()); }
public async Task SaveAsync(BookSubscriptionServiceModel bookSubscription) { if (bookSubscription is null) { throw new ArgumentNullException(nameof(bookSubscription)); } if (_dbContext.Users.Any(u => u.Id == bookSubscription.UserId && u.BookSubscriptions.Any(bs => bs.BookId == bookSubscription.BookId))) { // Subscription already exists return; } var bookSubscribtion = new BookSubscription() { BookId = bookSubscription.BookId, UserId = bookSubscription.UserId }; _dbContext.Add(bookSubscribtion).State = EntityState.Added; await _dbContext.SaveChangesAsync(); }
public async Task <bool> DeleteAsync(BookSubscriptionServiceModel bookSubscription) { if (bookSubscription is null) { throw new ArgumentNullException(nameof(bookSubscription)); } if (!_dbContext.Users.Any(u => u.Id == bookSubscription.UserId && u.BookSubscriptions.Any(bs => bs.BookId == bookSubscription.BookId))) { // Subscription does not exist return(false); } var bookSubscribtion = new BookSubscription() { BookId = bookSubscription.BookId, UserId = bookSubscription.UserId }; _dbContext.Add(bookSubscribtion).State = EntityState.Deleted; await _dbContext.SaveChangesAsync(); return(true); }