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); }
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; }
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(); }