Ejemplo n.º 1
0
        private Invoice CreateInvoice(Record record)
        {
            var invoice = new Invoice(
                record.Id,
                record.Client,
                record.Country.ToDomain());

            var purchasedBooks = record.BooksInBasket
                                 .Select(b =>
            {
                IBook book = b.Category.HasValue
                        ? new EducationalBook(b.Name, b.Price, b.Author.ToDomain(), b.Language,
                                              b.Category.Value)
                        : (IBook) new Novel(b.Name, b.Price, b.Author.ToDomain(), b.Language, b._Genre);


                return(new PurchasedBook(book, b.Quantity));
            })
                                 .ToList();

            invoice.AddPurchasedBooks(purchasedBooks);
            return(invoice);
        }