Beispiel #1
0
        internal static Volume CreateInstance(VolumeType type, VolumeDatabase database)
        {
            Volume volume = null;

            switch (type)
            {
            case VolumeType.FileSystemVolume:
                volume = new FileSystemVolume(database);
                break;

            case VolumeType.AudioCdVolume:
                volume = new AudioCdVolume(database);
                break;

            default:
                throw new NotImplementedException(string.Format("Instanciation of type {0} is not implemented", type.ToString()));
            }
            return(volume);
        }
Beispiel #2
0
 internal static Volume CreateInstance(VolumeType type, VolumeDatabase database)
 {
     Volume volume = null;
     switch (type) {
         case VolumeType.FileSystemVolume:
             volume = new FileSystemVolume(database);
             break;
         case VolumeType.AudioCdVolume:
             volume = new AudioCdVolume(database);
             break;
         default:
             throw new NotImplementedException(string.Format("Instanciation of type {0} is not implemented", type.ToString()));
     }
     return volume;
 }
Beispiel #3
0
        private void ImportMedia(XmlNode node,
		                         string borrow,
		                         string comment,
		                         long volumeID)
        {
            FileSystemVolume v = new FileSystemVolume(targetDb);
            VolumeDriveType driveType = driveTypeMapping[node.Attributes["type"].Value];
            DateTime added;
            if (!DateTime.TryParseExact(node.Attributes["time"].Value, DATETIME_FORMAT,
                                        ci.DateTimeFormat, DateTimeStyles.None, out added))
                added = DateTime.MinValue;

            v.SetVolumeFields(volumeID,
                              node.Attributes["name"].Value,
                              added,
                              false,
                              node.Attributes["number"].Value,
                              driveType,
                              borrow,
                              DateTime.MinValue,
                              DateTime.MinValue,
                              null,
                              comment,
                              null);

            v.SetFileSystemVolumeFields(counters[TOTAL_FILES],
                                        counters[TOTAL_DIRS],
                                        counters[TOTAL_SIZE]);

            v.InsertIntoDB();

            // insert root item
            DirectoryVolumeItem item = new DirectoryVolumeItem(targetDb);

            item.SetFileSystemVolumeItemFields(null,
                                               DateTime.MinValue,
                                               VolumeDatabase.ID_NONE);

            item.SetVolumeItemFields(volumeID,
                                     1L,
                                     0L,
                                     "/",
                                     VolumeScanner.FilesystemVolumeScanner.MIME_TYPE_DIRECTORY,
                                     MetadataStore.Empty,
                                     null,
                                     null);

            item.InsertIntoDB();
        }