diff --git a/Directory.Build.props b/Directory.Build.props
index 5f46ae2..3a817b2 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -5,6 +5,7 @@
disable
disable
latest-minimum
+ true
en
diff --git a/WaveBox.Core/src/BaseClasses.cs b/WaveBox.Core/src/BaseClasses.cs
index 2e67a64..fd03290 100644
--- a/WaveBox.Core/src/BaseClasses.cs
+++ b/WaveBox.Core/src/BaseClasses.cs
@@ -197,7 +197,7 @@ public static string QueryText(this InsertType insertType) {
case InsertType.Replace:
return "REPLACE";
default:
- throw new ArgumentOutOfRangeException("InsertType");
+ throw new ArgumentOutOfRangeException(nameof(insertType));
}
}
}
diff --git a/WaveBox.Core/src/Extensions/IListExtensions.cs b/WaveBox.Core/src/Extensions/IListExtensions.cs
index 83dd0d9..37be730 100644
--- a/WaveBox.Core/src/Extensions/IListExtensions.cs
+++ b/WaveBox.Core/src/Extensions/IListExtensions.cs
@@ -65,7 +65,7 @@ public static string ToCSV(this IList list, bool quoted = false) {
}
}
- return buffer.Trim(new char[] {' ', ','});
+ return buffer.Trim(' ', ',');
}
}
}
diff --git a/WaveBox.Core/src/Logging/Log.cs b/WaveBox.Core/src/Logging/Log.cs
index 5e75dbe..3999f97 100644
--- a/WaveBox.Core/src/Logging/Log.cs
+++ b/WaveBox.Core/src/Logging/Log.cs
@@ -72,7 +72,9 @@ private Microsoft.Extensions.Logging.ILogger Logger {
private void Write(LogLevel level, object message, Exception exception) {
Microsoft.Extensions.Logging.ILogger current = Logger;
if (current != null) {
- current.Log(level, exception, "{Message}", message);
+ if (current.IsEnabled(level)) {
+ current.Log(level, exception, "{Message}", message);
+ }
} else {
// Host not built yet; write straight to the console so early startup isn't silent
Console.WriteLine(DateTime.Now.ToString("HH:mm:ss,fff") + " " + level + " " + category + " - " + message + (exception != null ? Environment.NewLine + exception : ""));
diff --git a/WaveBox.Core/src/Model/Folder.cs b/WaveBox.Core/src/Model/Folder.cs
index 228a2a7..6db92e2 100644
--- a/WaveBox.Core/src/Model/Folder.cs
+++ b/WaveBox.Core/src/Model/Folder.cs
@@ -54,7 +54,7 @@ public Folder ParentFolder() {
return Injection.Get().FolderForId((int)ParentFolderId);
}
- public void Scan() {
+ public static void Scan() {
// TO DO: scanning! yay!
}
diff --git a/WaveBox.Core/src/Model/Playlist.cs b/WaveBox.Core/src/Model/Playlist.cs
index 08ebc65..3bcc288 100644
--- a/WaveBox.Core/src/Model/Playlist.cs
+++ b/WaveBox.Core/src/Model/Playlist.cs
@@ -61,7 +61,7 @@ public string CalculateHash() {
foreach (PlaylistItem playlistItem in result) {
itemIds.Append(playlistItem.ItemId);
- itemIds.Append("|");
+ itemIds.Append('|');
}
} catch (Exception e) {
logger.Error(e);
@@ -152,9 +152,9 @@ public IList ListOfMediaItems() {
conn = Injection.Get().GetSqliteConnection();
var result = conn.DeferredQuery("SELECT * FROM PlaylistItem WHERE PlaylistId = ? ORDER BY ItemPosition", PlaylistId);
- IList items = new List();
+ List items = new List();
foreach (PlaylistItem playlistItem in result) {
- if (!ReferenceEquals(playlistItem.ItemId, null)) {
+ if (playlistItem.ItemId != null) {
IMediaItem item = Injection.Get().MediaItemForId((int)playlistItem.ItemId);
if (!ReferenceEquals(item, null)) {
items.Add(item);
@@ -177,7 +177,7 @@ public void RemoveMediaItem(IMediaItem item) {
}
public void RemoveMediaItems(IList items) {
- IList indexes = new List();
+ List indexes = new List();
if (PlaylistId == 0 || items == null) {
return;
}
@@ -356,7 +356,7 @@ public void AddMediaItem(int itemId, bool updateDatabase = true) {
}
public void AddMediaItems(IList itemIds) {
- IList items = new List();
+ List items = new List();
foreach (int itemId in itemIds) {
logger.IfInfo("Checking item id " + itemId);
IMediaItem item = Injection.Get().MediaItemForId(itemId);
@@ -376,7 +376,7 @@ public void InsertMediaItem(int itemId, int index) {
public void InsertMediaItem(IMediaItem item, int index) {
// make sure the input is within bounds and is not null
- if (ReferenceEquals(item, null) || index > PlaylistCount || index < 0 || ReferenceEquals(PlaylistId, null)) {
+ if (ReferenceEquals(item, null) || index > PlaylistCount || index < 0 || PlaylistId == null) {
return;
}
@@ -384,7 +384,7 @@ public void InsertMediaItem(IMediaItem item, int index) {
try {
int? id = Injection.Get().GenerateItemId(ItemType.PlaylistItem);
- if (!ReferenceEquals(id, null)) {
+ if (id != null) {
// to do - better way of knowing whether or not a query has been successfully completed.
conn = Injection.Get().GetSqliteConnection();
conn.BeginTransaction();
@@ -446,13 +446,13 @@ public void ClearPlaylist() {
}
public void CreatePlaylist() {
- if (ReferenceEquals(PlaylistId, null)) {
+ if (PlaylistId == null) {
UpdateDatabase();
}
}
public void DeletePlaylist() {
- if (ReferenceEquals(PlaylistId, null)) {
+ if (PlaylistId == null) {
return;
}
diff --git a/WaveBox.Core/src/Model/User.cs b/WaveBox.Core/src/Model/User.cs
index f8fac5f..349f78b 100644
--- a/WaveBox.Core/src/Model/User.cs
+++ b/WaveBox.Core/src/Model/User.cs
@@ -60,7 +60,7 @@ public bool HasPermission(Role role) {
return this.Role >= role ? true : false;
}
- public bool UpdateSession(string sessionId) {
+ public static bool UpdateSession(string sessionId) {
// Update user's session based on its session ID
Session s = Injection.Get().SessionForSessionId(sessionId);
@@ -224,7 +224,7 @@ public bool CreateSession(string password, string clientName) {
}
public bool Delete() {
- if (ReferenceEquals(UserId, null)) {
+ if (UserId == null) {
return true;
}
diff --git a/WaveBox.Core/src/Repository/AlbumArtistRepository.cs b/WaveBox.Core/src/Repository/AlbumArtistRepository.cs
index c3a1d93..07c2797 100644
--- a/WaveBox.Core/src/Repository/AlbumArtistRepository.cs
+++ b/WaveBox.Core/src/Repository/AlbumArtistRepository.cs
@@ -14,15 +14,9 @@ public class AlbumArtistRepository : IAlbumArtistRepository {
private readonly ISongRepository songRepository;
public AlbumArtistRepository(IDatabase database, IItemRepository itemRepository, ISongRepository songRepository) {
- if (database == null) {
- throw new ArgumentNullException("database");
- }
- if (itemRepository == null) {
- throw new ArgumentNullException("itemRepository");
- }
- if (songRepository == null) {
- throw new ArgumentNullException("songRepository");
- }
+ ArgumentNullException.ThrowIfNull(database);
+ ArgumentNullException.ThrowIfNull(itemRepository);
+ ArgumentNullException.ThrowIfNull(songRepository);
this.database = database;
this.itemRepository = itemRepository;
@@ -156,11 +150,11 @@ public IList SinglesForAlbumArtistId(int albumArtistId) {
try {
conn = database.GetSqliteConnection();
- IList songs;
+ List songs;
songs = conn.Query("SELECT ItemId FROM Song WHERE AlbumArtistId = ? AND AlbumId IS NULL", albumArtistId);
if (songs.Count > 0) {
- IList songIds = new List();
+ List songIds = new List();
foreach (Song song in songs) {
songIds.Add((int)song.ItemId);
}
diff --git a/WaveBox.Core/src/Repository/AlbumRepository.cs b/WaveBox.Core/src/Repository/AlbumRepository.cs
index 9b84985..f3b3e11 100644
--- a/WaveBox.Core/src/Repository/AlbumRepository.cs
+++ b/WaveBox.Core/src/Repository/AlbumRepository.cs
@@ -14,12 +14,8 @@ public class AlbumRepository : IAlbumRepository {
private readonly IItemRepository itemRepository;
public AlbumRepository(IDatabase database, IItemRepository itemRepository) {
- if (database == null) {
- throw new ArgumentNullException("database");
- }
- if (itemRepository == null) {
- throw new ArgumentNullException("itemRepository");
- }
+ ArgumentNullException.ThrowIfNull(database);
+ ArgumentNullException.ThrowIfNull(itemRepository);
this.database = database;
this.itemRepository = itemRepository;
diff --git a/WaveBox.Core/src/Repository/ArtRepository.cs b/WaveBox.Core/src/Repository/ArtRepository.cs
index 9cbb8bc..a94356e 100644
--- a/WaveBox.Core/src/Repository/ArtRepository.cs
+++ b/WaveBox.Core/src/Repository/ArtRepository.cs
@@ -9,9 +9,7 @@ public class ArtRepository : IArtRepository {
private readonly IDatabase database;
public ArtRepository(IDatabase database) {
- if (database == null) {
- throw new ArgumentNullException("database");
- }
+ ArgumentNullException.ThrowIfNull(database);
this.database = database;
}
diff --git a/WaveBox.Core/src/Repository/ArtistRepository.cs b/WaveBox.Core/src/Repository/ArtistRepository.cs
index 1481986..d4efe45 100644
--- a/WaveBox.Core/src/Repository/ArtistRepository.cs
+++ b/WaveBox.Core/src/Repository/ArtistRepository.cs
@@ -13,12 +13,8 @@ public class ArtistRepository : IArtistRepository {
private readonly IItemRepository itemRepository;
public ArtistRepository(IDatabase database, IItemRepository itemRepository) {
- if (database == null) {
- throw new ArgumentNullException("database");
- }
- if (itemRepository == null) {
- throw new ArgumentNullException("itemRepository");
- }
+ ArgumentNullException.ThrowIfNull(database);
+ ArgumentNullException.ThrowIfNull(itemRepository);
this.database = database;
this.itemRepository = itemRepository;
diff --git a/WaveBox.Core/src/Repository/FavoriteRepository.cs b/WaveBox.Core/src/Repository/FavoriteRepository.cs
index 5ae74e9..f2560ba 100644
--- a/WaveBox.Core/src/Repository/FavoriteRepository.cs
+++ b/WaveBox.Core/src/Repository/FavoriteRepository.cs
@@ -19,36 +19,16 @@ public class FavoriteRepository : IFavoriteRepository {
private readonly IItemRepository itemRepository;
public FavoriteRepository(IDatabase database, IAlbumArtistRepository albumArtistRepository, IAlbumRepository albumRepository, IArtistRepository artistRepository, IFolderRepository folderRepository, IGenreRepository genreRepository, IPlaylistRepository playlistRepository, ISongRepository songRepository, IVideoRepository videoRepository, IItemRepository itemRepository) {
- if (database == null) {
- throw new ArgumentNullException("database");
- }
- if (albumRepository == null) {
- throw new ArgumentNullException("albumRepository");
- }
- if (albumArtistRepository == null) {
- throw new ArgumentNullException("albumArtistRepository");
- }
- if (artistRepository == null) {
- throw new ArgumentNullException("artistRepository");
- }
- if (folderRepository == null) {
- throw new ArgumentNullException("folderRepository");
- }
- if (genreRepository == null) {
- throw new ArgumentNullException("genreRepository");
- }
- if (playlistRepository == null) {
- throw new ArgumentNullException("playlistRepository");
- }
- if (songRepository == null) {
- throw new ArgumentNullException("songRepository");
- }
- if (videoRepository == null) {
- throw new ArgumentNullException("videoRepository");
- }
- if (itemRepository == null) {
- throw new ArgumentNullException("itemRepository");
- }
+ ArgumentNullException.ThrowIfNull(database);
+ ArgumentNullException.ThrowIfNull(albumRepository);
+ ArgumentNullException.ThrowIfNull(albumArtistRepository);
+ ArgumentNullException.ThrowIfNull(artistRepository);
+ ArgumentNullException.ThrowIfNull(folderRepository);
+ ArgumentNullException.ThrowIfNull(genreRepository);
+ ArgumentNullException.ThrowIfNull(playlistRepository);
+ ArgumentNullException.ThrowIfNull(songRepository);
+ ArgumentNullException.ThrowIfNull(videoRepository);
+ ArgumentNullException.ThrowIfNull(itemRepository);
this.database = database;
this.albumArtistRepository = albumArtistRepository;
@@ -94,9 +74,10 @@ public IList FavoritesForUserId(int userId) {
public IList FavoritesForArtistId(int? artistId, int? userId) {
if (artistId == null) {
- throw new ArgumentNullException("artistId");
- } else if (userId == null) {
- throw new ArgumentNullException("userId");
+ throw new ArgumentNullException(nameof(artistId));
+ }
+ if (userId == null) {
+ throw new ArgumentNullException(nameof(userId));
}
return this.database.GetList("SELECT * FROM Favorite LEFT JOIN Song ON Song.ItemId = Favorite.FavoriteItemId WHERE Song.ArtistId = ? AND Favorite.FavoriteUserId = ?", artistId, userId);
@@ -104,9 +85,10 @@ public IList FavoritesForArtistId(int? artistId, int? userId) {
public IList FavoritesForAlbumArtistId(int? albumArtistId, int? userId) {
if (albumArtistId == null) {
- throw new ArgumentNullException("artistId");
- } else if (userId == null) {
- throw new ArgumentNullException("userId");
+ throw new ArgumentNullException(nameof(albumArtistId));
+ }
+ if (userId == null) {
+ throw new ArgumentNullException(nameof(userId));
}
return this.database.GetList("SELECT * FROM Favorite LEFT JOIN Song ON Song.ItemId = Favorite.FavoriteItemId WHERE Song.AlbumArtistId = ? AND Favorite.FavoriteUserId = ?", albumArtistId, userId);
@@ -117,7 +99,7 @@ public IList ItemsForFavorites(IList favorites) {
return null;
}
- IList items = new List();
+ List items = new List();
foreach (Favorite fav in favorites) {
switch (fav.FavoriteItemType) {
case ItemType.AlbumArtist:
diff --git a/WaveBox.Core/src/Repository/FolderRepository.cs b/WaveBox.Core/src/Repository/FolderRepository.cs
index d43629d..82b0e9a 100644
--- a/WaveBox.Core/src/Repository/FolderRepository.cs
+++ b/WaveBox.Core/src/Repository/FolderRepository.cs
@@ -15,18 +15,10 @@ public class FolderRepository : IFolderRepository {
private readonly IVideoRepository videoRepository;
public FolderRepository(IDatabase database, IServerSettings serverSettings, ISongRepository songRepository, IVideoRepository videoRepository) {
- if (database == null) {
- throw new ArgumentNullException("database");
- }
- if (serverSettings == null) {
- throw new ArgumentNullException("serverSettings");
- }
- if (songRepository == null) {
- throw new ArgumentNullException("songRepository");
- }
- if (videoRepository == null) {
- throw new ArgumentNullException("videoRepository");
- }
+ ArgumentNullException.ThrowIfNull(database);
+ ArgumentNullException.ThrowIfNull(serverSettings);
+ ArgumentNullException.ThrowIfNull(songRepository);
+ ArgumentNullException.ThrowIfNull(videoRepository);
this.database = database;
this.serverSettings = serverSettings;
diff --git a/WaveBox.Core/src/Repository/GenreRepository.cs b/WaveBox.Core/src/Repository/GenreRepository.cs
index 407c305..a73cb2b 100644
--- a/WaveBox.Core/src/Repository/GenreRepository.cs
+++ b/WaveBox.Core/src/Repository/GenreRepository.cs
@@ -12,9 +12,7 @@ public class GenreRepository : IGenreRepository {
private readonly IDatabase database;
public GenreRepository(IDatabase database) {
- if (database == null) {
- throw new ArgumentNullException("database");
- }
+ ArgumentNullException.ThrowIfNull(database);
this.database = database;
}
diff --git a/WaveBox.Core/src/Repository/ItemRepository.cs b/WaveBox.Core/src/Repository/ItemRepository.cs
index f14af8a..bcaad36 100644
--- a/WaveBox.Core/src/Repository/ItemRepository.cs
+++ b/WaveBox.Core/src/Repository/ItemRepository.cs
@@ -15,9 +15,7 @@ public class ItemRepository : IItemRepository {
private readonly IDatabase database;
public ItemRepository(IDatabase database) {
- if (database == null) {
- throw new ArgumentNullException("database");
- }
+ ArgumentNullException.ThrowIfNull(database);
this.database = database;
}
diff --git a/WaveBox.Core/src/Repository/MediaItemRepository.cs b/WaveBox.Core/src/Repository/MediaItemRepository.cs
index 908f38f..08a9c77 100644
--- a/WaveBox.Core/src/Repository/MediaItemRepository.cs
+++ b/WaveBox.Core/src/Repository/MediaItemRepository.cs
@@ -7,15 +7,9 @@ public class MediaItemRepository : IMediaItemRepository {
private readonly IVideoRepository videoRepository;
public MediaItemRepository(IItemRepository itemRepository, ISongRepository songRepository, IVideoRepository videoRepository) {
- if (itemRepository == null) {
- throw new ArgumentNullException("itemRepository");
- }
- if (songRepository == null) {
- throw new ArgumentNullException("songRepository");
- }
- if (videoRepository == null) {
- throw new ArgumentNullException("videoRepository");
- }
+ ArgumentNullException.ThrowIfNull(itemRepository);
+ ArgumentNullException.ThrowIfNull(songRepository);
+ ArgumentNullException.ThrowIfNull(videoRepository);
this.itemRepository = itemRepository;
this.songRepository = songRepository;
diff --git a/WaveBox.Core/src/Repository/PlaylistRepository.cs b/WaveBox.Core/src/Repository/PlaylistRepository.cs
index d9c6106..a54a38c 100644
--- a/WaveBox.Core/src/Repository/PlaylistRepository.cs
+++ b/WaveBox.Core/src/Repository/PlaylistRepository.cs
@@ -10,9 +10,7 @@ public class PlaylistRepository : IPlaylistRepository {
private readonly IDatabase database;
public PlaylistRepository(IDatabase database) {
- if (database == null) {
- throw new ArgumentNullException("database");
- }
+ ArgumentNullException.ThrowIfNull(database);
this.database = database;
}
diff --git a/WaveBox.Core/src/Repository/SessionRepository.cs b/WaveBox.Core/src/Repository/SessionRepository.cs
index b024ffb..f039e41 100644
--- a/WaveBox.Core/src/Repository/SessionRepository.cs
+++ b/WaveBox.Core/src/Repository/SessionRepository.cs
@@ -11,12 +11,10 @@ public class SessionRepository : ISessionRepository {
private readonly IDatabase database;
- private IDictionary Sessions { get; set; }
+ private Dictionary Sessions { get; set; }
public SessionRepository(IDatabase database) {
- if (database == null) {
- throw new ArgumentNullException("database");
- }
+ ArgumentNullException.ThrowIfNull(database);
this.database = database;
@@ -42,8 +40,8 @@ public Session SessionForRowId(int rowId) {
public Session SessionForSessionId(string sessionId) {
lock (this.Sessions) {
- if (this.Sessions.ContainsKey(sessionId)) {
- return this.Sessions[sessionId];
+ if (this.Sessions.TryGetValue(sessionId, out Session session)) {
+ return session;
}
return null;
@@ -147,8 +145,8 @@ public bool DeleteSessionsForUserId(int userId) {
}
lock (this.Sessions) {
- if (this.Sessions.ContainsKey(sessionId)) {
- return this.Sessions[sessionId].UserId;
+ if (this.Sessions.TryGetValue(sessionId, out Session session)) {
+ return session.UserId;
}
return null;
diff --git a/WaveBox.Core/src/Repository/SongRepository.cs b/WaveBox.Core/src/Repository/SongRepository.cs
index fead699..e0352f1 100644
--- a/WaveBox.Core/src/Repository/SongRepository.cs
+++ b/WaveBox.Core/src/Repository/SongRepository.cs
@@ -13,9 +13,7 @@ public class SongRepository : ISongRepository {
private readonly IDatabase database;
public SongRepository(IDatabase database) {
- if (database == null) {
- throw new ArgumentNullException("database");
- }
+ ArgumentNullException.ThrowIfNull(database);
this.database = database;
}
diff --git a/WaveBox.Core/src/Repository/StatRepository.cs b/WaveBox.Core/src/Repository/StatRepository.cs
index 5f0f5f4..956be46 100644
--- a/WaveBox.Core/src/Repository/StatRepository.cs
+++ b/WaveBox.Core/src/Repository/StatRepository.cs
@@ -9,9 +9,7 @@ public class StatRepository : IStatRepository {
private readonly IDatabase database;
public StatRepository(IDatabase database) {
- if (database == null) {
- throw new ArgumentNullException("database");
- }
+ ArgumentNullException.ThrowIfNull(database);
this.database = database;
}
diff --git a/WaveBox.Core/src/Repository/UserRepository.cs b/WaveBox.Core/src/Repository/UserRepository.cs
index a5777d6..1cba38a 100644
--- a/WaveBox.Core/src/Repository/UserRepository.cs
+++ b/WaveBox.Core/src/Repository/UserRepository.cs
@@ -15,12 +15,8 @@ public class UserRepository : IUserRepository {
private IDictionary Users { get; set; }
public UserRepository(IDatabase database, IItemRepository itemRepository) {
- if (database == null) {
- throw new ArgumentNullException("database");
- }
- if (itemRepository == null) {
- throw new ArgumentNullException("itemRepository");
- }
+ ArgumentNullException.ThrowIfNull(database);
+ ArgumentNullException.ThrowIfNull(itemRepository);
this.database = database;
this.itemRepository = itemRepository;
@@ -48,8 +44,8 @@ private bool ReloadUsers() {
public User UserForId(int userId) {
lock (this.Users) {
- if (this.Users.ContainsKey(userId)) {
- return this.Users[userId];
+ if (this.Users.TryGetValue(userId, out User user)) {
+ return user;
}
return new User() { UserId = userId };
@@ -101,7 +97,7 @@ public User CreateUser(string userName, string password, Role role, long? delete
public User CreateTestUser(long? durationSeconds) {
// Create a new user with random username and password, that lasts for the specified duration
- if (ReferenceEquals(durationSeconds, null)) {
+ if (durationSeconds == null) {
// If no duration specified, use 24 hours
durationSeconds = 60 * 60 * 24;
}
diff --git a/WaveBox.Core/src/Repository/VideoRepository.cs b/WaveBox.Core/src/Repository/VideoRepository.cs
index 3947464..fbe03cb 100644
--- a/WaveBox.Core/src/Repository/VideoRepository.cs
+++ b/WaveBox.Core/src/Repository/VideoRepository.cs
@@ -11,9 +11,7 @@ public class VideoRepository : IVideoRepository {
private readonly IDatabase database;
public VideoRepository(IDatabase database) {
- if (database == null) {
- throw new ArgumentNullException("database");
- }
+ ArgumentNullException.ThrowIfNull(database);
this.database = database;
}
diff --git a/WaveBox.Core/src/SQLiteNet.cs b/WaveBox.Core/src/SQLiteNet.cs
index fa642a1..1fca727 100644
--- a/WaveBox.Core/src/SQLiteNet.cs
+++ b/WaveBox.Core/src/SQLiteNet.cs
@@ -414,7 +414,7 @@ private struct IndexInfo {
/// Executes a "drop table" on the database. This is non-recoverable.
///
public int DropTable() {
- var map = GetMapping(typeof (T), TableMappingType.Write);
+ var map = GetMapping(TableMappingType.Write);
var query = string.Format("drop table if exists \"{0}\"", map.TableName);
@@ -778,7 +778,7 @@ public IEnumerable