コード例 #1
0
        private void ProcessSqlObjectDelete()
        {
            if (treeView1.SelectedNode.Tag == null || !(treeView1.SelectedNode.Tag is Object objectDel) || cbVersions.SelectedItem == null || !(cbVersions.SelectedItem is VersionObjectCounter versionObjectCounterDel))
            {
                return;
            }

            if (MessageBox.Show(this, $"Etes vous certain de vouloir supprimer {objectDel} ?", "Confirmez la suppression", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) != DialogResult.Yes)
            {
                return;
            }

            var objectisNotAnImplementation = treeView1.SelectedNode.Tag as ObjectWithClientSpecific;

            using var crudProcess = new CRUDObjectProcess();
            crudProcess.Delete(objectDel, objectisNotAnImplementation?.NumberOfClientImplementation ?? 0);

            var parent = treeView1.SelectedNode.Parent;

            if (parent != null && parent.Tag != null)
            {
                if (parent.Tag is TypeObjectCounter typeObjectCounterDel)
                {
                    FillReferentialTypeObject(parent, versionObjectCounterDel, typeObjectCounterDel, true);
                    treeView1.SelectedNode.Expand();
                    DisplayNodeSelected(parent);
                }
                else if (parent.Tag is ObjectWithClientSpecific objectWithSpecific)
                {
                    FillCustomClientList(parent, objectWithSpecific, true);
                    treeView1.SelectedNode.Expand();
                    DisplayNodeSelected(parent);
                }
            }
        }
コード例 #2
0
        private void ProcessSqlObjectAddCustomClientEnd()
        {
            if (treeView1.SelectedNode.Tag == null || !(treeView1.SelectedNode.Tag is ObjectWithClientSpecific ObjetAddEnd) || currentObjectEdited == null)
            {
                return;
            }

            if (sqlTextBox1.Text == currentObjectEdited.ObjectSql)
            {
                MessageBox.Show(this, $"Aucun changement entre l'implémentation et la version de départ", "Insertion imposible", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            currentObjectEdited.ObjectSql = sqlTextBox1.Text;
            AnalyseEntete();
            if (string.IsNullOrWhiteSpace(currentObjectEdited.ObjectName))
            {
                MessageBox.Show(this, $"L'analyse du script a échoué.\nImpossible de déterminer le nom de {currentObjectEdited.GetTypeObject().TypeObjectName}", "Insertion imposible", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            using var crudProcess = new CRUDObjectProcess();
            int id = crudProcess.Add(currentObjectEdited);

            FillCustomClientList(treeView1.SelectedNode, ObjetAddEnd, true);
            var node = SelectNodeObject(treeView1.SelectedNode, id);

            CancelEdition(node);
        }
コード例 #3
0
        private void ProcessSqlObjectAddEnd()
        {
            if (treeView1.SelectedNode.Tag == null || !(treeView1.SelectedNode.Tag is TypeObjectCounter typeObjetAddEnd) || cbVersions.SelectedItem == null || !(cbVersions.SelectedItem is VersionObjectCounter versionObjectCounterAddEnd))
            {
                return;
            }

            TreeNode node = null;

            if (currentObjectEdited != null && sqlTextBox1.Text != currentObjectEdited.ObjectSql)
            {
                currentObjectEdited.ObjectSql = sqlTextBox1.Text;
                AnalyseEntete();
                if (string.IsNullOrWhiteSpace(currentObjectEdited.ObjectName))
                {
                    MessageBox.Show(this, $"L'analyse du script a échoué.\nImpossible de déterminer le nom de {currentObjectEdited.GetTypeObject().TypeObjectName}", "Insertion imposible", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                using var crudProcess = new CRUDObjectProcess();
                int id = crudProcess.Add(currentObjectEdited);

                FillReferentialTypeObject(treeView1.SelectedNode, versionObjectCounterAddEnd, typeObjetAddEnd, true);
                node = SelectNodeObject(treeView1.SelectedNode, id);
            }

            CancelEdition(node);
        }
コード例 #4
0
ファイル: FImportFromBdd.cs プロジェクト: slewden2/VersionDB4
        private bool DoImport(CRUDObjectProcess processor, ObjectToImport import)
        {
            import.ClientCodeId = (import.Status == EImportType.DifferentImportASCustomClient) ? (int?)baseClient.ClientCodeId : null;
            int id = processor.Add(import);

            return(id > 0);
        }
コード例 #5
0
ファイル: FImportFromBdd.cs プロジェクト: slewden2/VersionDB4
        private void DoImport()
        {
            this.UseWaitCursor         = true;
            lblFinalSumary.Text        = "Import en cours...";
            lblFinalSumary.ForeColor   = SystemColors.ControlText;
            lblStatusSummary.ForeColor = SystemColors.ControlText;
            lblStatusSummary.Text      = "...";
            btnPrevious.Enabled        = false;
            btnOk.Enabled    = false;
            btCancel.Enabled = false;

            Application.DoEvents();
            try
            {
                int nb = 0, ok = 0;
                using var processor = new CRUDObjectProcess();
                processor.BeginTransaction();
                try
                {
                    foreach (ListViewItem itx in lstChoice.Items)
                    {
                        if (itx.Tag != null && itx.Tag is ObjectToImport import && import.Status.IsAction())
                        {
                            if (DoImport(processor, import))
                            {
                                ok++;
                            }

                            nb++;
                        }
                    }

                    processor.CommitTransaction();
                    lblFinalSumary.Text        = $"{ok.Counter("Aucun objet importé", "Un seul objet importé", "{0} objets importés")} sur {nb.Counter("x", "l'objet prévu", "les {0} objets prévus")}";
                    lblFinalSumary.ForeColor   = ok == nb ? Color.Green : Color.Red;
                    lblStatusSummary.ForeColor = ok == nb ? Color.Green : Color.Red;
                    lblStatusSummary.Text      = ok == nb ? "" : "";
                }
                catch (Exception ex)
                {
                    string message = "Erreur de traitement : Opération totalement annulée\n\n" + ex.Message;
                    processor.RollBackTransaction();
                    lblFinalSumary.Text        = message;
                    lblFinalSumary.ForeColor   = Color.Red;
                    lblStatusSummary.ForeColor = Color.Red;
                    lblStatusSummary.Text      = "";
                    MessageBox.Show(message, "Erreur de traitement", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            finally
            {
                this.UseWaitCursor = false;
            }

            EnableButtons();
        }
コード例 #6
0
        private void ProcessSqlObjectEditEnd()
        {
            if (currentObjectEdited != null && sqlTextBox1.Text != currentObjectEdited.ObjectSql)
            {
                currentObjectEdited.ObjectSql = sqlTextBox1.Text;
                AnalyseEntete();
                if (string.IsNullOrWhiteSpace(currentObjectEdited.ObjectName))
                {
                    MessageBox.Show(this, $"L'analyse du script a échoué.\nImpossible de déterminer le nom de {currentObjectEdited.GetTypeObject().TypeObjectName}", "Mise à jour imposible", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                using var crudProcess = new CRUDObjectProcess();
                crudProcess.Edit(currentObjectEdited);

                if ((!currentObjectEdited.ClientCodeId.HasValue || currentObjectEdited.ClientCodeId.Value <= 0) && treeView1.SelectedNode.Text != currentObjectEdited.ToString())
                {
                    treeView1.SelectedNode.Text = currentObjectEdited.ToString();
                    treeView1.SelectedNode.Tag  = currentObjectEdited;
                }
            }

            CancelEdition(treeView1.SelectedNode);
        }