using System; using System.Linq; using Microsoft.eShopOnContainers.Services.Ordering.SqlData.UnitOfWork; using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel; using Microsoft.eShopOnContainers.Services.Ordering.Domain.Contracts; using Microsoft.eShopOnContainers.Services.Ordering.SqlData.Repositories; using Microsoft.EntityFrameworkCore; namespace eShopConsole { public class Program { public static void Main(string[] args) { //// All contexts that share the same service provider will share the same database ////Using InMemory DB ////var options = DbContextUtil.CreateNewContextOptionsForInMemoryDB(); ////Using Sql Server //var options = DbContextUtil.CreateNewContextOptionsForSqlDb(); //// Run the test against one instance of the context //using (var context = new OrderingDbContext(options)) //{ // IOrderRepository orderRepository = new OrderRepository(context); // //Create generic Address ValueObject // Address sampleAddress = new Address("15703 NE 61st Ct.", // "Redmond", // "Washington", // "WA", // "United States", // "US", // "98052", // 47.661492, // -122.131309 // ); // //Create sample Orders // Order order1 = new Order(Guid.NewGuid(), sampleAddress, sampleAddress); // //Add a few OrderItems // order1.AddNewOrderItem(Guid.NewGuid(), 2, 25, 30); // order1.AddNewOrderItem(Guid.NewGuid(), 1, 58, 0); // order1.AddNewOrderItem(Guid.NewGuid(), 1, 60, 0); // order1.AddNewOrderItem(Guid.NewGuid(), 3, 12, 0); // order1.AddNewOrderItem(Guid.NewGuid(), 5, 3, 0); // orderRepository.Add(order1); // orderRepository.UnitOfWork.CommitAsync(); // //With no Async Repository // //context.Orders.Add(order1); // //context.SaveChanges(); //} ////// Use a separate instance of the context to verify correct data was saved to database //using (var context = new OrderingDbContext(options)) //{ // var orders = context.Orders // .Include(o => o.ShippingAddress) // .Include(o => o.BillingAddress) // .ToList(); // string cityName = orders.First().ShippingAddress.City; // Console.WriteLine("City name retreived from SQL Server: "+cityName); //} } } }