public void ConstructTableBody(OrderItemsCollection orderItems, List <Block> blocks, List <Color> colors)
 {
     foreach (var block in blocks)
     {
         var quantities = GetBlockQuantityByColors(orderItems, colors, block);
         AddRow(block.Shape.ToString(), quantities);
     }
 }
Exemple #2
0
        private List <InvoiceItem> GenerateItemList(OrderItemsCollection orderItems)
        {
            var itemsList = new List <InvoiceItem>();

            itemsList.AddRange(GetShapeRelatedInvoiceItems(orderItems));
            itemsList.AddRange(GetColorRelatedInvoiceItems(orderItems));

            return(itemsList);
        }
        private List <int> GetBlockQuantityByColors(OrderItemsCollection orderItems, List <Color> colors, Block block)
        {
            var quantities = new List <int>();

            foreach (var color in colors)
            {
                quantities.Add(orderItems.GetQuantityByShapeAndColor(block, color));
            }
            return(quantities);
        }
 public void ConstructTableBody(OrderItemsCollection orderItems, List <Block> blocks)
 {
     foreach (var block in blocks)
     {
         var quantities = new List <int> {
             orderItems.GetQuantityByShape(block)
         };
         AddRow(block.Shape.ToString(), quantities);
     }
 }
Exemple #5
0
        private ReportTable GenerateShapeQuanitityTable(OrderItemsCollection orderItems)
        {
            var blocks = orderItems.GetAllShapes();
            var table  = new ReportTable(new List <string> {
                ColumnHeader
            });

            table.ConstructTableBody(orderItems, blocks);

            return(table);
        }
        public ReportTable Generate(OrderItemsCollection orderItems)
        {
            var colors = orderItems.GetAllColors();
            var blocks = orderItems.GetAllShapes();

            var table = new ReportTable(ConvertColorToString(colors));

            table.ConstructTableBody(orderItems, blocks, colors);

            return(table);
        }
Exemple #7
0
        private List <InvoiceItem> GetShapeRelatedInvoiceItems(OrderItemsCollection orderItems)
        {
            var itemsList = new List <InvoiceItem>();
            var blocks    = orderItems.GetAllShapes();

            foreach (var block in blocks)
            {
                var name         = block.Shape.ToString();
                var quantity     = orderItems.GetQuantityByShape(block);
                var pricePerItem = block.Price;
                var totalCost    = quantity * block.Price;
                var invoiceItem  = new InvoiceItem(name, quantity, pricePerItem, totalCost);

                itemsList.Add(invoiceItem);
            }
            return(itemsList);
        }
        private OrderItemsCollection GetOrderItems()
        {
            var orderItems = new List <OrderItem>();

            foreach (var item in _productsList)
            {
                var input    = GetValidUserInput($"the number of {item.GetDisplayName().ToLower()}s");
                var quantity = Int32.Parse(input);
                if (quantity > 0)
                {
                    item.SetQuantity(quantity);
                    orderItems.Add(item);
                }
            }
            var orderItemsCollection = new OrderItemsCollection(orderItems);

            return(orderItemsCollection);
        }
Exemple #9
0
        private List <InvoiceItem> GetColorRelatedInvoiceItems(OrderItemsCollection orderItems)
        {
            var itemsList = new List <InvoiceItem>();
            var colors    = orderItems.GetAllColors();

            foreach (var color in colors)
            {
                if (color.Price != 0)
                {
                    var name         = $"{color.Name} color surcharge";
                    var quantity     = orderItems.GetQuantityByColor(color);
                    var pricePerItem = color.Price;
                    var totalCost    = quantity * color.Price;
                    var invoiceItem  = new InvoiceItem(name, quantity, pricePerItem, totalCost);

                    itemsList.Add(invoiceItem);
                }
            }
            return(itemsList);
        }
Exemple #10
0
 public Order(DateTime dueDate, Customer customer, OrderItemsCollection orderItems)
 {
     DueDate    = dueDate;
     Customer   = customer;
     OrderItems = orderItems;
 }