diff --git a/Controllers/Managers/DirectoryManager.cs b/Controllers/Managers/DirectoryManager.cs
index 55880d2..e685166 100644
--- a/Controllers/Managers/DirectoryManager.cs
+++ b/Controllers/Managers/DirectoryManager.cs
@@ -1,6 +1,7 @@
using System;
using System.IO;
using System.Linq;
+using System.Runtime.InteropServices;
using Microsoft.Extensions.Configuration;
@@ -92,6 +93,8 @@ namespace Icarus.Controllers.Managers
_logger.Error(msg, "An error occurred");
}
}
+ [DllImport("libicarus.so")]
+ public static extern void create_directory(SongManager.Sng song);
public void DeleteEmptyDirectories()
{
try
diff --git a/Controllers/Managers/SongManager.cs b/Controllers/Managers/SongManager.cs
index 0212052..6b8f78c 100644
--- a/Controllers/Managers/SongManager.cs
+++ b/Controllers/Managers/SongManager.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.IO;
+using System.Runtime.InteropServices;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
@@ -364,7 +365,12 @@ namespace Icarus.Controllers.Managers
DirectoryManager dirMgr = new DirectoryManager(_config, song);
dirMgr.CreateDirectory();
+ var sng = ConvertSongToSng(song);
+
+ DirectoryManager.create_directory(sng);
+
System.IO.File.Delete(fileTempPath);
+ Environment.Exit(1);
var filePath = dirMgr.SongDirectory;
var songFilename = songFile.FileName;
@@ -501,7 +507,19 @@ namespace Icarus.Controllers.Managers
return song;
}
-
+ private Sng ConvertSongToSng(Song song)
+ {
+ return new Sng
+ {
+ Id = song.Id,
+ Title = song.Title,
+ Artist = song.Artist,
+ Album = song.AlbumTitle,
+ Genre = song.Genre,
+ Year = song.Year.Value
+ };
+ }
+
private Song RetrieveMetaData(string filePath)
{
Song newSong = new Song
@@ -1219,5 +1237,19 @@ namespace Icarus.Controllers.Managers
}
}
#endregion
+
+
+ #region Structs
+ [StructLayout(LayoutKind.Sequential)]
+ public struct Sng
+ {
+ public int Id;
+ public string Title;
+ public string Artist;
+ public string Album;
+ public string Genre;
+ public int Year;
+ };
+ #endregion
}
}
diff --git a/Controllers/Managers/TokenManager.cs b/Controllers/Managers/TokenManager.cs
index 1f48d3b..0809ad0 100644
--- a/Controllers/Managers/TokenManager.cs
+++ b/Controllers/Managers/TokenManager.cs
@@ -90,8 +90,6 @@ namespace Icarus.Controllers.Managers
_audience = _config["Auth0:ApiIdentifier"];
_grantType = "client_credentials";
_url = $"https://{_config["Auth0:Domain"]}";
-
- PrintCredentials();
}
#region Testing Methods
diff --git a/Icarus.csproj b/Icarus.csproj
index cbdd51d..eb42b4f 100644
--- a/Icarus.csproj
+++ b/Icarus.csproj
@@ -13,7 +13,7 @@
-
+
runtime; build; native; contentfiles; analyzers
all
diff --git a/Libs/CMakeLists.txt b/Libs/CMakeLists.txt
new file mode 100644
index 0000000..4fa2274
--- /dev/null
+++ b/Libs/CMakeLists.txt
@@ -0,0 +1,10 @@
+cmake_minimum_required(VERSION 3.10)
+
+project(icarus)
+
+set(CMAKE_CXX_STANDARD 17)
+set(SOURCES
+ src/icarus.cpp
+)
+
+add_library(icarus SHARED ${SOURCES})
diff --git a/Libs/src/icarus.cpp b/Libs/src/icarus.cpp
new file mode 100644
index 0000000..8b5a596
--- /dev/null
+++ b/Libs/src/icarus.cpp
@@ -0,0 +1,50 @@
+#include
+#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 "<