public static List <DBLocalMedia> GetAll(string fullPath, string volumeSerial) { DBField pathField = DBField.GetField(typeof(DBLocalMedia), "FullPath"); // using operator LIKE to make the search case insensitive ICriteria pathCriteria = new BaseCriteria(pathField, "like", fullPath); ICriteria criteria = pathCriteria; if (volumeSerial != null) { DBField serialField = DBField.GetField(typeof(DBLocalMedia), "VolumeSerial"); ICriteria serialCriteria = new BaseCriteria(serialField, "=", volumeSerial); criteria = new GroupedCriteria(pathCriteria, GroupedCriteria.Operator.AND, serialCriteria); } List <DBLocalMedia> resultSet = MovingPicturesCore.DatabaseManager.Get <DBLocalMedia>(criteria); return(resultSet); }
/// <summary> /// Get Audio Stream by <paramref name="localMediaId"/> and <paramref name="audioStreamId"/> /// </summary> /// <param name="localMediaId">Local Media Id</param> /// <param name="audioStreamId">Audio Stream ID</param> /// <returns></returns> public static DBLocalMediaAudioStreams Get(int localMediaId, int audioStreamId) { DBField localMediaField = DBField.GetField(typeof(DBLocalMediaAudioStreams), "LocalMedia"); ICriteria localMediaCriteria = new BaseCriteria(localMediaField, "=", localMediaId); ICriteria criteria = localMediaCriteria; DBField audioStreamIdField = DBField.GetField(typeof(DBLocalMediaAudioStreams), "AudioStreamId"); ICriteria audioStreamIdCriteria = new BaseCriteria(audioStreamIdField, "=", audioStreamId); criteria = new GroupedCriteria(localMediaCriteria, GroupedCriteria.Operator.AND, audioStreamIdCriteria); List<DBLocalMediaAudioStreams> resultSet = MovingPicturesCore.DatabaseManager.Get<DBLocalMediaAudioStreams>(criteria); return resultSet.Count > 0 ? resultSet[0] : null; }
/// <summary> /// Get Subtitles by <paramref name="localMediaId"/> and <paramref name="language"/> and <paramref name="isInternal"/> /// </summary> /// <param name="localMediaId">Local Media Id</param> /// <param name="language">Language</param> /// <param name="isInternal">Are there internal subtitles?</param> /// <returns></returns> public static DBLocalMediaSubtitles Get(int localMediaId, string language, bool isInternal) { logger.Debug("localMediaId: {0} | language: {1} | isInternal: {2}"); logger.Debug("Constructing LocalMedia Criteria..."); DBField localMediaField = DBField.GetField(typeof(DBLocalMediaSubtitles), "LocalMedia"); ICriteria localMediaCriteria = new BaseCriteria(localMediaField, "=", localMediaId); ICriteria localMediaAndLanguageCriteria = localMediaCriteria; logger.Debug("Constructing language Criteria..."); DBField languageField = DBField.GetField(typeof(DBLocalMediaSubtitles), "Language"); ICriteria languageCriteria = new BaseCriteria(languageField, "=", language); localMediaAndLanguageCriteria = new GroupedCriteria(localMediaCriteria, GroupedCriteria.Operator.AND, languageCriteria); ICriteria criteria = localMediaAndLanguageCriteria; logger.Debug("Constructing Internal Criteria..."); DBField isInternalField = DBField.GetField(typeof(DBLocalMediaSubtitles), "Internal"); ICriteria internalCriteria = new BaseCriteria(isInternalField, "=", isInternal); criteria = new GroupedCriteria(localMediaAndLanguageCriteria, GroupedCriteria.Operator.AND, internalCriteria); logger.Debug("Getting resultSet..."); List<DBLocalMediaSubtitles> resultSet = MovingPicturesCore.DatabaseManager.Get<DBLocalMediaSubtitles>(criteria); return resultSet.Count > 0 ? resultSet[0] : null; }