protected void InitPopupActions() { var callTaskWorker = new CallTaskWorker( CallTaskSingletonFactory.GetInstance(), callTaskRepository, OrderSingletonRepository.GetInstance(), EmployeeSingletonRepository.GetInstance(), baseParametersProvider, commonServices.UserService, SingletonErrorReporter.Instance); PopupActionsList.Add(new JournalAction( "Закрытие МЛ", (selectedItems) => selectedItems.Any(x => closingDlgStatuses.Contains((x as RouteListJournalNode).StatusEnum)), (selectedItems) => selectedItems.Any(x => closingDlgStatuses.Contains((x as RouteListJournalNode).StatusEnum)), (selectedItems) => { var selectedNode = selectedItems.FirstOrDefault() as RouteListJournalNode; if (selectedNode != null && closingDlgStatuses.Contains(selectedNode.StatusEnum)) { TabParent.OpenTab( DialogHelper.GenerateDialogHashName <RouteList>(selectedNode.Id), () => new RouteListClosingDlg(selectedNode.Id) ); } } )); PopupActionsList.Add(new JournalAction( "Создание талона погрузки", (selectedItems) => selectedItems.Any(x => createCarLoadDocument.Contains((x as RouteListJournalNode).StatusEnum)), (selectedItems) => selectedItems.Any(x => createCarLoadDocument.Contains((x as RouteListJournalNode).StatusEnum)), (selectedItems) => { var selectedNode = selectedItems.FirstOrDefault() as RouteListJournalNode; if (selectedNode != null) { TabParent.OpenTab(() => new CarLoadDocumentDlg(selectedNode.Id, null)); } } )); PopupActionsList.Add(new JournalAction( "Создание талона разгрузки", (selectedItems) => selectedItems.Any(x => createCarUnloadDocument.Contains((x as RouteListJournalNode).StatusEnum)), (selectedItems) => selectedItems.Any(x => createCarUnloadDocument.Contains((x as RouteListJournalNode).StatusEnum)), (selectedItems) => { var selectedNode = selectedItems.FirstOrDefault() as RouteListJournalNode; if (selectedNode != null) { TabParent.OpenTab(() => new CarUnloadDocumentDlg(selectedNode.Id, null)); } } )); PopupActionsList.Add(new JournalAction( "Выдать топливо", (selectedItems) => selectedItems.Any(x => fuelIssuingStatuses.Contains((x as RouteListJournalNode).StatusEnum)), (selectedItems) => selectedItems.Any(x => fuelIssuingStatuses.Contains((x as RouteListJournalNode).StatusEnum)), (selectedItems) => { var selectedNode = selectedItems.FirstOrDefault() as RouteListJournalNode; if (selectedNode != null) { var RouteList = UoW.GetById <RouteList>(selectedNode.Id); TabParent.OpenTab( DialogHelper.GenerateDialogHashName <RouteList>(selectedNode.Id), () => new FuelDocumentViewModel( RouteList, commonServices, subdivisionRepository, EmployeeSingletonRepository.GetInstance(), fuelRepository, NavigationManagerProvider.NavigationManager ) ); } } )); PopupActionsList.Add(new JournalAction( "Вернуть в статус Сдается", (selectedItems) => selectedItems.Any(x => canReturnToOnClosing.Contains((x as RouteListJournalNode).StatusEnum)), (selectedItems) => selectedItems.Any(x => canReturnToOnClosing.Contains((x as RouteListJournalNode).StatusEnum)), (selectedItems) => { var selectedNode = selectedItems.FirstOrDefault() as RouteListJournalNode; bool isSlaveTabActive = false; if (selectedNode != null) { using (var uowLocal = UnitOfWorkFactory.CreateWithoutRoot()) { var routeList = uowLocal.Session.QueryOver <RouteList>() .Where(x => x.Id == selectedNode.Id) .List().FirstOrDefault(); if (canReturnToOnClosing.Contains(routeList.Status)) { if (TabParent.FindTab(DialogHelper.GenerateDialogHashName <RouteList>(routeList.Id)) != null) { MessageDialogHelper.RunInfoDialog("Требуется закрыть подчиненную вкладку"); isSlaveTabActive = true; return; } routeList.ChangeStatusAndCreateTask(RouteListStatus.OnClosing, callTaskWorker); uowLocal.Save(routeList); if (isSlaveTabActive) { return; } } uowLocal.Commit(); } } } )); }
static void RegisterVodovozClassConfig(ContainerBuilder builder) { builder.RegisterType <WaterFixedPricesGenerator>().AsSelf(); #region Adapters & Factories builder.RegisterType <GtkTabsOpener>().As <IGtkTabsOpener>(); builder.RegisterType <UndeliveredOrdersJournalOpener>().As <IUndeliveredOrdersJournalOpener>(); builder.RegisterType <RdlPreviewOpener>().As <IRDLPreviewOpener>(); builder.RegisterType <NomenclatureJournalFactory>().As <INomenclatureJournalFactory>(); builder.RegisterType <OrderSelectorFactory>().As <IOrderSelectorFactory>(); builder.RegisterType <DeliveryPointJournalFactory>().As <IDeliveryPointJournalFactory>(); builder.RegisterType <EmployeeJournalFactory>().As <IEmployeeJournalFactory>(); builder.RegisterType <CounterpartyJournalFactory>().As <ICounterpartyJournalFactory>(); builder.RegisterType <SubdivisionJournalFactory>().As <ISubdivisionJournalFactory>(); builder.RegisterType <SalesPlanJournalFactory>().As <ISalesPlanJournalFactory>(); builder.RegisterType <ExpenseCategorySelectorFactory>().As <IExpenseCategorySelectorFactory>(); builder.RegisterType <CarJournalFactory>().As <ICarJournalFactory>(); builder.RegisterType <CarModelJournalFactory>().As <ICarModelJournalFactory>(); builder.RegisterType <CarManufacturerJournalFactory>().As <ICarManufacturerJournalFactory>(); builder.RegisterType <NomenclatureFixedPriceFactory>().AsSelf(); builder.RegisterType <DialogsFactory>().As <IDialogsFactory>(); builder.RegisterType <CarVersionsViewModelFactory>().As <ICarVersionsViewModelFactory>(); builder.RegisterType <PaymentFromAvangardFactory>().As <IPaymentFromAvangardFactory>(); #endregion #region Controllers builder.RegisterType <OrderDiscountsController>().As <IOrderDiscountsController>(); builder.RegisterType <NomenclatureFixedPriceController>().As <INomenclatureFixedPriceProvider>(); #endregion #region Services builder.Register(c => VodovozGtkServicesConfig.EmployeeService).As <IEmployeeService>(); builder.RegisterType <FileDialogService>().As <IFileDialogService>(); builder.Register(c => PermissionExtensionSingletonStore.GetInstance()).As <IPermissionExtensionStore>(); builder.RegisterType <EntityExtendedPermissionValidator>().As <IEntityExtendedPermissionValidator>(); builder.RegisterType <EmployeeService>().As <IEmployeeService>(); builder.Register(c => PermissionsSettings.PermissionService).As <IPermissionService>(); builder.Register(c => ErrorReporter.Instance).As <IErrorReporter>(); #endregion #region CallTasks builder.Register(context => CallTaskSingletonFactory.GetInstance()).As <ICallTaskFactory>(); builder.Register(context => new CallTaskWorker( context.Resolve <ICallTaskFactory>(), context.Resolve <ICallTaskRepository>(), context.Resolve <IOrderRepository>(), context.Resolve <IEmployeeRepository>(), context.Resolve <IPersonProvider>(), context.Resolve <IUserService>(), context.Resolve <IErrorReporter>() )).As <ICallTaskWorker>(); #endregion #region епозитории builder.RegisterAssemblyTypes(System.Reflection.Assembly.GetAssembly(typeof(CounterpartyContractRepository))) .Where(t => t.Name.EndsWith("Repository")) .AsImplementedInterfaces() .SingleInstance(); #endregion #region Mango builder.RegisterType <MangoManager>().AsSelf(); #endregion #region Reports builder.RegisterType <CounterpartyCashlessDebtsReport>().AsSelf(); #endregion #region Старые диалоги builder.RegisterAssemblyTypes(System.Reflection.Assembly.GetAssembly(typeof(CounterpartyDlg))) .Where(t => t.IsAssignableTo <ITdiTab>()) .AsSelf(); #endregion #region ParameterProviders builder.RegisterType <BaseParametersProvider>() .As <ITerminalNomenclatureProvider>() .As <IProfitCategoryProvider>() .AsSelf(); builder.RegisterAssemblyTypes(System.Reflection.Assembly.GetAssembly(typeof(ParametersProvider))) .Where(t => t.Name.EndsWith("Provider")) .AsImplementedInterfaces() .AsSelf() .SingleInstance(); builder.RegisterAssemblyTypes(System.Reflection.Assembly.GetAssembly(typeof(ParametersProvider))) .Where(t => t.Name.EndsWith("Settings")) .AsImplementedInterfaces() .AsSelf() .SingleInstance(); builder.RegisterType <RdlViewerViewModel>().AsSelf(); #endregion #region Фильтры builder.RegisterType <PaymentsJournalFilterViewModel>().AsSelf(); builder.RegisterType <UnallocatedBalancesJournalFilterViewModel>().AsSelf(); #endregion }