Exemple #1
0
        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
                }
            }
        }