Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public IEnumerable<ConfigProfile> GetSavedProfiles(string product)
- {
- if(string.IsNullOrEmpty(product))
- {
- throw new ArgumentNullException("product");
- }
- string profileDirectory = _factory.GetCustomProfileDirectory(product);
- List<ConfigProfile> profiles = Enumerable.Empty<ConfigProfile>().ToList();
- _logger.Debug("Getting Saved profiles.");
- IList<FileInfo> files = GetProfilesInDirectory(profileDirectory).ToList();
- if (!files.Any())
- {
- _logger.Debug(string.Format("No custom profiles found for {0}.", product));
- return profiles;
- }
- profiles.AddRange(files.Select(LoadProfile));
- return profiles;
- }
- protected virtual IEnumerable<FileInfo> GetProfilesInDirectory(string directory)
- {
- DirectoryInfo files = new DirectoryInfo(directory);
- return files.EnumerateFiles("*.ecu");
- }
- protected virtual ConfigProfile LoadProfile(FileInfo file)
- {
- ConfigProfile profile;
- using (FileStream stream = new FileStream(file.FullName, FileMode.Open))
- {
- profile = _serializer.DeserializeFromDisk(stream);
- }
- return profile;
- }
- public IDirectoryInfoWrap GetDirectoryInfoWrapper(string product)
- {
- if(string.IsNullOrEmpty(product))
- {
- throw new ArgumentNullException("product");
- }
- string profileDirectory = _factory.GetCustomProfileDirectory(product);
- return new DirectoryInfoWrap(profileDirectory);
- }
- public IList<FileInfo> GetProfileFiles(IDirectoryInfoWrap di)
- {
- _logger.Debug("Getting Saved profiles.");
- // NOTE: EnumerateFiles is not in the SystemWrapper so you will have to use an alternative
- IList<FileInfo> files = di.EnumerateFiles("*.ecu").ToList();
- return files;
- }
- // Left for you to do...refactor in a manner so that FileSystem is using the IFileSystemWrap
- public IEnumerable<ConfigProfile> GetSavedProfiles(IList<FileInfo> files)
- {
- List<ConfigProfile> profiles = Enumerable.Empty<ConfigProfile>().ToList();
- if (!files.Any())
- {
- _logger.Debug(string.Format("No custom profiles found for {0}.", product));
- return profiles;
- }
- profiles.AddRange(files.Select(LoadProfile));
- return profiles;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement