Implemented directory manager to enforce a structured music directory #13

This commit is contained in:
amazing-username
2019-03-23 21:29:42 +00:00
parent f5667746b8
commit 798db84ce9
5 changed files with 21 additions and 5 deletions
+9 -1
View File
@@ -48,6 +48,14 @@ namespace Icarus.Controllers.Managers
try
{
_songDirectory = CreateDirectoryFromSong();
if (!Directory.Exists(_songDirectory))
{
Directory.CreateDirectory(_songDirectory);
Console.WriteLine("The directory has been created");
}
Console.WriteLine($"The song will be saved in the following" +
$" directory: {_songDirectory}");
}
@@ -65,7 +73,7 @@ namespace Icarus.Controllers.Managers
string CreateDirectoryFromSong()
{
string directory = _rootSongDirectory;
directory += $"{_song.Artist}//{_song.Album}//{_song.Title}.mp3";
directory += $"{_song.Artist}//{_song.Album}//";
return directory;
}
+8 -1
View File
@@ -166,10 +166,18 @@ namespace Icarus.Controllers.Managers
DirectoryManager dirMgr = new DirectoryManager(_config, _song);
dirMgr.CreateDirectory();
filePath = dirMgr.SongDirectory;
if (!song.FileName.EndsWith(".mp3"))
filePath += $"{song.FileName}.mp3";
else
filePath += $"{song.FileName}";
Console.WriteLine($"Full path {filePath}");
using (var fileStream = new FileStream(filePath, FileMode.Create))
{
await song.CopyToAsync(fileStream);
_song.SongPath = filePath;
SaveSongDetails();
Console.WriteLine($"Writing song to the directory: {filePath}");
@@ -293,7 +301,6 @@ namespace Icarus.Controllers.Managers
await song.CopyToAsync(fileStream);
_song = RetrieveMetaData(filePath);
_song.Filename = song.FileName;
SaveSongDetails();
}
}