/*public void Execute(PerformContext hangfireContext, Container container) * { * if (!container.IsTriggrProject()) * return; * * var probes = container.CheckForProbes(); * hangfireContext.WriteLine($"Executing ProbeControl"); * * var codeChangeProbes = probes.Where(i => i.ProbeType == ProbeType.CodeChanges).ToList(); * * var oldFiles = new Dictionary<Probe, string>(); * if (codeChangeProbes.Count > 0) * { * foreach (var probe in codeChangeProbes) * { * var tempFile = Path.GetTempFileName(); * * var objectPath = Path.Combine(container.Folder, probe.Object.Path); * if (File.Exists(objectPath)) * { * hangfireContext.WriteLine($"Probe {probe.Object.Path}"); * * File.Copy(objectPath, tempFile, true); * * oldFiles.Add(probe, tempFile); * } * } * } * * var provider = _providerFactory.GetProvider(container.Repository.Provider); * var updatedPath = provider.Update(container.Repository); * * if (!string.IsNullOrEmpty(updatedPath)) * { * foreach (var probe in probes) * { * if (probe.ProbeType == ProbeType.CodeChanges) * { * var tempFile = oldFiles[probe]; * var objectPath = Path.Combine(container.Folder, probe.Object.Path); * var language = _languageService.Define(probe.Object.Path); * * var result = _scriptExecutor.Execute(probe.ProbeType, language.FolderName, * objectPath, tempFile, probe.Object.Type, probe.Object.Name); * * hangfireContext.WriteLine($"Result of comparision {result}"); * * // it will changed with executing shell script * } * } * } * hangfireContext.WriteLine($"Finished ProbeControl"); * * } */ public void Execute(PerformContext hangfireContext, string probeId, string repoId) { var repository = _dbContext.Repositories.Find(repoId); // get the repository if (repository != null) { var container = _containerService.GetContainer(repoId); // get the container // get all probes and look for probeId var probes = container.CheckForProbes(); var probe = probes.FirstOrDefault(i => i.Id.Equals(probeId)); if (probe != null) { hangfireContext?.WriteLine(ConsoleTextColor.Gray, $"{probe.Object.Path} is found."); // define the language var language = _languageService.Define(probe.Object.Path); // get the provider var provider = _providerFactory.GetProvider(repository.Provider); // restore to previous file if (provider.Restore(repository, probe.Object.Path, true)) { hangfireContext?.WriteLine(ConsoleTextColor.Gray, $"{probe.Object.Path} is restored to old."); // get the file path var objectPath = Path.Combine(container.Folder, probe.Object.Path); // look for the object var ast1 = _scriptExecutor.Execute("AST", language.FolderName, objectPath, probe.Object.Type, probe.Object.Name); hangfireContext?.WriteLine(ConsoleTextColor.Gray, $"{probe.Object.Path} old version is loaded."); var temp1 = WriteToTemp(ast1); // restore to original file if (provider.Restore(repository, probe.Object.Path, false)) { // look for the object var ast2 = _scriptExecutor.Execute("AST", language.FolderName, objectPath, probe.Object.Type, probe.Object.Name); var temp2 = WriteToTemp(ast2); hangfireContext?.WriteLine(ConsoleTextColor.Gray, $"{probe.Object.Path} new version is loaded."); Control(hangfireContext, probe, repository, temp1, temp2, language.FolderName); } } } } }