コード例 #1
0
        private static BlazingPizza.Order FromGrpc(PlaceOrderRequest request)
        {
            // Create DB representation from request
            var order = new BlazingPizza.Order();

            order.CreatedTime      = DateTimeOffset.Now;
            order.DeliveryLocation = new LatLong(51.5001, -0.1239);
            order.UserId           = request.Order.UserId;

            order.DeliveryAddress = new BlazingPizza.Address()
            {
                Name       = request.Order.DeliveryAddress.Name,
                Line1      = request.Order.DeliveryAddress.Line1,
                Line2      = request.Order.DeliveryAddress.Line2,
                City       = request.Order.DeliveryAddress.City,
                Region     = request.Order.DeliveryAddress.Region,
                PostalCode = request.Order.DeliveryAddress.PostalCode,
            };

            // Enforce existence of Pizza.SpecialId and Topping.ToppingId
            // in the database - prevent the submitter from making up
            // new specials and toppings
            foreach (var orderedPizza in request.Order.Pizzas)
            {
                var special = new BlazingPizza.PizzaSpecial()
                {
                    BasePrice   = orderedPizza.Special.BasePrice.DecimalValue,
                    Name        = orderedPizza.Special.Name,
                    Description = orderedPizza.Special.Description,
                    ImageUrl    = orderedPizza.Special.ImageUrl,
                };

                var pizza = new BlazingPizza.Pizza()
                {
                    Size    = orderedPizza.Size,
                    Special = special,
                };

                foreach (var orderedTopping in orderedPizza.Toppings)
                {
                    var topping = new PizzaTopping()
                    {
                        Topping = new BlazingPizza.Topping()
                        {
                            Name  = orderedTopping.Name,
                            Price = orderedTopping.Price.DecimalValue,
                        },
                    };

                    pizza.Toppings.Add(topping);
                }

                order.Pizzas.Add(pizza);
            }

            return(order);
        }
コード例 #2
0
        private static Order FromGrpc(OrderService.Order grpc)
        {
            var order = new BlazingPizza.Order();

            order.OrderId = grpc.Id;

            order.CreatedTime = grpc.CreatedTime.ToDateTimeOffset();
            order.UserId      = grpc.UserId;

            order.DeliveryLocation = new LatLong()
            {
                Latitude  = grpc.DeliveryLocation.Latitude,
                Longitude = grpc.DeliveryLocation.Longitude,
            };

            order.DeliveryAddress = new BlazingPizza.Address()
            {
                Name       = grpc.DeliveryAddress?.Name,
                Line1      = grpc.DeliveryAddress?.Line1,
                Line2      = grpc.DeliveryAddress?.Line2,
                City       = grpc.DeliveryAddress?.City,
                Region     = grpc.DeliveryAddress?.Region,
                PostalCode = grpc.DeliveryAddress?.PostalCode,
            };

            // Enforce existence of Pizza.SpecialId and Topping.ToppingId
            // in the database - prevent the submitter from making up
            // new specials and toppings
            foreach (var orderedPizza in grpc.Pizzas)
            {
                var special = new BlazingPizza.PizzaSpecial()
                {
                    BasePrice   = orderedPizza.Special.BasePrice.DecimalValue,
                    Name        = orderedPizza.Special.Name,
                    Description = orderedPizza.Special.Description,
                    ImageUrl    = orderedPizza.Special.ImageUrl,
                };

                var pizza = new BlazingPizza.Pizza()
                {
                    Size    = orderedPizza.Size,
                    Special = special,
                };

                foreach (var orderedTopping in orderedPizza.Toppings)
                {
                    var topping = new PizzaTopping()
                    {
                        Topping = new BlazingPizza.Topping()
                        {
                            Name  = orderedTopping.Name,
                            Price = orderedTopping.Price.DecimalValue,
                        },
                    };

                    pizza.Toppings.Add(topping);
                }

                order.Pizzas.Add(pizza);
            }

            return(order);
        }