Example #1
0
 /// <summary>
 /// Converts the <paramref name="item" /> to an instance of <see cref="MediaQueueItem" />.
 /// </summary>
 /// <param name="item">The item.</param>
 /// <returns>An instance of <see cref="MediaQueueItem" />.</returns>
 private static MediaQueueItem ToMediaQueueItem(MediaQueueDto item)
 {
     return new MediaQueueItem
                {
                    MediaQueueId = item.MediaQueueId,
                    MediaObjectId = item.FKMediaObjectId,
                    Status = Enum<MediaQueueItemStatus>.Parse(item.Status),
                    StatusDetail = item.StatusDetail,
                          ConversionType = item.ConversionType,
                          RotationAmount = item.RotationAmount,
                    DateAdded = item.DateAdded,
                    DateConversionStarted = item.DateConversionStarted,
                    DateConversionCompleted = item.DateConversionCompleted
                };
 }
 /// <summary>
 /// Update the status of the <paramref name="item" /> to the specified <paramref name="status" />.
 /// </summary>
 /// <param name="item">The item whose status is to be updated.</param>
 /// <param name="status">The status to update the item to.</param>
 private static void ChangeStatus(MediaQueueDto item, MediaQueueItemStatus status)
 {
     item.Status = status.ToString();
     Factory.GetDataProvider().MediaQueue_Save(item);
 }
 /// <summary>
 /// Persist the specified media queue item to the data store. The ID of the new item is assigned to
 /// <see cref="MediaQueueDto.MediaQueueId"/>.
 /// </summary>
 /// <param name="mediaQueue">The media queue item to persist to the data store.</param>
 public abstract void MediaQueue_Save(MediaQueueDto mediaQueue);
        /// <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>
        public void Add(IGalleryObject mediaObject)
        {
            lock (_sharedLock)
            {
                if (IsWaitingInQueue(mediaObject.Id))
                    return;

                MediaQueueDto mediaQueueDto = new MediaQueueDto
                                                                                {
                                                                                    MediaQueueId = int.MinValue,
                                                                                    FKMediaObjectId = mediaObject.Id,
                                                                                    Status = MediaQueueItemStatus.Waiting.ToString(),
                                                                                    StatusDetail = String.Empty,
                                                                                    DateAdded = DateTime.Now,
                                                                                    DateConversionStarted = null,
                                                                                    DateConversionCompleted = null
                                                                                };

                Factory.GetDataProvider().MediaQueue_Save(mediaQueueDto);

                MediaQueueItemDictionary.TryAdd(mediaQueueDto.MediaQueueId, mediaQueueDto);
            }
        }
 /// <summary>
 /// Delete the media queue item from the data store.
 /// </summary>
 /// <param name="mediaQueue">The media queue item to delete from the data store.</param>
 public abstract void MediaQueue_Delete(MediaQueueDto mediaQueue);