public HttpResponseMessage CreateBook([FromBody] BookShortModel book,
                                              [ValueProvider(typeof(HeaderValueProviderFactory <string>))] string sessionKey)
        {
            var responseMsg = this.PerformOperationAndHandleExceptions(() =>
            {
                var context = new BookstoreContext();

                var user = context.Users.FirstOrDefault(usr => usr.SessionKey == sessionKey);
                if (user == null)
                {
                    throw new InvalidOperationException("Invalid username or password");
                }


                var bookToAdd   = new Book();
                bookToAdd.Title = book.Title;
                if (book.PublishDate != null)
                {
                    bookToAdd.PublishDate = book.PublishDate;
                }

                bookToAdd.CoverUrl = book.CoverUrl;

                context.Books.Add(bookToAdd);
                context.SaveChanges();
                return(Request.CreateResponse(HttpStatusCode.Created));
            });

            return(responseMsg);
        }
        public HttpResponseMessage UpdateBook([FromBody] BookShortModel bookModel,
                                              [ValueProvider(typeof(HeaderValueProviderFactory <string>))] string sessionKey)
        {
            var responseMsg = this.PerformOperationAndHandleExceptions(() =>
            {
                BookstoreContext context = new BookstoreContext();
                var bookEntity           = context.Books.SingleOrDefault(u => u.Id == bookModel.Id);
                if (bookModel.Title != null)
                {
                    bookEntity.Title = bookModel.Title;
                }

                if (bookModel.PublishDate != null)
                {
                    bookEntity.PublishDate = bookModel.PublishDate;
                }

                if (bookModel.CoverUrl != null)
                {
                    bookEntity.CoverUrl = bookModel.CoverUrl;
                }

                context.SaveChanges();

                return(Request.CreateResponse(HttpStatusCode.OK));
            });

            return(responseMsg);
        }
Example #3
0
 public static CommentModel ToCommentModel(this ServiceComment comment, UserShortModel user, BookShortModel book)
 {
     return(new CommentModel
     {
         PublishTime = comment.PublishTime,
         Book = book,
         ID = comment.ID,
         Text = comment.Text,
         User = user
     });
 }
Example #4
0
 public static ReviewModel ToReviewModel(this ServiceReview review, UserShortModel user, BookShortModel book)
 {
     return(new ReviewModel()
     {
         ID = review.ID,
         Book = book,
         Header = review.Header,
         PublishTime = review.PublishTime,
         Text = review.Text,
         Type =
             (review.Type < 0)
                 ? ReviewType.Negative
                 : review.Type == 0 ? ReviewType.Neutral : ReviewType.Positive,
         User = user,
     });
 }
 public static CollectionBookModel ToCollectionBookModel(this ServiceCollectionBook clBook, BookShortModel book, CollectionModel cl)
 {
     return(new CollectionBookModel()
     {
         ID = clBook.ID,
         collection = cl,
         IsRead = clBook.IsRead,
         book = book
     });
 }
Example #6
0
 public static ContentModel ToContentModel(this ServiceContent content, UserShortModel user, BookShortModel book)
 {
     return(new ContentModel
     {
         Book = book,
         ID = content.ID,
         Text = content.Text,
         User = user
     });
 }