diff --git a/Controllers/Managers/CoverArtManager.cs b/Controllers/Managers/CoverArtManager.cs index def41bc..edeb21d 100644 --- a/Controllers/Managers/CoverArtManager.cs +++ b/Controllers/Managers/CoverArtManager.cs @@ -38,6 +38,7 @@ namespace Icarus.Controllers.Managers coverArt); song.CoverArtId = coverArt.CoverArtId; + _logger.Info("Cover art Process saving complete"); } public void DeleteCoverArtFromDatabase(CoverArt coverArt, CoverArtRepository coverArtRepository) @@ -122,6 +123,14 @@ namespace Icarus.Controllers.Managers Console.WriteLine("Copied Stock Cover Art"); } } + #region Testing + private void PrintCoverArtDetails(CoverArt cover) + { + Console.WriteLine("\nCover art"); + Console.WriteLine($"Song Title: {cover.SongTitle}"); + Console.WriteLine($"ImagePath: {cover.ImagePath}\n"); + } + #endregion #endregion } } diff --git a/Controllers/Managers/DirectoryManager.cs b/Controllers/Managers/DirectoryManager.cs index e685166..550f2da 100644 --- a/Controllers/Managers/DirectoryManager.cs +++ b/Controllers/Managers/DirectoryManager.cs @@ -2,6 +2,7 @@ using System; using System.IO; using System.Linq; using System.Runtime.InteropServices; +using System.Text; using Microsoft.Extensions.Configuration; @@ -94,7 +95,8 @@ namespace Icarus.Controllers.Managers } } [DllImport("libicarus.so")] - public static extern void create_directory(SongManager.Sng song); + public static extern void create_directory(SongManager.Sng song, string root_path, StringBuilder created_dir); + //public static extern void create_directory(SongManager.Sng song, string root_path, string created_dir); public void DeleteEmptyDirectories() { try diff --git a/Controllers/Managers/SongManager.cs b/Controllers/Managers/SongManager.cs index 6b8f78c..5cd043b 100644 --- a/Controllers/Managers/SongManager.cs +++ b/Controllers/Managers/SongManager.cs @@ -4,6 +4,7 @@ using System.Configuration; using System.Data; using System.IO; using System.Runtime.InteropServices; +using System.Text; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; @@ -362,17 +363,21 @@ namespace Icarus.Controllers.Managers var song = await SaveSongTemp(songFile, fileTempPath); song.SongPath = fileTempPath; - DirectoryManager dirMgr = new DirectoryManager(_config, song); - dirMgr.CreateDirectory(); - var sng = ConvertSongToSng(song); - DirectoryManager.create_directory(sng); + var rootPath = _config.GetValue("RootMusicPath"); + var strCount = rootPath.Length + song.Artist.Length + + song.AlbumTitle.Length + 2; + + var filePathSB = new StringBuilder(strCount); + + DirectoryManager.create_directory(sng, + rootPath, filePathSB); + + var filePath = filePathSB.ToString().Substring(0, strCount); System.IO.File.Delete(fileTempPath); - Environment.Exit(1); - - var filePath = dirMgr.SongDirectory; + var songFilename = songFile.FileName; if (!songFilename.EndsWith(".mp3")) diff --git a/Database/Contexts/CoverArtContext.cs b/Database/Contexts/CoverArtContext.cs index 01a1995..60bbd12 100644 --- a/Database/Contexts/CoverArtContext.cs +++ b/Database/Contexts/CoverArtContext.cs @@ -14,12 +14,12 @@ namespace Icarus.Database.Contexts { public DbSet CoverArtImages { get; set; } - public CoverArtContext(DbContextOptions options) : base(options) { } - - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - modelBuilder.Entity() - .ToTable("CoverArt"); - } + public CoverArtContext(DbContextOptions options) : base(options) { } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.Entity() + .ToTable("CoverArt"); + } } } diff --git a/Libs/CMakeLists.txt b/Libs/CMakeLists.txt index 4fa2274..deeae1e 100644 --- a/Libs/CMakeLists.txt +++ b/Libs/CMakeLists.txt @@ -2,9 +2,17 @@ cmake_minimum_required(VERSION 3.10) project(icarus) +set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD 17) + set(SOURCES - src/icarus.cpp + src/directory_manager.cpp +) +set(HEADERS + include/models.h + include/directory_manager.h ) -add_library(icarus SHARED ${SOURCES}) +add_library(icarus SHARED ${SOURCES} ${HEADERS}) +include_directories(include) +target_link_libraries(icarus "-lstdc++fs") diff --git a/Libs/include/directory_manager.h b/Libs/include/directory_manager.h new file mode 100644 index 0000000..567218d --- /dev/null +++ b/Libs/include/directory_manager.h @@ -0,0 +1,5 @@ +#include "models.h" + +#include + +std::string create_directory_process(Song, const char*); diff --git a/Libs/include/models.h b/Libs/include/models.h new file mode 100644 index 0000000..0ba7ed6 --- /dev/null +++ b/Libs/include/models.h @@ -0,0 +1,10 @@ + +struct Song +{ + int Id; + char *Title; + char *Artist; + char *Album; + char *Genre; + int Year; +}; diff --git a/Libs/src/directory_manager.cpp b/Libs/src/directory_manager.cpp new file mode 100644 index 0000000..85fa4a0 --- /dev/null +++ b/Libs/src/directory_manager.cpp @@ -0,0 +1,68 @@ +#include +#include +#include + +#include "directory_manager.h" + +namespace fs = std::filesystem; + +std::string create_directory_process(Song song, const char *root_path) +{ + auto curr_path = fs::path(root_path); + + if (fs::exists(curr_path)) { + std::cout<<"path exists"< -#include -#include - -namespace fs = std::filesystem; - -constexpr auto app_setting = "appsettings.Development.json"; - -struct Song -{ - int Id; - char *Title; - char *Artist; - char *Album; - char *Genre; - int Year; -}; - -void create_directory_process(Song); - -void create_directory_process(Song song) -{ - auto curr_path = fs::current_path(); - std::cout<<"current path "<