예제 #1
0
        public Session(Fiddler.Session session, Core core)
        {
            fSession = session;
            fSession.OnStateChanged += (x, stateChangeEventArgs) =>
            {
                State = (int)stateChangeEventArgs.newState;
            };
            score           = core;
            CmdAbortSession = new SimpleCommand <Session>()
            {
                ExecuteDelegate = (oS) =>
                {
                    oS.fSession.Abort();
                },
                CanExecuteDelegate = (oS) =>
                {
                    if (oS == null)
                    {
                        return(false);
                    }
                    return(oS.fSession.state != SessionStates.Aborted);
                }
            };
            CmdDownloadSession = new AwaitableDelegateCommand(

                executeMethod: () =>
            {
                return(Task.Run(() =>
                {
                    //DownloadQueueProcessor dq = new DownloadQueueProcessor();
                    DownloadQueueProcessor.Initialize(this);
                    DownloadQueueProcessor.Start(this, Config.MaxParallel);
                    //score.SegmentedDownload(oS);
                }));
            },
                canExecuteMethod: () =>
            {
                return(true);
            }
                );
            CmdRefreshSession = new SimpleCommand <Session>()
            {
                ExecuteDelegate = (oS) =>
                {
                    oS.NotifyPropertyChanged("Size");
                },
                CanExecuteDelegate = (oS) =>
                {
                    return(true);
                }
            };
            CmdXSession = new SimpleCommand <Session>()
            {
                ExecuteDelegate    = (oS) => { },
                CanExecuteDelegate = (oS) =>
                {
                    return(true);
                }
            };
        }
예제 #2
0
        public DownloadQueueItem()
        {
            ProgressTimer          = new DispatcherTimer();
            ProgressTimer.Interval = new TimeSpan(200);
            ProgressTimer.Tick    += ProgressTimerCallback;
            PropertyChanged       += DownloadQueueItem_PropertyChanged;
            CmdAbortQItem          = new SimpleCommand
            {
                CanExecuteDelegate = (x) => { return(true); },
                ExecuteDelegate    = (x) =>
                {
                    Session.Abort();
                }
            };

            CmdDownloadQItem = new SimpleCommand <DownloadQueueItem>
            {
                CanExecuteDelegate = (x) => { return(Processed == false); },
                ExecuteDelegate    = (x) =>
                {
                    DownloadQueueProcessor.Start(this.DSession, this);
                }
            };
        }