public static void Analyser(Guid projectId, TextWriter output) { using (SpecflowEntities entities = new SpecflowEntities()) { Projet projet = entities.Projets.FirstOrDefault(p => p.Id == projectId); if (projet == null) { throw new ExceptionTechnique("Aucun projet n'a pour identifiant : " + projectId); } List <Fonctionnalite> fonctionnalites = GetResult(projet, output); if (fonctionnalites == null) { output.WriteLine("- Echec ! :("); return; } output.WriteLine("- Purge des fonctionnalités"); foreach (Fonctionnalite feature in projet.Fonctionnalites.ToList()) { entities.Fonctionnalites.Remove(feature); } entities.SaveChanges(); output.WriteLine("- Ajout des fonctionnalités"); fonctionnalites.ForEach(f => projet.Fonctionnalites.Add(f)); entities.SaveChanges(); output.WriteLine("- Réussi :)"); } }
public static void Analyser(string nomProjet, string versionProjet, string pathToFeatures, string pathToDll, string pathToTestSetting, TextWriter output) { if (!Directory.Exists(pathToFeatures)) { throw new ExceptionFonctionnelle("Le dossier '" + pathToFeatures + "' n'existe pas."); } if (!File.Exists(pathToDll)) { throw new ExceptionFonctionnelle("Le fichier '" + pathToDll + "' n'existe pas."); } nomProjet = nomProjet.Trim(); if (string.IsNullOrEmpty(nomProjet)) { throw new ExceptionFonctionnelle("Le nom du projet est vide."); } using (SpecflowEntities entities = new SpecflowEntities()) { Projet projet = entities.Projets.FirstOrDefault(p => p.Nom == nomProjet && p.Version == versionProjet); if (projet == null) { projet = new Projet() { Id = Guid.NewGuid(), Nom = nomProjet, Version = versionProjet, PathToFeatures = pathToFeatures, PathToTestDll = pathToDll, PathToTestSettings = pathToTestSetting }; entities.Projets.Add(projet); } List <Fonctionnalite> fonctionnalites = GetResult(projet, output); if (fonctionnalites == null) { output.WriteLine("- Echec ! :("); return; } output.WriteLine("- Purge des fonctionnalités"); foreach (Fonctionnalite feature in projet.Fonctionnalites.ToList()) { entities.Fonctionnalites.Remove(feature); } entities.SaveChanges(); output.WriteLine("- Ajout des fonctionnalités"); fonctionnalites.ForEach(f => projet.Fonctionnalites.Add(f)); entities.SaveChanges(); output.WriteLine("- Réussi :)"); } }