예제 #1
0
 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();
            }
        }
예제 #4
0
        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();
            }
        }
예제 #5
0
        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();
            }
        }
예제 #6
0
        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();
            }
        }
예제 #7
0
        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);
                }
            }
        }