PlaylistHandler.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. namespace MusicPlayer
  6. {
  7. public class PlaylistHandler
  8. {
  9. private List<Playlist> playlists;
  10. public Main main
  11. {
  12. get; set;
  13. }
  14. private readonly string basedir = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\.mpplaylists\\";
  15. public PlaylistHandler()
  16. {
  17. this.playlists = new List<Playlist>();
  18. }
  19. public void Populate()
  20. {
  21. try {
  22. Directory.GetFiles(basedir).ToList().ForEach(f =>
  23. {
  24. if (f.EndsWith(".txt"))
  25. {
  26. playlists.Add(new Playlist(Path.GetFileName(f.Replace(".txt","")) ,basedir, main.nw.ip, main.api));
  27. }
  28. });
  29. }
  30. catch (DirectoryNotFoundException)
  31. {
  32. Directory.CreateDirectory(basedir);
  33. Populate();
  34. }
  35. }
  36. public void MakeNewPlaylistByName(string name)
  37. {
  38. playlists.Add(new Playlist(name, basedir, main.nw.ip, main.api));
  39. }
  40. public Playlist GetPlaylistByName(string name)
  41. {
  42. Playlist toFind = null;
  43. playlists.ForEach(p =>
  44. {
  45. if (p.name == name) { toFind = p; }
  46. });
  47. return toFind;
  48. }
  49. public List<Playlist> GetPlaylists()
  50. {
  51. List<Playlist> currentPlaylists = new List<Playlist>();
  52. foreach(Playlist pl in playlists)
  53. {
  54. if (pl.server == main.nw.ip)
  55. currentPlaylists.Add(pl);
  56. }
  57. return currentPlaylists;
  58. }
  59. }
  60. }