internal VideoCacheDownloadOperation(VideoCacheManager videoCacheManager, VideoCacheItem videoCacheItem, DmcVideoStreamingSession dmcVideoStreamingSession, IVideoCacheDownloadOperationOutput videoCacheDownloadOperationOutput)
 {
     _videoCacheManager                 = videoCacheManager;
     VideoCacheItem                     = videoCacheItem;
     _dmcVideoStreamingSession          = dmcVideoStreamingSession;
     _videoCacheDownloadOperationOutput = videoCacheDownloadOperationOutput;
 }
 private PrepareNextVideoCacheDownloadingResult(VideoId videoId, VideoCacheItem videoCacheItem, IVideoCacheDownloadOperation downloadOperation, Func <IVideoCacheDownloadOperation, Task> downloadTaskFactory)
 {
     VideoId              = videoId;
     VideoCacheItem       = videoCacheItem;
     _downloadOperation   = downloadOperation;
     _downloadTaskFactory = downloadTaskFactory;
     FailedReason         = VideoCacheDownloadOperationFailedReason.None;
 }
 private PrepareNextVideoCacheDownloadingResult(VideoId videoId, VideoCacheItem videoCacheItem, VideoCacheDownloadOperationFailedReason creationFailedReason)
 {
     VideoId        = videoId;
     VideoCacheItem = videoCacheItem;
     FailedReason   = creationFailedReason;
 }
 internal static PrepareNextVideoCacheDownloadingResult Failed(VideoId videoId, VideoCacheItem videoCacheItem, VideoCacheDownloadOperationFailedReason creationFailedReason)
 {
     return(new PrepareNextVideoCacheDownloadingResult(videoId, videoCacheItem, creationFailedReason));
 }
 internal static PrepareNextVideoCacheDownloadingResult Success(VideoId videoId, VideoCacheItem videoCacheItem, IVideoCacheDownloadOperation downloadOperation, Func <IVideoCacheDownloadOperation, Task> downloadTaskFactory)
 {
     return(new PrepareNextVideoCacheDownloadingResult(videoId, videoCacheItem, downloadOperation, downloadTaskFactory));
 }