Net8 #89
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
namespace Icarus.Constants;
|
namespace Icarus.Constants;
|
||||||
|
|
||||||
@@ -7,4 +8,6 @@ public class DirectoryPaths
|
|||||||
{
|
{
|
||||||
public static string CoverArtPath =>
|
public static string CoverArtPath =>
|
||||||
Directory.GetCurrentDirectory() + "/Images/Stock/CoverArt.png";
|
Directory.GetCurrentDirectory() + "/Images/Stock/CoverArt.png";
|
||||||
|
public static string FILENAME_CHARACTERS = "ABCDEF0123456789";
|
||||||
|
public static int FILENAME_LENGTH = 25;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,38 +25,6 @@ public class SongContext : DbContext
|
|||||||
modelBuilder.Entity<Song>()
|
modelBuilder.Entity<Song>()
|
||||||
.ToTable("Song");
|
.ToTable("Song");
|
||||||
|
|
||||||
/**
|
|
||||||
modelBuilder.Entity<Song>()
|
|
||||||
.HasOne(s => s.Album)
|
|
||||||
.WithMany(al => al.Songs)
|
|
||||||
.HasForeignKey(s => s.AlbumID)
|
|
||||||
.OnDelete(DeleteBehavior.SetNull);
|
|
||||||
|
|
||||||
modelBuilder.Entity<Song>()
|
|
||||||
.HasOne(sa => sa.SongArtist)
|
|
||||||
.WithMany(ar => ar.Songs)
|
|
||||||
.HasForeignKey(s => s.ArtistID)
|
|
||||||
.OnDelete(DeleteBehavior.SetNull);
|
|
||||||
|
|
||||||
modelBuilder.Entity<Song>()
|
|
||||||
.HasOne(s => s.SongGenre)
|
|
||||||
.WithMany(gnr => gnr.Songs)
|
|
||||||
.HasForeignKey(s => s.GenreID)
|
|
||||||
.OnDelete(DeleteBehavior.SetNull);
|
|
||||||
|
|
||||||
modelBuilder.Entity<Song>()
|
|
||||||
.HasOne(s => s.SongYear)
|
|
||||||
.WithMany(yr => yr.Songs)
|
|
||||||
.HasForeignKey(s => s.YearID)
|
|
||||||
.OnDelete(DeleteBehavior.SetNull);
|
|
||||||
|
|
||||||
modelBuilder.Entity<Song>()
|
|
||||||
.HasOne(s => s.SongCoverArt)
|
|
||||||
.WithMany(ca => ca.Songs)
|
|
||||||
.HasForeignKey(s => s.CoverArtID)
|
|
||||||
.OnDelete(DeleteBehavior.SetNull);
|
|
||||||
*/
|
|
||||||
|
|
||||||
modelBuilder.Entity<Song>()
|
modelBuilder.Entity<Song>()
|
||||||
.Property(s => s.Year)
|
.Property(s => s.Year)
|
||||||
.IsRequired(false);
|
.IsRequired(false);
|
||||||
|
|||||||
@@ -2,11 +2,6 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
// using MySql.Data.EntityFrameworkCore;
|
|
||||||
// using MySql.Data;
|
|
||||||
// using MySql.Data.EntityFrameworkCore.Extensions;
|
|
||||||
// using MySql.Data.Entity;
|
|
||||||
// using MySql.Data.MySqlClient;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
@@ -20,8 +18,4 @@ public class Album
|
|||||||
public int SongCount { get; set; }
|
public int SongCount { get; set; }
|
||||||
[JsonProperty("year")]
|
[JsonProperty("year")]
|
||||||
public int Year { get; set; }
|
public int Year { get; set; }
|
||||||
|
|
||||||
[JsonIgnore]
|
|
||||||
[NotMapped]
|
|
||||||
public List<Song> Songs { get; set; }
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
@@ -16,7 +14,4 @@ public class Artist
|
|||||||
[JsonProperty("song_count")]
|
[JsonProperty("song_count")]
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public int SongCount { get; set; }
|
public int SongCount { get; set; }
|
||||||
[JsonIgnore]
|
|
||||||
[NotMapped]
|
|
||||||
public List<Song> Songs { get; set; }
|
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-3
@@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Reflection.Metadata;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
@@ -23,12 +24,12 @@ public class CoverArt
|
|||||||
#region Methods
|
#region Methods
|
||||||
public string GenerateFilename(int flag)
|
public string GenerateFilename(int flag)
|
||||||
{
|
{
|
||||||
const int length = 25;
|
int length = Constants.DirectoryPaths.FILENAME_LENGTH;
|
||||||
const string chars = "ABCDEF0123456789";
|
string chars = Constants.DirectoryPaths.FILENAME_CHARACTERS;
|
||||||
var random = new Random();
|
var random = new Random();
|
||||||
var filename = new string(Enumerable.Repeat(chars, length).Select(s =>
|
var filename = new string(Enumerable.Repeat(chars, length).Select(s =>
|
||||||
s[random.Next(s.Length)]).ToArray());
|
s[random.Next(s.Length)]).ToArray());
|
||||||
var extension = Icarus.Constants.FileExtensions.JPG_EXTENSION;
|
var extension = Constants.FileExtensions.JPG_EXTENSION;
|
||||||
|
|
||||||
return (flag == 0) ? filename : $"{filename}{extension}";
|
return (flag == 0) ? filename : $"{filename}{extension}";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
@@ -16,7 +14,4 @@ public class Genre
|
|||||||
[JsonProperty("song_count")]
|
[JsonProperty("song_count")]
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public int SongCount { get; set; }
|
public int SongCount { get; set; }
|
||||||
[JsonIgnore]
|
|
||||||
[NotMapped]
|
|
||||||
public List<Song> Songs { get; set; }
|
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -73,8 +73,8 @@ public class Song
|
|||||||
|
|
||||||
public string GenerateFilename(int flag = 0)
|
public string GenerateFilename(int flag = 0)
|
||||||
{
|
{
|
||||||
const int length = 25;
|
int length = Constants.DirectoryPaths.FILENAME_LENGTH;
|
||||||
const string chars = "ABCDEF0123456789";
|
string chars = Constants.DirectoryPaths.FILENAME_CHARACTERS;
|
||||||
var random = new Random();
|
var random = new Random();
|
||||||
var filename = new string(Enumerable.Repeat(chars, length).Select(s =>
|
var filename = new string(Enumerable.Repeat(chars, length).Select(s =>
|
||||||
s[random.Next(s.Length)]).ToArray());
|
s[random.Next(s.Length)]).ToArray());
|
||||||
@@ -84,8 +84,8 @@ public class Song
|
|||||||
}
|
}
|
||||||
public async Task<string> GenerateFilenameAsync(int flag = 0)
|
public async Task<string> GenerateFilenameAsync(int flag = 0)
|
||||||
{
|
{
|
||||||
const int length = 25;
|
int length = Constants.DirectoryPaths.FILENAME_LENGTH;
|
||||||
const string chars = "ABCDEF0123456789";
|
string chars = Constants.DirectoryPaths.FILENAME_CHARACTERS;
|
||||||
var extension = Icarus.Constants.FileExtensions.WAV_EXTENSION;
|
var extension = Icarus.Constants.FileExtensions.WAV_EXTENSION;
|
||||||
var random = new Random();
|
var random = new Random();
|
||||||
var filename = await Task.Run(() =>
|
var filename = await Task.Run(() =>
|
||||||
|
|||||||
Reference in New Issue
Block a user