public static void DeactivateLMP(LocalMediaPack lmp) // Deactivates a given LMP object { if (lmp == null) { throw new ArgumentNullException(nameof(lmp), $"Cannot deactivate LMP, since the parameter is null."); } if (StoredLocalMediaPacks.Contains(lmp) == false && ActiveLocalMediaPacks.Contains(lmp) == true) { ActiveLocalMediaPacks.Remove(lmp); StoredLocalMediaPacks.Add(lmp); foreach (var path in lmp.GetAllFilePaths()) { TracklistContext.RemoveMusicFile(path.Key); PlayzoneContext.RemoveMusicFileLocal(path.Key); // TODO: review } } }
private static void LoadPersistence(IDatabaseService dbService, IFileService fileService) // Loads all data from an already existing database file { List <string[]> lmpRows = dbService.GetAllRows("LocalMediaPacks"); // Getting LocalMediaPack objects if (lmpRows.Count > 0) { foreach (string[] row in lmpRows) { string rootPath = row[0]; SupportedFileExtension baseExtension = (row[1].Length > 0) ? (SupportedFileExtension)Enum.Parse(typeof(SupportedFileExtension), row[1]) : SupportedFileExtension.MP3; // Default type is MP3 if cell is null bool isResultOfDriveSearch = Int32.Parse(row[2]) == 1; string filePaths = row[3]; // Array of strings, divided by "|" LocalMediaPack lmp = new LocalMediaPack(rootPath, isResultOfDriveSearch, baseExtension); foreach (string path in filePaths.Split('|')) { SupportedFileExtension type = (SupportedFileExtension)Enum.Parse(typeof(SupportedFileExtension), fileService.GetExtensionFromFilePath(path).ToUpper()); // Eg. "MP3" or "FLAC" lmp.AddFilePath(path, type); } LMPContext.StoredLocalMediaPacks.Add(lmp); // Adding to current container } } }