Advertisement
Guest User

Untitled

a guest
Apr 14th, 2014
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.77 KB | None | 0 0
  1.     public interface IPathTransformer
  2.     {
  3.         String Transform(String path);
  4.     }
  5.  
  6.     public class MovePathTransformer : IPathTransformer
  7.     {
  8.         private readonly String _targetDirectory;
  9.  
  10.         public MovePathTransformer(String targetDirectory)
  11.         {
  12.             if (targetDirectory == null) throw new ArgumentNullException("targetDirectory");
  13.             _targetDirectory = targetDirectory;
  14.             if (!_targetDirectory.EndsWith(@"\"))
  15.                 _targetDirectory += @"\";
  16.         }
  17.  
  18.         public String Transform(String path)
  19.         {
  20.             if (path == null) throw new ArgumentNullException("path");
  21.             return Path.Combine(_targetDirectory, Path.GetFileName(path));
  22.         }
  23.     }
  24.  
  25.     public class FileNameAppendPathTransformer : IPathTransformer
  26.     {
  27.         private readonly String _value;
  28.  
  29.         public FileNameAppendPathTransformer(String value)
  30.         {
  31.             if (value == null) throw new ArgumentNullException("value");
  32.             _value = value;
  33.         }
  34.  
  35.         public String Transform(String path)
  36.         {
  37.             if (path == null) throw new ArgumentNullException("path");
  38.             String directory = Path.GetDirectoryName(path);
  39.             String name = Path.GetFileNameWithoutExtension(path);
  40.             String extension = Path.GetExtension(path);
  41.  
  42.             return Path.Combine(directory, String.Concat(name, _value, extension));
  43.         }
  44.     }
  45.  
  46.     public class TodayDatePathTransformer : IPathTransformer
  47.     {
  48.         private readonly String _dateFormat;
  49.  
  50.         public TodayDatePathTransformer()
  51.             : this(@"MMddyyyy")
  52.         {
  53.         }
  54.  
  55.         public TodayDatePathTransformer(String dateFormat)
  56.         {
  57.             if (dateFormat == null) throw new ArgumentNullException("dateFormat");
  58.             _dateFormat = dateFormat;
  59.         }
  60.  
  61.         public String Transform(String path)
  62.         {
  63.             if (path == null) throw new ArgumentNullException("path");
  64.  
  65.             IPathTransformer appender = new FileNameAppendPathTransformer(DateTime.Today.ToString(_dateFormat));
  66.             return appender.Transform(path);
  67.         }
  68.     }
  69.  
  70.     public class PathTransformer : IPathTransformer
  71.     {
  72.         private readonly IEnumerable<IPathTransformer> _transformers;
  73.  
  74.         public PathTransformer(params IPathTransformer[] transformers)
  75.         {
  76.             if (transformers == null) throw new ArgumentNullException("transformers");
  77.             _transformers = transformers;
  78.         }
  79.  
  80.         public String Transform(String path)
  81.         {
  82.             if (path == null) throw new ArgumentNullException("path");
  83.             return _transformers.Aggregate(path, (current, transformer) => transformer.Transform(current));
  84.         }
  85.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement