/// <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..."; } }
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)"; } }