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