Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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);
        }