Пример #1
0
        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)
            });
        }
Пример #2
0
        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("Ок");
        }