Ejemplo n.º 1
0
 private static DomainGenerator EmployeeGenerator(ISession session)
 {
     return(Using.TheseConventions()
            .With <Employee>(options => options.Ignore(employee => employee.Id))
            .With <Employee>(options => options.Length(employee => employee.FirstName, 1, 50))
            .With <Employee>(options => options.Length(employee => employee.LastName, 1, 75))
            .With <Employee>(options => options.Length(employee => employee.Title, 1, 50))
            .With <Employee>(options => options.Range(employee => employee.Salary, 1700, 3500))
            .With <Employee>(options => options.Length(employee => employee.Phone, 1, 15))
            .ForEach <Employee>(employee => session.Save(employee)));
 }
Ejemplo n.º 2
0
        public static void Create(ISession session)
        {
            var customers = Using.TheseConventions()
                            .With <Customer>(options => options.Length(customer => customer.Name, 5, 100))
                            .With <Customer>(options => options.Range(customer => customer.DiscountPercentage, 0, 25))
                            .ForEach <Customer>(customer => session.Save(customer))
                            .Many <Customer>(20, 40)
                            .ToArray();

            var managers = EmployeeGenerator(session)
                           .Many <Employee>(2);

            var employees = EmployeeGenerator(session)
                            .ForEach <Employee>(employee => Maybe.Do(() => managers.PickOne().AddSubordinate(employee)))
                            .Many <Employee>(20)
                            .ToArray();

            var suppliers = Using.TheseConventions()
                            .With <Supplier>(options => options.Length(supplier => supplier.Website, 1, 100))
                            .With <Supplier>(options => options.Length(supplier => supplier.Name, 5, 25))
                            .ForEach <Supplier>(supplier => session.Save(supplier))
                            .Many <Supplier>(20)
                            .ToArray();

            var products = Using.TheseConventions()
                           .ForEach <ProductSource>(productsource => session.Save(productsource))
                           .With <Product>(options => options.Ignore(product => product.Version))
                           .With <Product>(options => options.For(
                                               product => product.Category,
                                               ProductCategory.Beverages,
                                               ProductCategory.Condiments,
                                               ProductCategory.DairyProducts,
                                               ProductCategory.Produce))
                           .With <Product>(g => g.Method <double>(0, 5, (product, d) => product.AddSource(suppliers.PickOne(), d)))
                           .With <Product>(options => options.Length(product => product.Name, 1, 50))
                           .ForEach <Product>(product => session.Save(product))
                           .Many <Product>(50)
                           .ToArray();

            Using.TheseConventions()
            .With <OrderItem>(options => options.For(item => item.Product, products))
            .OneToMany <Order, OrderItem>(1, 5, (order, item) => order.AddItem(item))
            .With <Order>(options => options.For(order => order.Customer, customers))
            .With <Order>(options => options.For(order => order.Employee, employees))
            .OneToOne <Order, Address>((order, address) => order.DeliveryAddress = address)
            .ForEach <Order>(order => session.Save(order))
            .Many <Order>(50);

            session.Flush();
        }