public ResidueJournalViewModel( ResidueFilterViewModel filterViewModel, IEmployeeService employeeService, IRepresentationEntityPicker representationEntityPicker, IMoneyRepository moneyRepository, IDepositRepository depositRepository, IBottlesRepository bottlesRepository, IUnitOfWorkFactory unitOfWorkFactory, ICommonServices commonServices, IEntityAutocompleteSelectorFactory employeeSelectorFactory ) : base(filterViewModel, unitOfWorkFactory, commonServices) { this.employeeSelectorFactory = employeeSelectorFactory ?? throw new ArgumentNullException(nameof(employeeSelectorFactory)); TabName = "Журнал остатков"; this.employeeService = employeeService ?? throw new ArgumentNullException(nameof(employeeService)); this.representationEntityPicker = representationEntityPicker ?? throw new ArgumentNullException(nameof(representationEntityPicker)); this.moneyRepository = moneyRepository ?? throw new ArgumentNullException(nameof(moneyRepository)); this.depositRepository = depositRepository ?? throw new ArgumentNullException(nameof(depositRepository)); this.bottlesRepository = bottlesRepository ?? throw new ArgumentNullException(nameof(bottlesRepository)); this.unitOfWorkFactory = unitOfWorkFactory ?? throw new ArgumentNullException(nameof(unitOfWorkFactory)); this.commonServices = commonServices ?? throw new ArgumentNullException(nameof(commonServices)); SetOrder(x => x.Date, true); UpdateOnChanges( typeof(Residue) ); }
public static void CreateVodovozDefaultServices() { ServicesConfig.InteractiveService = new GtkInteractiveService(); ServicesConfig.ValidationService = new ObjectValidator(new GtkValidationViewFactory()); EmployeeService = new EmployeeService(); IRepresentationJournalFactory journalFactory = new PermissionControlledRepresentationJournalFactory(); RepresentationEntityPicker = new RepresentationEntityPickerGtk(journalFactory); PermissionsSettings.ConfigureEntityPermissionFinder(new Vodovoz.Domain.Permissions.EntitiesWithPermissionFinder()); //пространство имен специально прописано чтобы при изменениях не было случайного совпадения с валидатором из QS var entityPermissionValidator = new Vodovoz.Domain.Permissions.EntityPermissionValidator(EmployeeSingletonRepository.GetInstance(), new PermissionRepository()); var presetPermissionValidator = new Vodovoz.Domain.Permissions.HierarchicalPresetPermissionValidator(EmployeeSingletonRepository.GetInstance(), new PermissionRepository()); var permissionService = new PermissionService(entityPermissionValidator, presetPermissionValidator); PermissionsSettings.PermissionService = permissionService; PermissionsSettings.CurrentPermissionService = new CurrentPermissionServiceAdapter(permissionService, ServicesConfig.UserService); }
public ResidueViewModel( IEntityUoWBuilder uowBuilder, IUnitOfWorkFactory uowFactory, IEmployeeService employeeService, IRepresentationEntityPicker entityPicker, IBottlesRepository bottlesRepository, IDepositRepository depositRepository, IMoneyRepository moneyRepository, ICommonServices commonServices, IEntityAutocompleteSelectorFactory employeeSelectorFactory ) : base(uowBuilder, uowFactory, commonServices) { this.employeeService = employeeService ?? throw new ArgumentNullException(nameof(employeeService)); this.entityPicker = entityPicker ?? throw new ArgumentNullException(nameof(entityPicker)); this.bottlesRepository = bottlesRepository ?? throw new ArgumentNullException(nameof(bottlesRepository)); this.depositRepository = depositRepository ?? throw new ArgumentNullException(nameof(depositRepository)); this.moneyRepository = moneyRepository ?? throw new ArgumentNullException(nameof(moneyRepository)); TabName = "Ввод остатков"; if (CurrentEmployee == null) { AbortOpening("Ваш пользователь не привязан к действующему сотруднику, вы не можете создавать складские документы, " + "так как некого указывать в качестве кладовщика.", "Невозможно открыть ввод остатков"); } if (UoW.IsNew) { Entity.Author = CurrentEmployee; Entity.Date = new DateTime(2017, 4, 23); } CreateCommands(); ConfigureEntityPropertyChanges(); UpdateResidue(); GuiltyItemsVM = new GuiltyItemsViewModel( new Complaint(), UoW, commonServices, new SubdivisionRepository(new ParametersProvider()), employeeSelectorFactory); Entity.ObservableEquipmentDepositItems.PropertyOfElementChanged += OnObservableEquipmentItemsPropertyOfElementChanged; }