/// <summary> /// Initialize helper /// </summary> static WorkflowApplicationHelper() { fileStructureService = CommonServiceLocator.ServiceLocator.Current.GetInstance <IFileStructureService>(); localizationService = CommonServiceLocator.ServiceLocator.Current.GetInstance <ILocalizationService>(); workflowOperationService = CommonServiceLocator.ServiceLocator.Current.GetInstance <IWorkflowOperationService>(); fileStructureDocumentPathService = CommonServiceLocator.ServiceLocator.Current.GetInstance <IFileStructureDocumentPathService>(); sessionService = CommonServiceLocator.ServiceLocator.Current.GetInstance <ISessionService>(); documentWorkflowOrganizationUnitAssignmentService = CommonServiceLocator.ServiceLocator.Current.GetInstance <IDocumentWorkflowOrganizationUnitAssignmentService>(); userService = CommonServiceLocator.ServiceLocator.Current.GetInstance <IUserService>(); configurationService = CommonServiceLocator.ServiceLocator.Current.GetInstance <IConfigurationService>(); forwardConfig = configurationService.GetValue <int>("ForwardOption", "Filestructure", ""); }
/// <summary> /// Initialize control /// </summary> public FileStructureControl() { InitializeComponent(); stackService = CommonServiceLocator.ServiceLocator.Current.GetInstance <IStackService>(); fielStructureService = CommonServiceLocator.ServiceLocator.Current.GetInstance <IFileStructureService>(); fileStructureDocumentPathService = CommonServiceLocator.ServiceLocator.Current.GetInstance <IFileStructureDocumentPathService>(); // Subscribe to preview drop event DragDropManager.AddPreviewDropHandler(directoryTreeView, new Telerik.Windows.DragDrop.DragEventHandler(OnPreviewDrop), true); DragDropManager.AddDragOverHandler(directoryTreeView, new Telerik.Windows.DragDrop.DragEventHandler(OnDragOver), true); DragDropManager.AddDropHandler(directoryTreeView, new Telerik.Windows.DragDrop.DragEventHandler(OnDrop), true); DragDropManager.AddDragInitializeHandler(directoryTreeView, new Telerik.Windows.DragDrop.DragInitializeEventHandler(OnDraginitialize), true); EventManager.RegisterClassHandler(typeof(RadTreeViewItem), Mouse.MouseDownEvent, new MouseButtonEventHandler(OnTreeViewItemMouseDown), false); if (localizationService == null) { localizationService = CommonServiceLocator.ServiceLocator.Current.GetInstance <ILocalizationService>(); } }
/// <summary> /// Constructor for dependency injection. /// </summary> /// <param name="fileStructureService"></param> /// <param name="documentWorkflowAppSettingsService"></param> /// <param name="documentWorkflowUserService"></param> /// <param name="fileStructureDocumentPathService"></param> /// <param name="documentWorkflowTrackerService"></param> /// <param name="documentWorkflowOrganizationUnitAssignmentService"></param> public WorkflowOperationService(IFileStructureService fileStructureService, IDocumentWorkflowAppSettingsService documentWorkflowAppSettingsService, IDocumentWorkflowUserService documentWorkflowUserService, IFileStructureDocumentPathService fileStructureDocumentPathService, IDocumentWorkflowTrackerService documentWorkflowTrackerService, IDocumentWorkflowOrganizationUnitAssignmentService documentWorkflowOrganizationUnitAssignmentService, IDocumentWorkflowConfigurationService documentWorkflowConfigurationService, IUnityContainer unityContainer, IDocumentWorkflowAssignmentService documentWorkflowAssignmentService, Flow.Event.IFlowEventService flowEventService) { this.fileStructureService = fileStructureService; this.documentWorkflowAppSettingsService = documentWorkflowAppSettingsService; this.documentWorkflowUserService = documentWorkflowUserService; this.fileStructureDocumentPathService = fileStructureDocumentPathService; this.documentWorkflowTrackerService = documentWorkflowTrackerService; this.documentWorkflowOrganizationUnitAssignmentService = documentWorkflowOrganizationUnitAssignmentService; this.unityContainer = unityContainer; this.documentWorkflowConfigurationService = documentWorkflowConfigurationService; this.documentWorkflowAssignmentService = documentWorkflowAssignmentService; this.flowEventService = flowEventService; }
/// <summary> /// Initialize viewmodel /// </summary> /// <param name="documentId">Document id</param> public DocumentPathOverViewViewModel(Guid documentId) { this.documentId = documentId; documentPathService = ServiceLocator.Current.GetInstance <IFileStructureDocumentPathService>(); fileStructureService = ServiceLocator.Current.GetInstance <IFileStructureService>(); directoryTypeService = ServiceLocator.Current.GetInstance <IDirectoryTypeService>(); iconService = ServiceLocator.Current.GetInstance <IIconService>(); localizationService = ServiceLocator.Current.GetInstance <ILocalizationService>(); stackService = ServiceLocator.Current.GetInstance <IStackService>(); documentWorkflowAssignmentService = ServiceLocator.Current.GetInstance <IDocumentWorkflowAssignmentService>(); removedPaths = new List <DocumentPathViewModel>(); paths = new ObservableCollection <DocumentPathViewModel>(); foreach (var path in documentPathService.GetByDocumentId(documentId)) { var pathVM = new DocumentPathViewModel(path, fileStructureService, directoryTypeService, iconService, stackService) { Parent = this }; paths.Add(pathVM); } // Add new document path addDocumentPathCommand = new RelayCommand((p) => { var newDocumentPath = SelectPath(); if (newDocumentPath != null) { if (CheckPathExists(newDocumentPath.Id, newDocumentPath.DirectoryGuid, newDocumentPath.FileStructureGuid)) { MessageBox.Show(localizationService.Translate("filestructure_path_exists"), localizationService.Translate("filestructure_path_exists_title"), MessageBoxButton.OK, MessageBoxImage.Information); return; } var newDocumentPathVM = new DocumentPathViewModel(newDocumentPath, fileStructureService, directoryTypeService, iconService, stackService) { Parent = this }; Paths.Add(newDocumentPathVM); } }); // Change document path changeDocumentPathCommand = new RelayCommand((p) => { var selectedPath = p as DocumentPathViewModel; if (selectedPath.IsProtectedPath) { MessageBox.Show(localizationService.Translate("filestructure_path_protected"), localizationService.Translate("filestructure_path_protected_title"), MessageBoxButton.OK, MessageBoxImage.Information); return; } var fileStructure = fileStructureService.Get(selectedPath.Model.FileStructureGuid); var selectPathWindow = new FileStructureWindow(); selectPathWindow.Initialize(fileStructure); selectPathWindow.IsInSelectMode = true; selectPathWindow.Loaded += (s, e) => { selectPathWindow.ViewModel.SelectedDirectory = selectPathWindow.ViewModel.RawDirectories.FirstOrDefault(x => x.Model.Id == selectedPath.Model.DirectoryGuid); }; selectPathWindow.ShowDialog(); if (selectPathWindow.SelectedDirectory != null) { if (CheckPathExists(selectedPath.Model.Id, selectPathWindow.SelectedDirectory.Id, fileStructure.Id)) { MessageBox.Show(localizationService.Translate("filestructure_path_exists"), localizationService.Translate("filestructure_path_exists_title"), MessageBoxButton.OK, MessageBoxImage.Information); return; } selectedPath.Model.DirectoryGuid = selectPathWindow.SelectedDirectory.Id; selectedPath.Model.WorkflowId = selectPathWindow.SelectedDirectory.WorkflowId; selectedPath.RefreshPath(); } }); // Remove document path removeDocumentPathCommand = new RelayCommand((p) => { var selectedPath = p as DocumentPathViewModel; if (selectedPath.IsProtectedPath) { MessageBox.Show(localizationService.Translate("filestructure_path_protected"), localizationService.Translate("filestructure_path_protected_title"), MessageBoxButton.OK, MessageBoxImage.Information); return; } var messageBoxResult = MessageBox.Show(localizationService.Translate("filestructure_remove_path"), localizationService.Translate("filestructure_remove_path_title"), MessageBoxButton.YesNo, MessageBoxImage.Question); if (messageBoxResult == MessageBoxResult.Yes) { removedPaths.Add(selectedPath); paths.Remove(selectedPath); } }); }