#93: Add flac support (#101)

* Added script shell to convert wav files to flac

* #93: Minor change to script to convert wav files to flac

* #93: Added more code to for the music file conversion

* #93: Script to convert wav files to flac files is done

* #93: Clean up

* #93: Starting work to implement flac support

* #93: Minor update to conversion script

* #93: Added dotnet manifest file

Includes the dotnet-ef tool

* #93: Updated README and migration script

* #93: Created skeleton for saving flac files

* #93: Making some changes to how the file extension is determined

* #93: Updated gitignore

* #93: Another gitignore update

* #93: Making some changes to the process of saving a song to the filesystem

* #93: Adding SQL script to drop and create database

* #93: Saving uploaded song to a temporary location for processing

* #93: Initializing some properties in the song model earlier

* #93: Uploading wav songs works. Moving on to flac support

* #93: Added more code to save flac files

* #93: Updated some code that affects filename generation for audio files

* #93: Song Model changes and support for different file types

* #93: Working on build errors, removed DotnetZip dependency, and added new Ionic.Zlip.Netstandard dependency

* #93: Reduce build errors

* #93: Removed ID3 dependency

* #93: Cleanup
This commit was merged in pull request #101.
This commit is contained in:
KD
2024-07-27 13:19:12 -04:00
committed by GitHub
parent 4b3fa78336
commit 8900afdfd2
50 changed files with 787 additions and 493 deletions
+4 -3
View File
@@ -6,7 +6,7 @@ namespace Icarus.Database.Contexts;
public class AlbumContext : DbContext
{
public DbSet<Album> Albums { get; set; }
public DbSet<Album>? Albums { get; set; }
public AlbumContext(DbContextOptions<AlbumContext> options) : base(options) { }
public AlbumContext(string connString) : base(new DbContextOptionsBuilder<AlbumContext>()
@@ -22,11 +22,12 @@ public class AlbumContext : DbContext
public Album RetrieveRecord(Album album)
{
return Albums.FirstOrDefault(alb => alb.Id == album.Id);
var albm = Albums!.FirstOrDefault(alb => alb.Id == album.Id);
return albm!;
}
public bool DoesRecordExist(Album album)
{
return Albums.FirstOrDefault(alb => alb.Id == album.Id) != null ? true : false;
return Albums!.FirstOrDefault(alb => alb.Id == album.Id) != null ? true : false;
}
}
+1 -1
View File
@@ -23,7 +23,7 @@ public class ArtistContext : DbContext
public Artist RetrieveRecord(Artist artist)
{
return Artists.FirstOrDefault(arst => arst.Id == artist.Id);
return Artists.FirstOrDefault(arst => arst.Id == artist.Id)!;
}
+5 -3
View File
@@ -6,7 +6,9 @@ namespace Icarus.Database.Contexts;
public class CoverArtContext : DbContext
{
public DbSet<CoverArt> CoverArtImages { get; set; }
#region Properties
public DbSet<CoverArt>? CoverArtImages { get; set; }
#endregion
public CoverArtContext(DbContextOptions<CoverArtContext> options) : base(options) { }
public CoverArtContext(string connString) : base(new DbContextOptionsBuilder<CoverArtContext>()
@@ -22,11 +24,11 @@ public class CoverArtContext : DbContext
public CoverArt RetrieveRecord(CoverArt cover)
{
return CoverArtImages.FirstOrDefault(cov => cov.Id == cover.Id);
return CoverArtImages!.FirstOrDefault(cov => cov.Id == cover.Id)!;
}
public bool DoesRecordExist(CoverArt cover)
{
return CoverArtImages.FirstOrDefault(cov => cov.Id == cover.Id) != null ? true : false;
return CoverArtImages!.FirstOrDefault(cov => cov.Id == cover.Id) != null ? true : false;
}
}
+7 -3
View File
@@ -6,7 +6,10 @@ namespace Icarus.Database.Contexts;
public class GenreContext : DbContext
{
public DbSet<Genre> Genres { get; set; }
#region Properties
public DbSet<Genre>? Genres { get; set; }
#endregion
public GenreContext(DbContextOptions<GenreContext> options) : base(options) { }
public GenreContext(string connString) : base(new DbContextOptionsBuilder<GenreContext>()
.UseMySQL(connString).Options)
@@ -22,11 +25,12 @@ public class GenreContext : DbContext
public Genre RetrieveRecord(Genre genre)
{
return Genres.FirstOrDefault(gnr => gnr.Id == genre.Id);
var gnre = Genres!.FirstOrDefault(gnr => gnr.Id == genre.Id);
return gnre!;
}
public bool DoesRecordExist(Genre genre)
{
return Genres.FirstOrDefault(gnr => gnr.Id == genre.Id) != null ? true : false;
return Genres!.FirstOrDefault(gnr => gnr.Id == genre.Id) != null ? true : false;
}
}
+4 -3
View File
@@ -6,7 +6,7 @@ namespace Icarus.Database.Contexts;
public class SongContext : DbContext
{
public DbSet<Song> Songs { get; set; }
public DbSet<Song>? Songs { get; set; }
public SongContext(string connString) : base(new DbContextOptionsBuilder<SongContext>()
.UseMySQL(connString).Options)
@@ -41,12 +41,13 @@ public class SongContext : DbContext
public Song RetrieveRecord(Song song)
{
return Songs.FirstOrDefault(sng => sng.Id == song.Id);
var sng = Songs!.FirstOrDefault(sng => sng.Id == song.Id);
return sng!;
}
public bool DoesRecordExist(Song song)
{
return Songs.FirstOrDefault(sng => sng.Id == song.Id) != null ? true : false;
return Songs!.FirstOrDefault(sng => sng.Id == song.Id) != null ? true : false;
}
}
+1 -1
View File
@@ -32,7 +32,7 @@ public class UserContext : DbContext
public User RetrieveRecord(User user)
{
return Users.FirstOrDefault(usr => usr.Id == user.Id);
return Users.FirstOrDefault(usr => usr.Id == user.Id)!;
}
public bool DoesRecordExist(User user)