コード例 #1
0
        public MediaDeleteDenyReason CheckCanDeleteMedia(IServerMedia media)
        {
            Event nev = this;

            while (nev != null)
            {
                if (nev.EventType == TEventType.Movie &&
                    nev.Media == media &&
                    nev.ScheduledTime >= Engine.CurrentTime)
                {
                    return new MediaDeleteDenyReason()
                           {
                               Reason = MediaDeleteDenyReason.MediaDeleteDenyReasonEnum.MediaInFutureSchedule, Event = nev, Media = media
                           }
                }
                ;
                foreach (Event se in nev._subEvents.Value.ToList())
                {
                    MediaDeleteDenyReason reason = se.CheckCanDeleteMedia(media);

                    if (reason.Reason != MediaDeleteDenyReason.MediaDeleteDenyReasonEnum.NoDeny)
                    {
                        return(reason);
                    }
                }
                nev = nev.Next as Event;
            }
            return(MediaDeleteDenyReason.NoDeny);
        }
コード例 #2
0
 private MediaDeleteDenyReason deleteMedia(IMedia media, bool forceDelete)
 {
     if (forceDelete)
     {
         _fileManager.Queue(new FileOperation()
         {
             Kind = TFileOperationKind.Delete, SourceMedia = media
         });
         return(MediaDeleteDenyReason.NoDeny);
     }
     else
     {
         MediaDeleteDenyReason reason = (media is PersistentMedia) ? _engine.CanDeleteMedia(media as PersistentMedia) : MediaDeleteDenyReason.NoDeny;
         if (reason.Reason == MediaDeleteDenyReason.MediaDeleteDenyReasonEnum.NoDeny)
         {
             _fileManager.Queue(new FileOperation()
             {
                 Kind = TFileOperationKind.Delete, SourceMedia = media
             });
         }
         return(reason);
     }
 }