Guest User

Untitled

a guest
Jul 17th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. using System.IO;
  2.  
  3. namespace ComposableDecorators
  4. {
  5. public class Program
  6. {
  7. static void Main(string[] args)
  8. {
  9. //how to use
  10. Csv finalCsv = new CsvMassaged(
  11. new CsvDeduped(
  12. new CsvText("file location")
  13. )
  14. );
  15. }
  16. }
  17.  
  18. public interface Csv
  19. {
  20. string Read();
  21. }
  22.  
  23. public class CsvText : Csv
  24. {
  25. private readonly string _file;
  26.  
  27. public CsvText(string file)
  28. {
  29. _file = file;
  30. }
  31.  
  32. public string Read()
  33. {
  34. return File.ReadAllBytes(_file).ToString();
  35. }
  36. }
  37.  
  38. public class CsvDeduped : Csv
  39. {
  40. private readonly Csv _origin;
  41.  
  42. public CsvDeduped(Csv csv)
  43. {
  44. _origin = csv;
  45. }
  46. public string Read()
  47. {
  48. return Dedupe(_origin.Read());
  49. }
  50.  
  51. private string Dedupe(string originText)
  52. {
  53. //deduplication logic
  54. return originText;
  55. }
  56. }
  57.  
  58. public class CsvMassaged : Csv
  59. {
  60. private readonly Csv _origin;
  61.  
  62. public CsvMassaged(Csv csv)
  63. {
  64. _origin = csv;
  65. }
  66. public string Read()
  67. {
  68. return Massage(_origin.Read());
  69. }
  70.  
  71. private string Massage(string originText)
  72. {
  73. //massage logic
  74. return originText;
  75. }
  76. }
  77. }
Add Comment
Please, Sign In to add comment