public async Task <ActionResult <PhysicalBook> > PostPhysicalBook(PhysicalBook physicalBook)
        {
            _context.PhysicalBook.Add(physicalBook);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetPhysicalBook", new { id = physicalBook.Id }, physicalBook));
        }
        public async Task <IActionResult> PutPhysicalBook(int id, PhysicalBook physicalBook)
        {
            if (id != physicalBook.Id)
            {
                return(BadRequest());
            }

            _context.Entry(physicalBook).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PhysicalBookExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <ActionResult <Order> > PostOrder(Order order)
        {
            _context.Order.Add(order);

            if (order.IsCompleted)
            {
                var physicalBook = new PhysicalBook
                {
                    Book   = order.Book,
                    BookId = order.BookId
                };

                _context.PhysicalBook.Add(physicalBook);
            }

            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetOrder", new { id = order.Id }, order));
        }
Exemplo n.º 4
0
        static async Task ProcessMessagesAsync(Message message, CancellationToken token)
        {
            //Console.WriteLine($"Body:{Encoding.UTF8.GetString(message.Body)}");

            var jsonString = Encoding.UTF8.GetString(message.Body);

            var order = JsonConvert.DeserializeObject <Order>(jsonString);


            var optionsBuilder = new DbContextOptionsBuilder <BookServiceContext>();

            optionsBuilder.UseSqlServer(_connString);

            await using (var context = new BookServiceContext(optionsBuilder.Options))
            {
                var completedOrder = await context.CompletedOrder.FirstOrDefaultAsync(co => co.OrderId == order.Id, token);

                //Meaning the order havnt been fulfilled yet
                if (completedOrder == null)
                {
                    var orderedBook = await context.Book.FirstOrDefaultAsync(b => b.Id == order.BookId, token);

                    var physicalBook = new PhysicalBook
                    {
                        Book   = orderedBook,
                        BookId = order.BookId
                    };

                    context.PhysicalBook.Add(physicalBook);

                    var completedOrder1 = new CompletedOrder
                    {
                        OrderId = order.Id
                    };
                    context.CompletedOrder.Add(completedOrder1);
                    await context.SaveChangesAsync(token);
                }
            }

            await queueClient.CompleteAsync(message.SystemProperties.LockToken);
        }
Exemplo n.º 5
0
 public void Should_tell_me_how_many_books_can_fit_into_it()
 {
     BookShelf bookShelf = new BookShelf(100);
     var book = new PhysicalBook("123", "", "", 100, 20);
     Assert.That(bookShelf.HowManyBooksCanFit(book), Is.EqualTo(5));
 }
Exemplo n.º 6
0
 public int HowManyBooksCanFit(PhysicalBook book)
 {
     return _width / book.Thickness;
 }