public WarehouseViewModel(IEntityUoWBuilder uowBuilder, IUnitOfWorkFactory unitOfWorkFactory, ICommonServices commonServices, ISubdivisionRepository subdivisionRepository) : base(uowBuilder, unitOfWorkFactory, commonServices) { TabName = Entity?.Id == 0 ? "Новый склад" : Entity?.Name; Subdivisions = subdivisionRepository.GetAllDepartmentsOrderedByName(UoW); CanArchiveWarehouse = commonServices.CurrentPermissionService.ValidatePresetPermission("can_archive_warehouse"); }
public GuiltyItemViewModel( ComplaintGuiltyItem entity, ICommonServices commonServices, ISubdivisionRepository subdivisionRepository, IEntityAutocompleteSelectorFactory employeeSelectorFactory, IUnitOfWork uow ) : base(entity, commonServices) { UoW = uow ?? throw new ArgumentNullException(nameof(uow)); EmployeeSelectorFactory = employeeSelectorFactory ?? throw new ArgumentNullException(nameof(employeeSelectorFactory)); if (subdivisionRepository == null) { throw new ArgumentNullException(nameof(subdivisionRepository)); } ConfigureEntityPropertyChanges(); AllDepartments = subdivisionRepository.GetAllDepartmentsOrderedByName(UoW); }
private void ConfigureDialog() { buttonSave.Sensitive = CanEdit; btnCancel.Clicked += (sender, args) => OnCloseTab(false, CloseSource.Cancel); yentryName.Binding .AddBinding(UoWGeneric.Root, (warehouse) => warehouse.Name, (widget) => widget.Text) .InitializeFromSource(); yentryName.IsEditable = CanEdit; ycheckOnlineStore.Binding .AddBinding(Entity, e => e.PublishOnlineStore, w => w.Active) .InitializeFromSource(); ycheckOnlineStore.Sensitive = CanEdit; ycheckbuttonCanReceiveBottles.Binding .AddBinding(UoWGeneric.Root, (warehouse) => warehouse.CanReceiveBottles, (widget) => widget.Active) .InitializeFromSource(); ycheckbuttonCanReceiveBottles.Sensitive = CanEdit; ycheckbuttonCanReceiveEquipment.Binding .AddBinding(UoWGeneric.Root, (warehouse) => warehouse.CanReceiveEquipment, (widget) => widget.Active) .InitializeFromSource(); ycheckbuttonCanReceiveEquipment.Sensitive = CanEdit; ycheckbuttonArchive.Binding .AddBinding(UoWGeneric.Root, (warehouse) => warehouse.IsArchive, (widget) => widget.Active) .InitializeFromSource(); ycheckbuttonArchive.Sensitive = ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_archive_warehouse") && CanEdit; comboTypeOfUse.ItemsEnum = typeof(WarehouseUsing); comboTypeOfUse.Binding .AddBinding(Entity, e => e.TypeOfUse, w => w.SelectedItem) .InitializeFromSource(); comboTypeOfUse.Sensitive = CanEdit; ySpecCmbOwner.SetRenderTextFunc <Subdivision>(s => s.Name); ySpecCmbOwner.ItemsList = _subdivisionRepository.GetAllDepartmentsOrderedByName(UoW); ySpecCmbOwner.Binding .AddBinding(Entity, s => s.OwningSubdivision, w => w.SelectedItem) .InitializeFromSource(); ySpecCmbOwner.Sensitive = CanEdit; }
public void ConfigureWidget(IUnitOfWork uow, UndeliveredOrder undeliveredOrder, bool driverCanBeGuilty) { _uow = uow; _undeliveredOrder = undeliveredOrder; enumBtnGuiltySide.ItemsEnum = typeof(GuiltyTypes); enumBtnGuiltySide.SetSensitive(GuiltyTypes.Driver, driverCanBeGuilty); enumBtnGuiltySide.SetSensitive(GuiltyTypes.None, !undeliveredOrder.ObservableGuilty.Any()); undeliveredOrder.ObservableGuilty.ElementAdded += ObservableGuilty_ElementAdded; undeliveredOrder.ObservableGuilty.ElementRemoved += ObservableGuilty_ElementRemoved; enumBtnGuiltySide.EnumItemClicked += (sender, e) => { undeliveredOrder.AddGuilty( new GuiltyInUndelivery { GuiltySide = (GuiltyTypes)e.ItemEnum, UndeliveredOrder = undeliveredOrder } ); SetWidgetApperance(); }; var colorBlack = new Gdk.Color(0, 0, 0); var colorGrey = new Gdk.Color(96, 96, 96); var colorWhite = new Gdk.Color(255, 255, 255); var hideEnums = !driverCanBeGuilty ? new Enum[] { GuiltyTypes.Driver } : new Enum[] { }; var allDepartments = _subdivisionRepository.GetAllDepartmentsOrderedByName(_uow); treeViewGuilty.ColumnsConfig = ColumnsConfigFactory.Create <GuiltyInUndelivery>() .AddColumn("Сторона") .HeaderAlignment(0.5f) .AddEnumRenderer(n => n.GuiltySide, true, hideEnums) .AddColumn("Отдел ВВ") .HeaderAlignment(0.5f) .AddComboRenderer(n => n.GuiltyDepartment) .SetDisplayFunc(x => x.Name) .FillItems(allDepartments) .AddSetter( (c, n) => { c.Editable = n.GuiltySide == GuiltyTypes.Department; if (n.GuiltySide != GuiltyTypes.Department) { n.GuiltyDepartment = null; } if (n.GuiltySide == GuiltyTypes.Department && n.GuiltyDepartment == null) { c.ForegroundGdk = colorGrey; c.Style = Pango.Style.Italic; c.Text = "(Нажмите для выбора отдела)"; c.BackgroundGdk = colorWhite; } else { c.ForegroundGdk = colorBlack; c.Style = Pango.Style.Normal; c.Background = null; } } ) .Finish(); treeViewGuilty.HeadersVisible = false; treeViewGuilty.ItemsDataSource = undeliveredOrder.ObservableGuilty; SetWidgetApperance(); }