public SubdivisionViewModel(
     IEntityUoWBuilder uoWBuilder,
     IUnitOfWorkFactory unitOfWorkFactory,
     ICommonServices commonServices,
     IEntityAutocompleteSelectorFactory employeeSelectorFactory,
     IPermissionRepository permissionRepository
     ) : base(uoWBuilder, unitOfWorkFactory, commonServices)
 {
     PresetSubdivisionPermissionVM = new PresetSubdivisionPermissionsViewModel(UoW, permissionRepository, Entity);
     EmployeeSelectorFactory       = employeeSelectorFactory ?? throw new ArgumentNullException(nameof(employeeSelectorFactory));
     ConfigureEntityChangingRelations();
     CreateCommands();
 }
示例#2
0
        private void ConfigureDlg()
        {
            subdivisionentitypermissionwidget.ConfigureDlg(UoW, Entity);
            yentryName.Binding.AddBinding(Entity, e => e.Name, w => w.Text).InitializeFromSource();
            yentryShortName.Binding.AddBinding(Entity, e => e.ShortName, w => w.Text).InitializeFromSource();
            yentryrefParentSubdivision.SubjectType = typeof(Subdivision);
            yentryrefParentSubdivision.Binding.AddBinding(Entity, e => e.ParentSubdivision, w => w.Subject).InitializeFromSource();
            yentryreferenceChief.RepresentationModel = new EmployeesVM();
            yentryreferenceChief.Binding.AddBinding(Entity, e => e.Chief, w => w.Subject).InitializeFromSource();

            yenumcomboType.ItemsEnum = typeof(SubdivisionType);
            yenumcomboType.Binding.AddBinding(Entity, e => e.SubdivisionType, w => w.SelectedItem).InitializeFromSource();
            yenumcomboType.Sensitive = false;

            subdivisionsVM = new SubdivisionsVM(UoW, Entity);
            repTreeChildSubdivisions.RepresentationModel = subdivisionsVM;
            repTreeChildSubdivisions.YTreeModel          = new RecursiveTreeModel <SubdivisionVMNode>(subdivisionsVM.Result, x => x.Parent, x => x.Children);

            ySpecCmbGeographicGroup.ItemsList = UoW.Session.QueryOver <GeographicGroup>().List();
            ySpecCmbGeographicGroup.Binding.AddBinding(Entity, e => e.GeographicGroup, w => w.SelectedItem).InitializeFromSource();
            ySpecCmbGeographicGroup.ItemSelected += YSpecCmbGeographicGroup_ItemSelected;
            SetControlsAccessibility();

            ytreeviewDocuments.ColumnsConfig = ColumnsConfigFactory.Create <TypeOfEntity>()
                                               .AddColumn("Документ").AddTextRenderer(x => x.CustomName)
                                               .Finish();
            ytreeviewDocuments.ItemsDataSource = Entity.ObservableDocumentTypes;

            lblWarehouses.LineWrapMode = Pango.WrapMode.Word;
            if (Entity.Id > 0)
            {
                lblWarehouses.Text = Entity.GetWarehousesNames(UoW, _subdivisionRepository);
            }
            else
            {
                frmWarehoses.Visible = false;
            }
            vboxDocuments.Visible = QSMain.User.Admin;

            presetPermissionVM = new PresetSubdivisionPermissionsViewModel(UoW, new PermissionRepository(), Entity);
            vboxPresetPermissions.Add(new PresetPermissionsView(presetPermissionVM));
            vboxPresetPermissions.ShowAll();
            vboxPresetPermissions.Visible = QSMain.User.Admin;

            presetPermissionVM.ObservablePermissionsList.ListContentChanged += (sender, e) => HasChanges = true;
            Entity.ObservableDocumentTypes.ListContentChanged += (sender, e) => HasChanges = true;
            subdivisionentitypermissionwidget.ViewModel.ObservableTypeOfEntitiesList.ListContentChanged += (sender, e) => HasChanges = true;

            entryDefaultSalesPlan.SetEntityAutocompleteSelectorFactory(
                new EntityAutocompleteSelectorFactory <SalesPlanJournalViewModel>(typeof(SalesPlan),
                                                                                  () => new SalesPlanJournalViewModel(
                                                                                      UnitOfWorkFactory.GetDefaultFactory,
                                                                                      ServicesConfig.CommonServices,
                                                                                      new NomenclatureSelectorFactory())
            {
                SelectionMode = JournalSelectionMode.Single
            }
                                                                                  ));
            entryDefaultSalesPlan.Binding.AddBinding(Entity, s => s.DefaultSalesPlan, w => w.Subject).InitializeFromSource();
            entryDefaultSalesPlan.CanEditReference = false;
        }