Beispiel #1
0
        public ApiResult<Book> LoanBook(string isbn)
        {
            try
            {
                using (var db = new BookShelfDbContext())
                {
                    var book = db.Books.SingleOrDefault(b => b.Isbn == isbn);
                    if (book == null)
                        return new ApiResult<Book>()
                        {
                            Success = false,
                            ErrorMessages = new List<string>() { "Book doesn't exist" }
                        };
                    if (book.Loaned)
                        return new ApiResult<Book>()
                        {
                            Success = false,
                            ErrorMessages = new List<string>() { "Book is already loaned" }
                        };
                    book.Loaned = true;
                    db.Entry(book).State = EntityState.Modified;
                    db.SaveChanges();
                    return new ApiResult<Book>()
                    {
                        Result = book,
                        Success = true
                    };
                }

            }
            catch (Exception e)
            {
                return new ApiResult<Book>()
                {
                    Success = false,
                    ErrorMessages = new List<string>() { e.Message }
                };
            }
        }