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(); }
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; }