Advertisement
Guest User

Untitled

a guest
Feb 28th, 2015
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.27 KB | None | 0 0
  1. public IEnumerable<ConfigProfile> GetSavedProfiles(string product)
  2. {
  3. if(string.IsNullOrEmpty(product))
  4. {
  5. throw new ArgumentNullException("product");
  6. }
  7.  
  8. string profileDirectory = _factory.GetCustomProfileDirectory(product);
  9. List<ConfigProfile> profiles = Enumerable.Empty<ConfigProfile>().ToList();
  10.  
  11. _logger.Debug("Getting Saved profiles.");
  12.  
  13. IList<FileInfo> files = GetProfilesInDirectory(profileDirectory).ToList();
  14.  
  15. if (!files.Any())
  16. {
  17. _logger.Debug(string.Format("No custom profiles found for {0}.", product));
  18. return profiles;
  19. }
  20.  
  21. profiles.AddRange(files.Select(LoadProfile));
  22.  
  23. return profiles;
  24.  
  25. }
  26.  
  27. protected virtual IEnumerable<FileInfo> GetProfilesInDirectory(string directory)
  28. {
  29. DirectoryInfo files = new DirectoryInfo(directory);
  30.  
  31. return files.EnumerateFiles("*.ecu");
  32. }
  33.  
  34. protected virtual ConfigProfile LoadProfile(FileInfo file)
  35. {
  36. ConfigProfile profile;
  37. using (FileStream stream = new FileStream(file.FullName, FileMode.Open))
  38. {
  39. profile = _serializer.DeserializeFromDisk(stream);
  40. }
  41. return profile;
  42. }
  43.  
  44. public IDirectoryInfoWrap GetDirectoryInfoWrapper(string product)
  45. {
  46. if(string.IsNullOrEmpty(product))
  47. {
  48. throw new ArgumentNullException("product");
  49. }
  50.  
  51. string profileDirectory = _factory.GetCustomProfileDirectory(product);
  52. return new DirectoryInfoWrap(profileDirectory);
  53. }
  54.  
  55. public IList<FileInfo> GetProfileFiles(IDirectoryInfoWrap di)
  56. {
  57. _logger.Debug("Getting Saved profiles.");
  58.  
  59. // NOTE: EnumerateFiles is not in the SystemWrapper so you will have to use an alternative
  60. IList<FileInfo> files = di.EnumerateFiles("*.ecu").ToList();
  61. return files;
  62. }
  63.  
  64. // Left for you to do...refactor in a manner so that FileSystem is using the IFileSystemWrap
  65. public IEnumerable<ConfigProfile> GetSavedProfiles(IList<FileInfo> files)
  66. {
  67. List<ConfigProfile> profiles = Enumerable.Empty<ConfigProfile>().ToList();
  68. if (!files.Any())
  69. {
  70. _logger.Debug(string.Format("No custom profiles found for {0}.", product));
  71. return profiles;
  72. }
  73.  
  74. profiles.AddRange(files.Select(LoadProfile));
  75.  
  76. return profiles;
  77.  
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement