Пример #1
0
        private static async Task InitializeDatabaseAsync()
        {
            using (var context = new OrderManagementContext2())
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                var emma = new Customer {
                    Id = 1, FirstName = "Emma", LastName = "Johnson"
                };
                var marc = new Customer {
                    Id = 2, FirstName = "Marc", LastName = "Milston"
                };

                var camera = new Order {
                    Id = 1, Description = "Camera", DeliveryAddress = "Address 1", Price = 550
                };
                var wallet = new Order {
                    Id = 2, Description = "Wallet", DeliveryAddress = "Address 2", Price = 10
                };

                var customerRepository = new CustomerRepository(context);
                var orderRepository    = new OrderRepository(context);

                customerRepository.Add(emma);
                customerRepository.Add(marc);
                orderRepository.Add(camera);
                orderRepository.Add(wallet);

                await orderRepository.UnitOfWork.SaveChangesAndDispatchDomainEventsAsync();
            }
        }
Пример #2
0
        /// <summary>
        /// In this example, UnitOfWork is accessed through repositories.
        /// The example is extended with concrete repositories.
        /// If necessary, these repositories could be used in example 1 as well.
        /// This example is inspired by eShopOnContainers (https://github.com/dotnet-architecture/eShopOnContainers).
        /// </summary>
        public static async Task ExecuteAsync()
        {
            ConsoleExtension.WriteSeparator("Example 2");

            await InitializeDatabaseAsync();

            using var context = new OrderManagementContext2();
            var customerRepository = new CustomerRepository(context);
            var orderRepository    = new OrderRepository(context);

            var customerController = new CustomerController2(customerRepository);
            var orderController    = new OrderController2(orderRepository);

            ShowAllCustomers();
            ShowAllOrders();
            await CreateNewOrderAsync();

            ShowAllOrders();

            void ShowAllCustomers()
            {
                Console.WriteLine("Showing all customers...");
                foreach (var customer in customerController.GetAll())
                {
                    Console.WriteLine($"{customer.FirstName} {customer.LastName}");
                }
            }

            void ShowAllOrders()
            {
                Console.WriteLine("\nShowing all orders...");
                foreach (var order in orderController.GetAll())
                {
                    Console.WriteLine($"{order.Description} with price of {order.Price:C}");
                }
            }

            async Task CreateNewOrderAsync()
            {
                Console.WriteLine("\nCreating new order...");
                await orderController.CreateAsync(3, "PlayStation 5", "Address 3", 600);
            }
        }
Пример #3
0
 public Repository2(OrderManagementContext2 context)
 {
     _context = context;
 }
 public OrderRepository(OrderManagementContext2 context)
     : base(context)
 {
 }