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