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