public virtual async Task <IActionResult> SubscribeToBok(Guid bookId)
        {
            var subscriptionId = RequestContextProvider.Context.SubscriptionId ?? null;

            if (subscriptionId == null)
            {
                return(BadRequest("You don't have a subscription."));
            }

            var user = await _userService.GetUserInfo(RequestContextProvider.Context.UserName);

            var isAlreadySubscribed = await IsAlreadySubscribed(bookId, user.Id, subscriptionId.Value);

            if (isAlreadySubscribed)
            {
                return(BadRequest("You have already subscribed to this book."));
            }

            var result = await _bookUSerSubscriptionService.CreateAsync(new UserBook
            {
                BookId         = bookId,
                UserId         = user.Id,
                OnSale         = false,
                SubscriptionId = Guid.Parse(RequestContextProvider.Context.SubscriptionId.ToString())
            });

            return(Ok(result));
        }
예제 #2
0
        public virtual async Task <IActionResult> AddBook([FromBody] CreateBookRequest createBookRequest)
        {
            var user = await _userService.GetUserInfo(RequestContextProvider.Context.UserName);

            var book = Mapper.Map <CreateBookResponse>(await _bookService.CreateAsync(Mapper.Map <Book>(createBookRequest)));


            await _bookUSerSubscriptionService.CreateAsync(new UserBook
            {
                BookId         = book.Id,
                UserId         = user.Id,
                OnSale         = createBookRequest.OnSale,
                SubscriptionId = null
            });

            return(Ok(book));
        }