protected IEnumerable <Installation> GetAllInstallations() { foreach (var dir in _fileWrapper.GetChilds(_environment.GlobalPath)) { var name = _fileWrapper.GetFileName(dir); if (!_fileWrapper.IsExists(dir) || !_fileWrapper.IsFolder(dir)) { continue; } var acexe = Path.Combine(dir, _environment.DataFolderName, _environment.AcExeFileName); var wizard = Path.Combine(dir, _environment.DataFolderName, _environment.WizardFileName); yield return(new Installation { AcExePath = _fileWrapper.IsExists(acexe) ? acexe : null, WizardPath = _fileWrapper.IsExists(wizard) ? wizard : null, PhysicalPath = dir, Name = name, Version = _fileWrapper.GetVersion(acexe) }); } }