private void cmdImportFromProjectExcelFile_Click(object sender, System.EventArgs e) { try { if (_IsLoading.Value) { return; } using (var locker = new BoolLocker(ref _IsLoading)) { Tools.Tools.ThrowExceptionIfCurrentUserIsNotAdmin(_Group); var ucImportTaskControl = new ucImportTaskFromPDC(_Group); using (var ImportTaskForm = new frmUserControl(ucImportTaskControl, "Importation Tâche", true, false)) { ucImportTaskControl.Close += (s, d) => ImportTaskForm.Close(); ImportTaskForm.StartPosition = FormStartPosition.CenterParent; ucImportTaskControl.Initialize(); ImportTaskForm.ShowDialog(); InternalReLoadControl(); dgvMain.Refresh(); } } } catch (Exception ex) { ex.ShowInMessageBox(); } }
private void ControlVersion_Invoking(object sender, CommandInvokeEventArgs e) { try { //Création des services var projectService = _Application.ServiceManager.GetService <IProjectService>(); var OpenedProject = projectService.ActiveProject; var ucControlVersionControl = new ucControlVersion(_Application); using (var controlVersionForm = new frmUserControl(ucControlVersionControl, "Gestion des versions de controls", true, false)) { ucControlVersionControl.Close += (s, d) => controlVersionForm.Close(); controlVersionForm.StartPosition = FormStartPosition.CenterParent; controlVersionForm.Width = 1200; controlVersionForm.Height = 800; controlVersionForm.ShowDialog(); if (ucControlVersionControl.SaveNeeded) { MessageBox.Show("Veuillez sauvegarder le projet pour conserver les modifications sur les contrôles"); } } } catch (Exception ex) { ex.ShowInMessageBox(); } }
private void WhereUsedTableGroup_Invoking(object sender, CommandInvokeEventArgs e) { try { var groupService = _Application.ServiceManager.GetService <IGroupService>(); var activeGroup = groupService.ActiveGroup; if (!Tools.Tools.IsAdminCurrentUser(activeGroup)) { throw new Exception("Seul l'admin peut executer cette fonction"); } var usedTableUserControl = new ucWhereUsedGroup(_Application, activeGroup); using (var usedTableForm = new frmUserControl(usedTableUserControl, "Cas d'emploi des tables", true, false)) { usedTableUserControl.Close += (s, d) => usedTableForm.Close(); usedTableForm.StartPosition = FormStartPosition.CenterParent; usedTableForm.Width = 1000; usedTableForm.Height = 800; usedTableForm.ShowDialog(); } } catch (Exception ex) { ex.ShowInMessageBox(); } }
private void cmdRefresh_Click(object sender, System.EventArgs e) { try { if (_IsLoading.Value) { return; } using (var locker = new BoolLocker(ref _IsLoading)) { var ucMessageBox = new ucMessageBox("Traitement en cours..."); using (var messageBoxForm = new frmUserControl(ucMessageBox, "Traitement", false, false)) { messageBoxForm.Show(); using (var releaseService = new ReleaseService(_Group.GetEnvironment().GetSQLExtendConnectionString())) { releaseService.AddAndUpdateExternalProjectFromFile(); LoadDatagridview(); } messageBoxForm.Close(); } } } catch (Exception ex) { ex.ShowInMessageBox(); } }
private void cmdRunUnusedAnalyse_Click(object sender, System.EventArgs e) { try { if (_IsLoading.Value) { return; } using (var locker = new BoolLocker(ref _IsLoading)) { using (var projectOpenLocker = new BoolLocker(ref Consts.Consts.DontShowCheckTaskOnStartup)) { var inProgressUserControl = new ucMessageBox("Traitement en cours"); using (var inProgressForm = new frmUserControl(inProgressUserControl, "Recherche des tables inutilisées", false, false)) { inProgressForm.TopMost = true; inProgressForm.Show(); inProgressForm.Refresh(); var projectService = _Application.ServiceManager.GetService <IProjectService>(); var activeProject = projectService.ActiveProject; var result = new List <string>(); //Récupération de la liste des tables settings var settingsDatatable = activeProject.GetTableSettingsList(); settingsDatatable.AddRange(activeProject.GetControlTableNameList()); //récupération de la liste des tables var searchProcess = new SearchRuleProcess(activeProject); foreach (var tableItem in activeProject.DataTables.Enum()) { //ignore les tables de settings if (settingsDatatable.Exists(x => x == tableItem.InvariantName)) { continue; } if (!searchProcess.GetSearchResult("DwLookup" + tableItem.InvariantName).IsNotNullAndNotEmpty()) { result.Add(tableItem.DisplayName); } } dgvUnusedTable.DataSource = result.Enum().Select(x => TableView.ConvertTo(x)).Enum().ToList(); dgvUnusedTable.FormatColumns <TableView>("FR"); MessageBox.Show("{0} tables sont inutilisées sur {1} tables".FormatString(result.Count, activeProject.DataTables.Count())); } } } } catch (Exception ex) { ex.ShowInMessageBox(); } }
private void cmdRunUnusedVariable_Click(object sender, System.EventArgs e) { try { if (_IsLoading.Value) { return; } using (var locker = new BoolLocker(ref _IsLoading)) { using (var projectOpenLocker = new BoolLocker(ref Consts.Consts.DontShowCheckTaskOnStartup)) { var projectService = _Application.ServiceManager.GetService <IProjectService>(); var activeProject = projectService.ActiveProject; var inProgressUserControl = new ucMessageBox("Traitement en cours"); using (var inProgressForm = new frmUserControl(inProgressUserControl, "Recherches des variables inutilisés", false, false)) { inProgressForm.TopMost = true; inProgressForm.Show(); inProgressForm.Refresh(); var result = new List <string>(); //récupération de la liste des tables var searchProcess = new SearchRuleProcess(activeProject); foreach (var variableItem in activeProject.Variables.GetVariables().Enum()) { if (!searchProcess.GetSearchResult(variableItem.Name).IsNotNullAndNotEmpty()) { result.Add(variableItem.Name); } } dgvUnusedVariables.DataSource = result.Enum().Select(x => VariableView.ConvertTo(x)).Enum().ToList(); dgvUnusedVariables.FormatColumns <VariableView>("FR"); MessageBox.Show("{0} paramètres sont inutilisés sur {1} paramètres".FormatString(result.Count, activeProject.Variables.GetVariables().Enum().Count())); } } } } catch (Exception ex) { ex.ShowInMessageBox(); } }
private void cmdSetTaskPriority_Click(object sender, EventArgs e) { try { var selectedTask = GetSelectedMainTask(); if (_IsLoading.Value) { return; } using (var locker = new BoolLocker(ref _IsLoading)) { Tools.Tools.ThrowExceptionIfCurrentUserIsNotAdmin(_Group); if (selectedTask == null) { return; } var priorityInputBoxUC = new Library.Control.UserControls.ucInputBox("Saisir la nouvelle priorité : ", InputTypeAllowEnum.Numeric); using (var inProgressForm = new frmUserControl(priorityInputBoxUC, "Priorité", false, false)) { inProgressForm.ShowDialog(); if (priorityInputBoxUC.DialogResult != DialogResult.OK) { return; } using (var releaseService = new Service.Release.Front.ReleaseService(_Group.GetEnvironment().GetSQLExtendConnectionString())) { releaseService.SetTaskPriority(selectedTask, priorityInputBoxUC.AnswerString.ToInt32()); } } } InternalReLoadControl(); } catch (Exception ex) { ex.ShowInMessageBox(); } }
private void cmdAddTask_Click(object sender, System.EventArgs e) { try { if (_IsLoading.Value) { return; } using (var locker = new BoolLocker(ref _IsLoading)) { var selectedExternalProject = GetSelectedExternalProject(); if (selectedExternalProject != null) { var ucMainTaskEditControl = new ucMainTaskEdit(); using (var mainTaskForm = new frmUserControl(ucMainTaskEditControl, "Importation Tâche", false, false)) { ucMainTaskEditControl.Close += (s, d) => mainTaskForm.Close(); mainTaskForm.StartPosition = FormStartPosition.CenterParent; ucMainTaskEditControl.Initialize(_Group); ucMainTaskEditControl.LoadFromExternalProject(selectedExternalProject); mainTaskForm.ShowDialog(); if (ucMainTaskEditControl.DialogResult == DialogResult.OK) { //traite le projet pour ne plus qu'il soit visible using (var releaseService = new ReleaseService(_Group.GetEnvironment().GetSQLExtendConnectionString())) releaseService.ProcessedExternalProject(selectedExternalProject); LoadDatagridview(); } } } } } catch (Exception ex) { ex.ShowInMessageBox(); } }
private void WhereUsedTableProject_Invoking(object sender, CommandInvokeEventArgs e) { try { var groupService = _Application.ServiceManager.GetService <IGroupService>(); var activeGroup = groupService.ActiveGroup; var usedTableUserControl = new ucWhereUsedProject(_Application, activeGroup); using (var usedTableForm = new frmUserControl(usedTableUserControl, "Cas d'emploi des tables", true, false)) { usedTableUserControl.Close += (s, d) => usedTableForm.Close(); usedTableForm.StartPosition = FormStartPosition.CenterParent; usedTableForm.Width = 1000; usedTableForm.Height = 800; usedTableForm.ShowDialog(); } } catch (Exception ex) { ex.ShowInMessageBox(); } }
private void Release_Invoking(object sender, CommandInvokeEventArgs e) { try { var groupService = _Application.ServiceManager.GetService <IGroupService>(); var activeGroup = groupService.ActiveGroup; var releaseUserControl = new ucRelease(); var releaseForm = new frmUserControl(releaseUserControl, "Gestion des releases", true, false); var loadingControl = new ucMessageBox("Chargement en cours..."); using (var loadingForm = new frmUserControl(loadingControl, "Gestion des releases", true, false)) { loadingForm.Show(); loadingForm.Refresh(); //Init releaseUserControl.Initialize(_Application, activeGroup); releaseUserControl.Close += (s, d) => releaseForm.Close(); releaseForm.Parent = Control.FromHandle(_Application.MainWindowHandle); releaseForm.StartPosition = FormStartPosition.CenterParent; releaseForm.WindowState = FormWindowState.Normal; releaseForm.Width = 1550; releaseForm.Height = 950; loadingForm.Hide(); } releaseForm.Show(); releaseForm.TopMost = true; } catch (Exception ex) { ex.ShowInMessageBox(); } }
private void mApplication_StateChanged(object sender, System.EventArgs e) { try { //Seulement pour driveworks administrator if (_Application.Name != "DriveWorks Administrator") { return; } if (_Application.State.Contains(StandardStates.ProjectLoaded)) { //Chargement des boutons this.RegisterProjectCommandButton(); if (!Consts.Consts.DontShowCheckTaskOnStartup.Value) { //Affichage des tâches ouvertes sur ce projet var groupService = _Application.ServiceManager.GetService <IGroupService>(); var activeGroupe = groupService.ActiveGroup; var projectService = _Application.ServiceManager.GetService <IProjectService>(); var activeProject = projectService.ActiveProject; if (groupService.ActiveGroup.Name == EnvironmentEnum.Developpement.GetName("FR")) { var ucCheckTaskOnStartupControl = new ucCheckTaskOnStartup(activeProject); using (var checkTaskOnStartupForm = new frmUserControl(ucCheckTaskOnStartupControl, "Vérification des tâches", false, false)) { ucCheckTaskOnStartupControl.Close += (s, d) => checkTaskOnStartupForm.Close(); checkTaskOnStartupForm.StartPosition = FormStartPosition.CenterParent; checkTaskOnStartupForm.Width = 500; checkTaskOnStartupForm.Height = 500; if (ucCheckTaskOnStartupControl.RunCheckup()) { checkTaskOnStartupForm.ShowDialog(); } if (ucCheckTaskOnStartupControl.DialogResult == ucCheckTaskOnStartup.OpenModeEnum.NotAllowed) { projectService.CloseProject(); } else if (ucCheckTaskOnStartupControl.DialogResult == ucCheckTaskOnStartup.OpenModeEnum.ReadOnly) { File.SetAttributes(activeProject.ProjectFilePath, FileAttributes.ReadOnly); } else if (ucCheckTaskOnStartupControl.DialogResult == ucCheckTaskOnStartup.OpenModeEnum.Writable) { File.SetAttributes(activeProject.ProjectFilePath, File.GetAttributes(activeProject.ProjectFilePath) & ~FileAttributes.ReadOnly); } } } } } else if (_Application.State.Contains(StandardStates.GroupLoaded)) { //Chargement des boutons this.RegisterGroupCommandButton(); } } catch (Exception ex) { ex.ShowInMessageBox(); } }
private void SetPDMVersionTable_Invoking(object sender, CommandInvokeEventArgs e) { try { var inProgressUserControl = new ucMessageBox("Traitement en cours"); using (var inProgressForm = new frmUserControl(inProgressUserControl, "MAJ du versionning PDM", false, false)) { inProgressForm.TopMost = true; inProgressForm.Show(); inProgressForm.Refresh(); //ProjectTable inProgressUserControl.SetMessage("Démarrage..."); inProgressForm.Refresh(); var groupService = _Application.ServiceManager.GetService <IGroupService>(); var activeGroup = groupService.ActiveGroup; var projectService = _Application.ServiceManager.GetService <IProjectService>(); var activeProject = projectService.ActiveProject; //Récupération des settings var groupSettings = DriveWorks.Helper.Manager.SettingsManager.GetGroupSettings(activeGroup); if (groupSettings.EPDMVaultName.IsNullOrEmpty()) { throw new Exception("Le nom du coffre PDM n'est pas renseigné dans les settings"); } if (groupSettings.EPDMMasterVersionPrefixe.IsNullOrEmpty()) { throw new Exception("Le préfixe de table de versionning n'est pas renseigné dans les settings"); } var tablePrefixeName = groupSettings.EPDMMasterVersionPrefixe; inProgressUserControl.SetMessage("Récupération des components set."); inProgressForm.Refresh(); //Récupération des chemins de component Sets du projet complet var dwComponentSetsPathList = activeProject.GetComponentsFilePathList(); //Récupération des références var pdmComponentSetsList = new List <List <EPDM.Helper.Object.FileResult> >(); inProgressUserControl.SetMessage("Récupération des références PDM"); inProgressForm.Refresh(); var epdmService = new EPDM.Helper.EPDMAPIService(groupSettings.EPDMVaultName, 0, Library.Tools.Enums.DebugModeEnum.Minimal); foreach (var dwComponentPathItem in dwComponentSetsPathList.Enum()) { //Suppression des doublons var dwComponentPathItemWithoutDuplicate = dwComponentPathItem.GroupBy(x => x).Select(x => x.First()).ToList(); inProgressUserControl.SetMessage("Récupération du components set '{0}'".FormatString(dwComponentPathItemWithoutDuplicate.First())); inProgressForm.Refresh(); var pdmComponentSet = epdmService.GetReferenceListFromFile(dwComponentPathItemWithoutDuplicate.First(), 0); //Suppression des doublons pdmComponentSet = pdmComponentSet.GroupBy(x => x.FileName + x.Version).Select(x => x.First()).ToList(); //Vérification que les versions de fichiers identiques sont bien identiques var pdmComponentSetGroup = pdmComponentSet.GroupBy(x => x.Path); var versionDifference = new List <string>(); foreach (var groupItem in pdmComponentSetGroup.Enum()) { if (groupItem.Exists2(x => x.Version != groupItem.First().Version)) { versionDifference.Add(groupItem.Select(x => x.ParentReferencePath + "\\" + x.FileName + "=>" + x.Version).Concat(Environment.NewLine)); } } if (versionDifference.IsNotNullAndNotEmpty()) { throw new Exception("Des fichiers identiques ont des versions différentes : " + Environment.NewLine + versionDifference.Concat(Environment.NewLine + Environment.NewLine)); } //Comparaison des chemins de fichier var comparator = new Library.Tools.Comparator.ListComparator <string, EPDM.Helper.Object.FileResult>(dwComponentPathItemWithoutDuplicate, x => x, pdmComponentSet, y => y.Path); if (comparator.RemovedList.IsNotNullAndNotEmpty()) { throw new Exception("Incohérence sur le component set '{0}' et le modèle 3d".FormatString(dwComponentPathItemWithoutDuplicate.First())); } pdmComponentSetsList.Add(pdmComponentSet); } //Création ou écrasement de la table foreach (var componentItem in pdmComponentSetsList.Enum()) { inProgressUserControl.SetMessage("MAJ des tables '{0}'".FormatString(componentItem.First().FileName)); inProgressForm.Refresh(); var fileGroupList = componentItem.GroupBy(x => x.DocumentCode); //création table formaté var epdmVersionList = new List <DriveWorks.Helper.Object.EPDMVersion>(); foreach (var itemGroup in fileGroupList.Enum()) { //Groupement des fichiers du même nom pour ranger 2d, 3d var newRow = new DriveWorks.Helper.Object.EPDMVersion(); if (itemGroup.Count() > 2) { throw new Exception("Plus de 2 fichiers sont nommés identiquement {0}".FormatString(itemGroup.First().FileName)); } newRow.CodeDocument = itemGroup.First().DocumentCode; foreach (var itemFile in itemGroup) { if (itemFile.TypeDocument == "SLDPRT" || itemFile.TypeDocument == "SLDASM") { newRow.Version3D = itemFile.Version; } else if (itemFile.TypeDocument == "SLDDRW") { newRow.Version2D = itemFile.Version; } else { throw new Exception("Type de fichier non supporté {0}".FormatString(itemFile.TypeDocument)); } } epdmVersionList.Add(newRow); } DriveWorks.Helper.Manager.EPDMVersionManager.UpdateOrCreateEPDMVersionDataTable(activeProject, tablePrefixeName, componentItem.First().DocumentCode, epdmVersionList); } } MessageBox.Show("MAJ table de versionning PDM terminée"); } catch (Exception ex) { ex.ShowInMessageBox(); } }
private void cmdRunWhereUsedProjectTableAnalyse_Click(object sender, EventArgs e) { var groupService = _Application.ServiceManager.GetService <IGroupService>(); var activeEnvironment = groupService.ActiveGroup.GetEnvironment(); EnvironmentEnum destinationEnvironment; if (activeEnvironment == EnvironmentEnum.Developpement) { destinationEnvironment = EnvironmentEnum.Staging; } else if (activeEnvironment == EnvironmentEnum.Staging) { destinationEnvironment = EnvironmentEnum.Production; } else { throw new Exception("Cette function ne support pas l'environnement actuel."); } try { if (_IsLoading.Value) { return; } using (var locker = new BoolLocker(ref _IsLoading)) { using (var projectOpenLocker = new BoolLocker(ref Consts.Consts.DontShowCheckTaskOnStartup)) { //Confirmation if (MessageBox.Show("Le recensement des tables va débuter, et peut prendre quelques minutes. Etes-vous sûr de vouloir lancer le traitement ?", "Cas d'emploi", MessageBoxButtons.YesNo) != DialogResult.Yes) { return; } //Création des services var projectService = _Application.ServiceManager.GetService <IProjectService>(); string openedProjectName = null; if (projectService.ActiveProject != null) { if (projectService.ActiveProject.IsOpen) { openedProjectName = projectService.ActiveProject.Name; projectService.CloseProject(); } } //Vérification que tous les projets sont fermés var openedProjectList = groupService.ActiveGroup.GetOpenedProjectList(); if (openedProjectList.IsNotNullAndNotEmpty()) { MessageBox.Show("Certains projets du groupe sont ouverts. L'analyse n'est donc pas possible." + Environment.NewLine + Environment.NewLine + openedProjectList.Select(x => x.Name).Concat(Environment.NewLine), "Projet ouvert", MessageBoxButtons.OK); } else { var inProgressUserControl = new ucMessageBox("Traitement en cours"); using (var inProgressForm = new frmUserControl(inProgressUserControl, "Cas d'emploi des fichiers tables excel", false, false)) { inProgressForm.TopMost = true; inProgressForm.Show(); inProgressForm.Refresh(); //ProjectTable inProgressUserControl.SetMessage("Traitement des tables de projet"); inProgressForm.Refresh(); trvProjectTable.Nodes.Clear(); var selectedPackage = (cboPackage.SelectedIndex != -1) ? (EquinoxeExtend.Shared.Object.Release.Package)cboPackage.SelectedItem : null; foreach (var item in GenerateProjetTableTreeNode(activeEnvironment, destinationEnvironment, selectedPackage).Enum()) { trvProjectTable.Nodes.Add(item); } } } if (openedProjectName != null) { projectService.OpenProject(openedProjectName); } } } } catch (Exception ex) { ex.ShowInMessageBox(); } }
private void cmdRunWhereUsedAnalyse_Click(object sender, System.EventArgs e) { //Création des services var projectService = _Application.ServiceManager.GetService <IProjectService>(); string openedProjectName = null; if (projectService.ActiveProject != null) { if (projectService.ActiveProject.IsOpen) { openedProjectName = projectService.ActiveProject.Name; projectService.CloseProject(); } } try { if (_IsLoading.Value) { return; } using (var locker = new BoolLocker(ref _IsLoading)) { using (var projectOpenLocker = new BoolLocker(ref Consts.Consts.DontShowCheckTaskOnStartup)) { //Confirmation if (MessageBox.Show("Le recensement des tables va débuter, et peut prendre quelques minutes. Etes-vous sûr de vouloir lancer le traitement ?", "Cas d'emploi", MessageBoxButtons.YesNo) != DialogResult.Yes) { return; } //Vérification que tous les projets sont fermés var groupService = _Application.ServiceManager.GetService <IGroupService>(); var openedProjectList = groupService.ActiveGroup.GetOpenedProjectList(); if (openedProjectList.IsNotNullAndNotEmpty()) { MessageBox.Show("Certains projets du groupe sont ouverts. L'analyse n'est donc pas possible." + Environment.NewLine + Environment.NewLine + openedProjectList.Select(x => x.Name).Concat(Environment.NewLine), "Projet ouvert", MessageBoxButtons.OK); } else { var inProgressUserControl = new ucMessageBox("Traitement en cours"); using (var inProgressForm = new frmUserControl(inProgressUserControl, "Cas d'emploi des tables de groupe", false, false)) { inProgressForm.TopMost = true; inProgressForm.Show(); inProgressForm.Refresh(); //GroupTable inProgressUserControl.SetMessage("Traitement des tables de groupes"); inProgressForm.Refresh(); trvGroupTable.Nodes.Clear(); foreach (var item in GenerateGroupTableTreeNode().Enum()) { trvGroupTable.Nodes.Add(item); } } } } } } catch (Exception ex) { ex.ShowInMessageBox(); } finally { if (openedProjectName != null) { projectService.OpenProject(openedProjectName); } } }