static void CreateBaseConfig() { logger.Info("Настройка параметров базы..."); // Настройка ORM var db = FluentNHibernate.Cfg.Db.MySQLConfiguration.Standard .ConnectionString(QSMain.ConnectionString) .ShowSql() .FormatSql(); OrmMain.ConfigureOrm(db, new System.Reflection.Assembly[] { System.Reflection.Assembly.GetAssembly(typeof(MainClass)), System.Reflection.Assembly.GetAssembly(typeof(QSBanks.QSBanksMain)), System.Reflection.Assembly.GetAssembly(typeof(QSContactsMain)), }); OrmMain.ClassMappingList = new List <IOrmObjectMapping> { //Компания OrmObjectMapping <User> .Create().DefaultTableView().SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <Employee> .Create().Dialog <EmployeeDlg>().JournalFilter <EmployeeFilter>() .DefaultTableView().Column("Код", x => x.Id.ToString()).SearchColumn("Ф.И.О.", x => x.FullName).Column("Категория", x => x.Category.GetEnumTitle()).OrderAsc(x => x.LastName).OrderAsc(x => x.Name).OrderAsc(x => x.Patronymic).End(), OrmObjectMapping <Organization> .Create().Dialog <OrganizationDlg>().DefaultTableView().Column("Код", x => x.Id.ToString()).SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <Cabine> .Create().Dialog <CabineDlg>() .DefaultTableView().SearchColumn("Номер", x => x.Number).SearchColumn("Название", x => x.Name).Column("Цвет", x => x.Color.Name).End(), OrmObjectMapping <CabineColor> .Create().DefaultTableView().Column("Код", x => x.Id.ToString()).SearchColumn("Название", x => x.Name).End(), //Клиент OrmObjectMapping <Contact> .Create().Dialog <ContactDlg>() .DefaultTableView().SearchColumn("Фамилия", x => x.Surname).SearchColumn("Имя", x => x.Name).SearchColumn("Отчество", x => x.Patronymic).End(), OrmObjectMapping <DeliveryPoint> .Create().Dialog <DeliveryPointDlg>(), OrmObjectMapping <DocTemplate> .Create().Dialog <DocTemplateDlg>().DefaultTableView().SearchColumn("Название", x => x.Name).Column("Тип", x => x.TemplateType.GetEnumTitle()).End(), OrmObjectMapping <Counterparty> .Create().Dialog <CounterpartyDlg>().DefaultTableView().SearchColumn("Название", x => x.FullName).End().UseSlider(false), OrmObjectMapping <ContractLongLease> .Create().Dialog <ContractLongLeaseDlg>(), OrmObjectMapping <ContractShortLease> .Create().Dialog <ContractShortLeaseDlg>(), OrmObjectMapping <ContractMaintenance> .Create().Dialog <ContractMaintenanceDlg>(), }; OrmMain.ClassMappingList.AddRange(QSBanks.QSBanksMain.GetModuleMaping()); OrmMain.ClassMappingList.AddRange(QSContactsMain.GetModuleMaping()); //Настройка ParentReference ParentReferenceConfig.AddActions(new ParentReferenceActions <Organization, QSBanks.Account> { AddNewChild = (o, a) => o.AddAccount(a) }); ParentReferenceConfig.AddActions(new ParentReferenceActions <Counterparty, QSBanks.Account> { AddNewChild = (c, a) => c.AddAccount(a) }); }
public static void ConfigureDeletion() { logger.Info("Настройка параметров удаления..."); QSContactsMain.ConfigureDeletion(); QSBanksMain.ConfigureDeletion(); DeleteConfig.AddClearDependence <Post> (ClearDependenceInfo.Create <Contact> (item => item.Post)); DeleteConfig.AddClearDependence <Account> (ClearDependenceInfo.Create <Organization> (item => item.DefaultAccount)); DeleteConfig.AddClearDependence <Account> (ClearDependenceInfo.Create <Counterparty> (item => item.DefaultAccount)); #region Client DeleteConfig.AddHibernateDeleteInfo <Contact>() .AddDeleteDependenceFromBag(item => item.Emails) .AddDeleteDependenceFromBag(item => item.Phones) .AddRemoveFromDependence <DeliveryPoint>(x => x.Contacts); DeleteConfig.AddHibernateDeleteInfo <Contract>().HasSubclasses() ; DeleteConfig.AddHibernateDeleteInfo <ContractLongLease>() .AddDeleteDependence <ContractLongLeaseAddress>(x => x.Contract); DeleteConfig.AddHibernateDeleteInfo <ContractLongLeaseAddress>(); DeleteConfig.AddHibernateDeleteInfo <ContractMaintenance>() .AddDeleteDependence <ContractMaintenanceAddress>(x => x.Contract); DeleteConfig.AddHibernateDeleteInfo <ContractMaintenanceAddress>(); DeleteConfig.AddHibernateDeleteInfo <ContractShortLease>() .AddDeleteDependence <ContractShortLeaseAddress>(x => x.Contract); DeleteConfig.AddHibernateDeleteInfo <ContractShortLeaseAddress>() ; DeleteConfig.AddHibernateDeleteInfo <Counterparty>() .AddDeleteDependence <Contact>(x => x.Counterparty) .AddDeleteDependence <Contract>(x => x.Counterparty) .AddDeleteDependence <DeliveryPoint>(x => x.Counterparty) .AddDeleteDependenceFromBag(item => item.Emails) .AddDeleteDependenceFromBag(item => item.Phones) .AddDeleteDependenceFromBag(item => item.Accounts); DeleteConfig.AddHibernateDeleteInfo <DeliveryPoint>() .AddDeleteDependence <ContractLongLeaseAddress>(x => x.DeliveryPoint) .AddDeleteDependence <ContractShortLeaseAddress>(x => x.DeliveryPoint) .AddDeleteDependence <ContractMaintenanceAddress>(x => x.DeliveryPoint) //.AddDeleteDependenceFromBag(x => x.Contacts) FIXME сделать чтобы работало. ; DeleteConfig.AddHibernateDeleteInfo <DocTemplate>() .AddClearDependence <Contract>(x => x.ContractTemplate); #endregion #region Company DeleteConfig.AddHibernateDeleteInfo <CabineColor>() .AddClearDependence <Cabine>(x => x.Color); DeleteConfig.AddHibernateDeleteInfo <Cabine>() .AddRemoveFromDependence <ContractLongLeaseAddress>(x => x.Cabines); DeleteConfig.AddHibernateDeleteInfo <Employee>() .AddClearDependence <Counterparty>(x => x.PaymentManager) .AddClearDependence <Organization>(x => x.Buhgalter) .AddClearDependence <Organization>(x => x.Leader) .AddDeleteDependenceFromBag(x => x.Phones); DeleteConfig.AddHibernateDeleteInfo <Organization>() .AddDeleteDependence <Contract>(x => x.Organization) .AddDeleteDependenceFromBag(x => x.Phones) .AddDeleteDependenceFromBag(x => x.Accounts); DeleteConfig.AddHibernateDeleteInfo <User>() .AddClearDependence <Employee>(x => x.User); #endregion //Для тетирования #if DEBUG DeleteConfig.IgnoreMissingClass.Add(typeof(ContactAndPhonesView)); DeleteConfig.DeletionCheck(); #endif logger.Info("Ок"); }