Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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();
            }
        }
Beispiel #3
0
        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();
            }
        }
Beispiel #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();
            }
        }
Beispiel #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();
            }
        }