Example #1
0
        private static decimal determineToppingsCost(PizzaPriceDto price, OrdersDto order)
        {
            decimal cost = 0.0M;

            cost += (order.Sausage) ? price.SausageCost : 0M;
            cost += (order.Pepperoni) ? price.PepperoniCost : 0M;
            cost += (order.Onions) ? price.OnionsCost : 0M;
            cost += (order.GreenPeppers) ? price.GreenPeppersCost : 0M;
            return(cost);
        }
Example #2
0
        private static decimal determineCrustCost(PizzaPriceDto price, OrdersDto order)
        {
            decimal cost = 0.0M;

            switch (order.Crust)
            {
            case DTO.Enums.CrustType.Regular:
                cost = price.RegularCrustCost;
                break;

            case DTO.Enums.CrustType.Thin:
                cost = price.ThinCrustCost;
                break;

            case DTO.Enums.CrustType.Thick:
                cost = price.ThickCrustCost;
                break;

            default:
                break;
            }
            return(cost);
        }
Example #3
0
        private static decimal determineSizeCost(PizzaPriceDto price, OrdersDto order)
        {
            var cost = 0.0M;

            switch (order.Size)
            {
            case DTO.Enums.SizeType.Small:
                cost = price.SmallSizeCost;
                break;

            case DTO.Enums.SizeType.Medium:
                cost = price.MediumSizeCost;
                break;

            case DTO.Enums.SizeType.Large:
                cost = price.LargeSizeCost;
                break;

            default:
                break;
            }
            return(cost);
        }
Example #4
0
        public OrderDto SaveOrder(OrderDto newOrder)
        {
            Order order = _orderRepository.GetItem(newOrder.Id) ?? new Order {
            };

            order.Name    = newOrder.Name;
            order.Surname = newOrder.Surname;
            order.Phone   = newOrder.Phone;
            order.Total   = newOrder.Total;
            if (newOrder.AccountId == 0 || newOrder.AccountId == null)
            {
                order.AccountId = null;
            }
            else
            {
                order.AccountId = newOrder.AccountId;
            }
            order.Address = newOrder.Address;
            if (order.Id == 0)
            {
                order.CreatedAt = DateTime.Now;
            }
            order = _orderRepository.Save(order);
            if (order.OrderPrices != null)
            {
                order.OrderPrices.ToList().ForEach(price =>
                {
                    PizzaPriceDto foundPrice = null;
                    newOrder.Pizzas.ForEach(pizza =>
                    {
                        foundPrice = pizza.Prices.Find(newPrice =>
                        {
                            return(newPrice.Id == price.PriceId);
                        });
                    });
                    if (foundPrice == null)
                    {
                        _orderPriceRepository.Delete(price.Id);
                    }
                });
            }
            newOrder.Pizzas.ForEach(pizza =>
            {
                pizza.Prices.ForEach(price =>
                {
                    OrderPrice foundOrderPrice = null;
                    if (order.OrderPrices != null)
                    {
                        foundOrderPrice = order.OrderPrices.ToList().Find(orderPrice => orderPrice.PriceId == price.Id);
                    }
                    if (foundOrderPrice == null)
                    {
                        OrderPrice newOrderPrice = new OrderPrice {
                            Id      = 0,
                            Count   = (int)price.Count,
                            OrderId = order.Id,
                            PriceId = price.Id
                        };
                        _orderPriceRepository.Save(newOrderPrice);
                    }
                });
            });
            return(ConvertOrder(order));
        }