Example #1
0
        /// <summary>
        ///     Checks to see if the item has already been recorded.  If not, it will queue the video for recording in PlayLater.
        /// </summary>
        private void QueueMedia(PlayOnVideo media)
        {
            var    success = false;
            string message;

            if (SkipMode)
            {
                message = "Manually skipped.";
                _queueValidator.AddMediaToQueueList(media);
            }
            else if (_queueValidator.CanQueueMedia(media, out message))
            {
                if (!QueueMode)
                {
                    success = true;
                    message = "Pending queue mode.";
                    _queueValidator.AddMediaToCounts(media);
                }
                else
                {
                    try
                    {
                        var queueResult = _playOn.QueueMedia(media);
                        if (queueResult == PlayOnConstants.QueueVideoResult.PlayLaterNotFound)
                        {
                            message = "PlayLater queue link not found. PlayLater may not be running.";
                        }
                        else if (queueResult == PlayOnConstants.QueueVideoResult.AlreadyInQueue)
                        {
                            message = "Already queued.";
                        }
                        success = (queueResult == PlayOnConstants.QueueVideoResult.Success);
                        if (success)
                        {
                            _queueValidator.AddMediaToQueueList(media);
                        }
                    }
                    catch (Exception ex)
                    {
                        message = ex.Message;
                    }
                }
            }
            _logManager.Log("{0}{1}", (success ? "Queued" : "Skipped"), (message == "" ? "" : ": " + message));
        }