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 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 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); } } }