using System; using System.Collections.Generic; using System.Linq; using System.Text; using FluentNHibernate.Automapping; using Tanshu.Accounts.Contracts; using FluentNHibernate.Cfg; using FluentNHibernate.Cfg.Db; using Tanshu.Accounts.Conventions; using Tanshu.Accounts.Entities; using NHibernate.Tool.hbm2ddl; using NHibernate; using NHibernate.Cfg; using Tanshu.Accounts.Entities.Auth; namespace Tanshu.Accounts.SqlDAO { public static class Fixtures { public static bool CreateSchema() { var cfg = SessionManager.Configuration; new SchemaExport(cfg).Execute(true, true, true); new SchemaExport(cfg).Execute(true, true, false); // next line is just for checking how the nhibernate xml configuration files look //persistenceModel.WriteMappingsTo(@"C:\Temp"); Fixtures.InsertRole(); Fixtures.InsertUser(); Fixtures.InsertGroup(); Fixtures.InsertUserGroup(); Fixtures.InsertRoleGroup(); Fixtures.InsertCustomer(); Fixtures.InsertTax(); Fixtures.InsertWaiter(); Fixtures.InsertPrintLocation(); Fixtures.InsertSettleOption(); InsertFoodTable(); InsertProductGroup(); InsertProductBeer(); InsertModifier(); InsertProductGroupModifier(); return true; } #region role public static void InsertRole() { using (var session = SessionManager.Session) { session.Save(GetRole(1, "Sales/Checkout")); session.Save(GetRole(2, "Sales/SalesBill")); session.Save(GetRole(3, "Sales/SaleDetail")); session.Save(GetRole(4, "Sales/VoidPrintedBill")); session.Save(GetRole(5, "Sales/EditBill")); session.Save(GetRole(6, "Sales/PrintKOT")); session.Save(GetRole(7, "Sales/PrintBill")); session.Save(GetRole(8, "Sales/EditPrintedProduct")); session.Save(GetRole(9, "Sales/ChangeRate")); session.Save(GetRole(10, "Master/Products")); session.Save(GetRole(11, "Security/ManageRoles")); session.Save(GetRole(12, "Log/View")); session.Save(GetRole(13, "Master/Owner")); } } private static Role GetRole(int roleID, string name) { return new Role() { RoleID = roleID, Name = name }; } #endregion #region user public static void InsertUser() { using (var session = SessionManager.Session) { session.Save(GetUser(1, "admin", "password")); } } private static User GetUser(int userID, string name, string password) { return new User() { UserID = userID, Name = name, Password = Tanshu.Common.Md5.Hash(password, "v2"), LockedOut = false }; } #endregion #region group public static void InsertGroup() { using (var session = SessionManager.Session) { session.Save(GetGroup(1, "owner")); session.Save(GetGroup(2, "waiter")); session.Save(GetGroup(3, "captain")); session.Save(GetGroup(4, "manager")); session.Save(GetGroup(5, "controller")); session.Save(GetGroup(6, "accountant")); } } private static Group GetGroup(int groupID, string name) { return new Group() { GroupID = groupID, Name = name }; } #endregion #region user_group public static void InsertUserGroup() { using (var session = SessionManager.Session) { var admin = session.Get(1); var list = session.CreateCriteria() .List(); foreach (var item in list) { session.Save(new UserGroup() { User = admin, Group = item }); } } } #endregion #region role_group public static void InsertRoleGroup() { using (var session = SessionManager.Session) { var owner = session.Get(1); var list = session.CreateCriteria() .List(); foreach (var item in list) { session.Save(new RoleGroup() { Role = item, Group = owner }); } } } #endregion #region customer public static void InsertCustomer() { using (var session = SessionManager.Session) { session.Save(new Customer() { CustomerID = 1, Code = 1, Name = "Cash", Address = "", Important = false, Phone = "", Remarks = "" }); } } #endregion #region tax public static void InsertTax() { using (var session = SessionManager.Session) { session.Save(new Tax() { TaxID = 1, Name = "VAT + SC 12.5%", Rate = .13125M }); session.Save(new Tax() { TaxID = 1, Name = "VAT + SC 25%", Rate = .2625M }); session.Save(new Tax() { TaxID = 1, Name = "Service Tax 10.3%", Rate = .103M }); } } #endregion #region waiter public static void InsertWaiter() { using (var session = SessionManager.Session) { session.Save(new Waiter() { WaiterID = 1, Name = "Waiter", }); } } #endregion #region print_location public static void InsertPrintLocation() { using (var session = SessionManager.Session) { session.Save(new PrintLocation() { PrintLocationID = 1, Location = "Ground", Copies = 2, Printer = @"\\gandalf\kitchen", ProductGroup = null, CutCode = "\n\r\n\r\n\r\n\r\n\r\n\r" + (char)29 + (char)86 + (char)49 }); } } #endregion #region settle_option public static void InsertSettleOption() { using (var session = SessionManager.Session) { session.Save(SettleOptionFactory.OUnsettled); session.Save(SettleOptionFactory.OCash); session.Save(SettleOptionFactory.OCreditCard); session.Save(SettleOptionFactory.ONoCharge); session.Save(SettleOptionFactory.OBillToCompany); session.Save(SettleOptionFactory.OStaff); } } #endregion #region food_table public static void InsertFoodTable() { using (var session = SessionManager.Session) { session.Save(new FoodTable() { FoodTableID = 1, Name = "1" }); session.Save(new FoodTable() { FoodTableID = 2, Name = "2" }); session.Save(new FoodTable() { FoodTableID = 3, Name = "3" }); session.Save(new FoodTable() { FoodTableID = 4, Name = "4" }); session.Save(new FoodTable() { FoodTableID = 5, Name = "5" }); session.Save(new FoodTable() { FoodTableID = 6, Name = "6" }); session.Save(new FoodTable() { FoodTableID = 7, Name = "7" }); session.Save(new FoodTable() { FoodTableID = 8, Name = "8" }); session.Save(new FoodTable() { FoodTableID = 9, Name = "9" }); session.Save(new FoodTable() { FoodTableID = 10, Name = "10" }); } } #endregion #region product_group public static void InsertProductGroup() { using (var session = SessionManager.Session) { session.Save(new ProductGroup() { ProductGroupID = 1, Name = "Beer", DiscountLimit = 0, IsModifierCompulsory = false }); session.Save(new ProductGroup() { ProductGroupID = 2, Name = "Imported Alcohol", DiscountLimit = 0, IsModifierCompulsory = false }); session.Save(new ProductGroup() { ProductGroupID = 3, Name = "IMFL Alcohol", DiscountLimit = 0, IsModifierCompulsory = false }); session.Save(new ProductGroup() { ProductGroupID = 4, Name = "Cocktails", DiscountLimit = 0, IsModifierCompulsory = false }); session.Save(new ProductGroup() { ProductGroupID = 5, Name = "Indian Starters", DiscountLimit = 0, IsModifierCompulsory = false }); session.Save(new ProductGroup() { ProductGroupID = 6, Name = "International Starters", DiscountLimit = 0, IsModifierCompulsory = false }); session.Save(new ProductGroup() { ProductGroupID = 7, Name = "Indian Maincourse", DiscountLimit = 0, IsModifierCompulsory = false }); session.Save(new ProductGroup() { ProductGroupID = 8, Name = "International Maincourse", DiscountLimit = 0, IsModifierCompulsory = false }); session.Save(new ProductGroup() { ProductGroupID = 9, Name = "Pastas", DiscountLimit = 0, IsModifierCompulsory = false }); session.Save(new ProductGroup() { ProductGroupID = 10, Name = "Desserts", DiscountLimit = 0, IsModifierCompulsory = false }); } } #endregion #region product_group public static void InsertProductBeer() { using (var session = SessionManager.Session) { var tax = session.Get(2); var pg = session.Get(1); session.Save(new Product() { ProductID = 1, Code = 1, Name = "Wheat Beer", Units = ".5L Mug", SalePrice = 185, ServiceCharge = .1M, Discontinued = false, MaximumLevel = 0, MinimumLevel = 0, ProductGroup = pg, SortOrder = 1, Tax = tax }); session.Save(new Product() { ProductID = 2, Code = 2, Name = "Light Beer", Units = ".5L Mug", SalePrice = 160, ServiceCharge = .1M, Discontinued = false, MaximumLevel = 0, MinimumLevel = 0, ProductGroup = pg, SortOrder = 1, Tax = tax }); session.Save(new Product() { ProductID = 3, Code = 3, Name = "Dark Beer", Units = ".5L Mug", SalePrice = 160, ServiceCharge = .1M, Discontinued = false, MaximumLevel = 0, MinimumLevel = 0, ProductGroup = pg, SortOrder = 1, Tax = tax }); session.Save(new Product() { ProductID = 4, Code = 4, Name = "Premium Beer", Units = ".5L Mug", SalePrice = 185, ServiceCharge = .1M, Discontinued = false, MaximumLevel = 0, MinimumLevel = 0, ProductGroup = pg, SortOrder = 1, Tax = tax }); session.Save(new Product() { ProductID = 5, Code = 5, Name = "Wheat Beer", Units = "2L Pcr", SalePrice = 650, ServiceCharge = .1M, Discontinued = false, MaximumLevel = 0, MinimumLevel = 0, ProductGroup = pg, SortOrder = 1, Tax = tax }); session.Save(new Product() { ProductID = 6, Code = 6, Name = "Light Beer", Units = "2L Pcr", SalePrice = 550, ServiceCharge = .1M, Discontinued = false, MaximumLevel = 0, MinimumLevel = 0, ProductGroup = pg, SortOrder = 1, Tax = tax }); session.Save(new Product() { ProductID = 7, Code = 7, Name = "Dark Beer", Units = "2L Pcr", SalePrice = 550, ServiceCharge = .1M, Discontinued = false, MaximumLevel = 0, MinimumLevel = 0, ProductGroup = pg, SortOrder = 1, Tax = tax }); session.Save(new Product() { ProductID = 8, Code = 8, Name = "Premium Beer", Units = "2L Pcr", SalePrice = 650, ServiceCharge = .1M, Discontinued = false, MaximumLevel = 0, MinimumLevel = 0, ProductGroup = pg, SortOrder = 1, Tax = tax }); } } #endregion #region modifiers public static void InsertModifier() { using (var session = SessionManager.Session) { session.Save(new Modifier() { ModifierID = 1, Name = "On the Rocks" }); session.Save(new Modifier() { ModifierID = 2, Name = "Frozen" }); session.Save(new Modifier() { ModifierID = 3, Name = "Soda" }); session.Save(new Modifier() { ModifierID = 4, Name = "Water" }); session.Save(new Modifier() { ModifierID = 5, Name = "Spicy" }); session.Save(new Modifier() { ModifierID = 6, Name = "HOLD" }); } } #endregion #region product_group_modifiers public static void InsertProductGroupModifier() { using (var session = SessionManager.Session) { using (var trans = session.BeginTransaction()) { foreach (var item in session.CreateCriteria().List()) { session.Save(new ProductGroupModifier() { Modifier = item }); } trans.Commit(); } } } #endregion } }