//Seed = Appel auto après création de la BDD pour alimentation données de test ou initialisation protected override void Seed(QPMContext context) { //L'objet à besoin de connaitre la config à plusieurs endroits pour ses traitements QPMConfiguration qpmConfig = Common.QPMGetConfig(); // --------- Serveurs --------- //Nom est en clair dans la liste List <Serveur> serveurs = new List <Serveur> { //new Serveur { Id = "1", Nom = "SRV99BI" , Url = ConfigurationManager.AppSettings["Dev"], Description = "Développement"}, //new Serveur { Id = "2", Nom = "SRV02BI" , Url = ConfigurationManager.AppSettings["Rec-Prod"], Description = "Recette/Prod"} new Serveur { Id = "1", Nom = "SRV99BI", Url = qpmConfig.Global.Environnements["Dev"], Description = "Développement" }, new Serveur { Id = "2", Nom = "SRV02BI", Url = qpmConfig.Global.Environnements["Rec-Prod"], Description = "Recette/Prod" } //Ne pas mettre dans l'initialisation de la bdd //,new Serveur { Id = "3", Nom = Common.GetHostName() , Url = ConfigurationManager.AppSettings["Localhost"], Description = "Desktop"} }; serveurs.ForEach(s => context.Serveurs.Add(s)); //List<Flux> flux = new List<Flux>{ // new Flux { Id = "1", Nom = "Dev.Ventes" } //}; //flux.ForEach(s => context.Streams.Add(s)); //List<Application> applications = new List<Application>{ // new Application { Id = "ea099413-3c1d-45e0-8874-fa46e1df7ff1", Nom = "AELIA"}, // new Application { Id = "dc878ecd-887b-4c47-8e33-25d440d64441", Nom = "Chiffres GERS (dev)"}, // new Application { Id = "xxxxxxxx", Nom = "Erreur"} //}; //applications.ForEach(s => context.Applications.Add(s)); //Jeu de données pour l'environement de dev //if (ConfigurationManager.AppSettings["EnvironnementDExecution"]== "Dev") if (qpmConfig.Global.Environnements["EnvironnementDExecution"] == "Dev") { // --------- Historique --------- List <Historique> historiques = new List <Historique> { new Historique { ID = 0, Utilisateur = "jlepouliq", Origine = "Archiver/Application", Type = "Connection", Details = "Archiver sur ....", Date = DateTime.Now, Statut = "OK" }, new Historique { ID = 1, Utilisateur = "bvalliere", Origine = "Afficher/Application", Type = "Connection", Details = "Afficher les applications", Date = DateTime.Now, Statut = "KO" } }; historiques.ForEach(s => context.Historiques.Add(s)); } context.SaveChanges(); }
//---------------------------------------------------- //Constructeur //---------------------------------------------------- //public Batch(Dictionary<string, string> _parametrage) public Batch() { //L'objet à besoin de connaitre la config à plusieurs endroits pour ses traitements qpmConfig = Common.QPMGetConfig(); //Console.Clear(); //_Parametrage = _parametrage; DomaineConnexion = qpmConfig.Global.UtilisateurModele["domain"]; Login = qpmConfig.Global.UtilisateurModele["user"]; Password = qpmConfig.Global.UtilisateurModele["password"]; TraitementOk = false; SuffixeRepertoireArchivage = qpmConfig.Global.Fichiers["ArchivSuffix"]; }
//Constructeur public TesterDonneesViewModel() { //L'objet à besoin de connaitre la config à plusieurs endroits pour ses traitements qpmConfig = Common.QPMGetConfig(); Init(); }
//------------------------------------------------------------------ // Compare la structure des 2 applications //------------------------------------------------------------------ public void Comparer() { //Répertoire d'export //string exportDir = ConfigurationManager.AppSettings["ExportDirectory"]; //Fichier à créer directement sur le poste local (rassemble l'étape de création puis de copie) QPMConfiguration qpmConfig = Common.QPMGetConfig(); string importDirectory = qpmConfig.Global.Repertoires["ImportDirectory"]; //string importDirectory = ConfigurationManager.AppSettings["ImportDirectory"]; string exportDir = "\\\\" + Common.GetHostName() + "\\" + importDirectory + "\\"; //string suffixeExportDir = ConfigurationManager.AppSettings["ExportSuffix"]; string suffixeExportDir = qpmConfig.Global.Fichiers["ExportSuffix"]; string fileDir = exportDir + DateTime.Now.ToString("yyyyMMdd") + suffixeExportDir.Replace(" ", "%20") + @"\"; var serveurRefName = ServeurRef.Connexion._Application.Where(a => a.Value == ServeurRef.Connexion.Application).First().Text; var serveurCompName = ServeurComp.Connexion._Application.Where(a => a.Value == ServeurComp.Connexion.Application).First().Text; Results.addDetails("Début de la comparaison"); //List<string> _fullFileName = QEngineConnexion.ExportModeleApplication(Application, fileDir); //Export du modele Results.addDetails("Début de l'export du modèle de l'application " + serveurRefName); ExportModeleApp csvModelAppRef = ServeurRef.Connexion.QEngineConnexion.ExportModeleApplication(ServeurRef.Connexion.Application); List <string> _csvModelAppRef = ServeurRef.Connexion.QEngineConnexion.ModeleToTableau(csvModelAppRef); Results.addDetails("Début de l'export du modèle de l'application " + serveurCompName); ExportModeleApp csvModelAppComp = ServeurComp.Connexion.QEngineConnexion.ExportModeleApplication(ServeurComp.Connexion.Application); List <string> _csvModelAppComp = ServeurComp.Connexion.QEngineConnexion.ModeleToTableau(csvModelAppComp); //Liste des objet en différences Dictionary <string, string> _diffRef = CompareModelApplication(csvModelAppRef, csvModelAppComp); Dictionary <string, string> _diffComp = CompareModelApplication(csvModelAppComp, csvModelAppRef); List <string> _diff = new List <string>(); //Ecriture de l'entete _diff.Add(_csvModelAppComp.First()); Results.addDetails("Début de la comparaison à partir de l'application de référence " + serveurRefName); //Comparaison à partir du serveur de ref foreach (var line in _csvModelAppRef) { foreach (var id in _diffRef) { if (line.Contains("\"" + id.Key + "\"") && line.Contains("\"" + id.Value + "\"")) { _diff.Add(line); } } } Results.addDetails("Début de la comparaison à partir de l'application de comparaison " + serveurCompName); //Comparaison à partir du serveur de ref foreach (var line in _csvModelAppComp) { foreach (var id in _diffComp) { if (line.Contains("\"" + id.Key + "\"") && line.Contains("\"" + id.Value + "\"")) { _diff.Add(line); } } } //Ecriture du tableau de différence ExistOrCreate(fileDir); //Ecriture du fichier string baseFileName = fileDir + ServeurRef.Connexion.Application + "-" + DateTime.Now.ToString("yyyyMMddHHmmss"); baseFileName = fileDir + "Comp_" + serveurRefName + "-" + DateTime.Now.ToString("yyyyMMddHHmmss"); string suffixeFicher = ".csv"; string fullFileName = baseFileName + suffixeFicher; Results.addDetails("Début de la génération du fichier de détails"); //Results.addDetails("<Table><TR><TD>objet</TD><TD>Cause</TD></TR><TR><TD>123456</TD><TD>doublon</TD></TR></Table>"); Results.addDetails("Début de la génération du tableau de synthèse" + "<BR/>" + AddDetailsSynthesCompare(_diffRef, _diffComp)); WriteTabToFile(_diff, fullFileName); if (string.IsNullOrEmpty(fullFileName)) { Results.addDetails("Export du modèle en erreur"); } else { Results.addDetails("Fichier à analyser : " + fullFileName.Replace(" ", "%20")); //Results.addDetails("<a href =\"/Archiver/DownloadFile?fullFileName=" + fullFileName.Replace(" ", "%20") + "\">>Télécharger</a>    <a href=\"file:///" + fileDir + "\">>Ouvrir le répertoire</a>"); Results.addDetails("<a href =\"file:///" + fileDir + "\">>Ouvrir le répertoire</a>"); Results.Title = "Comparaison OK"; } }