/// <summary>
        /// Durant l'édition du Texte SQL (ou en fin de saisie) :
        /// Vérifie que dans le script en cours d'édition pour un objet on a bien le CREATE XXX qui correspond
        /// (ET met à jour l'interface utilisateur pour le ui indiquer)
        /// </summary>
        private void AnalyseEntete()
        {
            if (currentObjectEdited == null || currentObjectEdited.TypeObjectId <= 0 || string.IsNullOrWhiteSpace(sqlTextBox1.Text))
            {
                return;
            }

            RegexFounding pattern = RegexFounding.List.FirstOrDefault(x => x.Action == SqlAction.Create && x.ApplyOn == currentObjectEdited.TypeObjectId);

            if (pattern == null)
            { // pas d'analyse possible pour ce type d'objet
                lblResumes.Text = string.Empty;
                return;
            }

            var bla = new BlocAnalyzer();

            bla.Analyze(pattern, 0, sqlTextBox1.Text);
            if (bla.Blocs.Count == 1)
            {
                currentObjectEdited.ObjectSchema = bla.Blocs[0].BlocSchema;
                currentObjectEdited.ObjectName   = bla.Blocs[0].BlocName;
                lblResumes.Text = $"Trouvé {currentObjectEdited.GetTypeObject().TypeObjectName} {currentObjectEdited}";
            }
            else
            {
                currentObjectEdited.ObjectSchema = string.Empty;
                currentObjectEdited.ObjectName   = string.Empty;
                lblResumes.Text = "Analyse du script...";
            }
        }
Esempio n. 2
0
        private void Choix_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbAction.SelectedItem != null && cbWhat.SelectedItem != null && cbAction.SelectedItem is SqlAction action && cbWhat.SelectedItem is TypeObject what)
            {
                pattern = RegexFounding.List.FirstOrDefault(x => x.Action == action.SqlActionId && x.ApplyOn == what.TypeObjectId);
                if (pattern == null)
                {
                    txtRegex.Text = "La combinaison n'existe pas (encore !!)";
                    lblInfos.Text = null;
                    return;
                }

                txtRegex.Text = pattern.Expression.ToString();
                int nb = datas.Count(x => x.SqlActionId == action.SqlActionId && x.SqlWhatId == what.TypeObjectId);
                if (nb == 0)
                {
                    lblInfos.Text = "Aucun cas de test trouvé";
                }
                else
                {
                    int ok = datas.Count(x => x.SqlActionId == action.SqlActionId && x.SqlWhatId == what.TypeObjectId && x.Result);
                    int ko = datas.Count(x => x.SqlActionId == action.SqlActionId && x.SqlWhatId == what.TypeObjectId && !x.Result);
                    lblInfos.Text = $"{ok} cas valide(s), {ko} cas invalide(s)";
                }
            }