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); }
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); }