/// <summary>
        /// Adds the specified <paramref name="mediaObject" /> to the queue. It will be processed in a first-in, first-out
        /// order. If the media object is already waiting in the queue, no action is taken.
        /// </summary>
        /// <param name="mediaObject">The media object to be processed.</param>
        /// <param name="conversionType">Type of the conversion.</param>
        public void Add(IGalleryObject mediaObject, MediaQueueItemConversionType conversionType)
        {
            lock (_sharedLock)
            {
                var mqItem = new MediaQueueItem
                {
                    MediaQueueId            = int.MinValue,
                    MediaObjectId           = mediaObject.Id,
                    Status                  = MediaQueueItemStatus.Waiting,
                    ConversionType          = conversionType,
                    RotationAmount          = mediaObject.CalculateNeededRotation(),
                    StatusDetail            = String.Empty,
                    DateAdded               = DateTime.Now,
                    DateConversionStarted   = null,
                    DateConversionCompleted = null
                };

                mqItem.Save();
                //Factory.GetDataProvider().MediaQueue_Save(mediaQueueDto);

                MediaQueueItemDictionary.TryAdd(mqItem.MediaQueueId, mqItem);
            }
        }
        /// <summary>
        /// Adds the specified <paramref name="mediaObject" /> to the queue. It will be processed in a first-in, first-out
        /// order. If the media object is already waiting in the queue, no action is taken.
        /// </summary>
        /// <param name="mediaObject">The media object to be processed.</param>
        /// <param name="conversionType">Type of the conversion.</param>
        public void Add(IGalleryObject mediaObject, MediaQueueItemConversionType conversionType)
        {
            lock (_sharedLock)
            {
                var mqItem = new MediaQueueItem
                                                                                {
                                                                                    MediaQueueId = int.MinValue,
                                                                                    MediaObjectId = mediaObject.Id,
                                                                                    Status = MediaQueueItemStatus.Waiting,
                                                                                    ConversionType = conversionType,
                                                                                    RotationAmount = mediaObject.CalculateNeededRotation(),
                                                                                    StatusDetail = String.Empty,
                                                                                    DateAdded = DateTime.Now,
                                                                                    DateConversionStarted = null,
                                                                                    DateConversionCompleted = null
                                                                                };

                mqItem.Save();
                //Factory.GetDataProvider().MediaQueue_Save(mediaQueueDto);

                MediaQueueItemDictionary.TryAdd(mqItem.MediaQueueId, mqItem);
            }
        }