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