public async void DownloadRejected(DownloadRejected rejected)
        {
            Console.WriteLine("[Downloadanager] DownloadRejected");
            Console.WriteLine("[Downloadanager] DownloadRejected Id     : {0}", rejected.Id);
            Console.WriteLine("[Downloadanager] DownloadRejected Reason : {0}", rejected.Reason);

            Download download;
            bool     found = _repo.TryById(rejected.Id, out download);

            if (!found)
            {
                var error = new DownloadError {
                    Id    = rejected.Id,
                    Error = ErrorEnum.DownloadRejected_IdentifierNotFound
                };
                await _bus.SendAsync <DownloadError> (error);

                return;
            }

            bool paused = download.TryPause();

            if (!paused)
            {
                await _bus.SendAsync <DownloadError> (new DownloadError {
                    Id    = download.Id,
                    State = download.State,
                    Error = ErrorEnum.DownloadRejected_InvalidState
                });

                return;
            }
            _repo.Update(download);
        }
Example #2
0
 private void DownloadError_Received(DownloadError error)
 {
     Console.WriteLine("[Downloader] DownloadError");
     Console.WriteLine("[Downloader] DownloadError Error : {0}", error.Error);
     Console.WriteLine("[Downloader] DownloadError Description : {0}", error.Description);
     Console.WriteLine("[Downloader] DownloadError (State : {0})", error.State);
 }
 public void DownloadError(DownloadError error)
 {
     Console.WriteLine("[Downloadanager] DownloadError");
     Console.WriteLine("[Downloadanager] DownloadError Id          : {0}", error.Id);
     Console.WriteLine("[Downloadanager] DownloadError Error       : {0}", error.Error);
     Console.WriteLine("[Downloadanager] DownloadError Description : {0}", error.Description);
     Console.WriteLine("[Downloadanager] DownloadError State       : {0}", error.State);
 }
        public async void FinishedDownload(FinishedDownload finished)
        {
            Console.WriteLine("[Downloadanager] FinishedDownload");
            Console.WriteLine("[Downloadanager] FinishedDownload Id       : {0}", finished.Id);
            Console.WriteLine("[Downloadanager] FinishedDownload Location : {0}", finished.Location);

            Download download;
            bool     found = _repo.TryById(finished.Id, out download);

            if (!found)
            {
                var error = new DownloadError {
                    Id    = finished.Id,
                    Error = ErrorEnum.FinishedDownload_IdentifierNotFound
                };
                await _bus.SendAsync <DownloadError> (error);

                return;
            }

            bool progressed = download.TryFinish(finished.Location);

            if (!progressed)
            {
                await _bus.SendAsync <DownloadError> (new DownloadError {
                    Id    = download.Id,
                    State = download.State,
                    Error = ErrorEnum.FinishedDownload_InvalidState
                });

                return;
            }

            _repo.Update(download);

            await _bus.SendAsync <NotifyProgress> (new NotifyProgress {
                Url      = download.Url,
                Download = download
            });

            await _bus.SendAsync <NotifyFinish> (new NotifyFinish {
                Url      = download.Url,
                Download = download,
                FileLock = finished.FileLock
            });
        }
        public async void TaskError(TaskError error)
        {
            Console.WriteLine("[Downloadanager] TaskError");
            Console.WriteLine("[Downloadanager] TaskError Id          : {0}", error.Id);
            Console.WriteLine("[Downloadanager] TaskError Error       : {0}", error.Error);
            Console.WriteLine("[Downloadanager] TaskError Description : {0}", error.Description);
            Console.WriteLine("[Downloadanager] TaskError StatusCode  : {0}", error.StatusCode);

            Download download;
            bool     found = _repo.TryById(error.Id, out download);

            if (!found)
            {
                var invalididentifier = new DownloadError {
                    Id    = error.Id,
                    Error = ErrorEnum.TaskError_IdentifierNotFound
                };
                await _bus.SendAsync <DownloadError> (invalididentifier);

                return;
            }

            bool failed = download.TryFail(error.StatusCode, error.Error, error.Description);

            if (!failed)
            {
                await _bus.SendAsync <DownloadError> (new DownloadError {
                    Id    = download.Id,
                    State = download.State,
                    Error = ErrorEnum.TaskError_InvalidState
                });

                return;
            }
            _repo.Update(download);

            await _bus.SendAsync <NotifyProgress> (new NotifyProgress {
                Url      = download.Url,
                Download = download
            });
        }
		private void DownloadError_Received(DownloadError error) 
		{
			Console.WriteLine("[Downloader] DownloadError");
			Console.WriteLine("[Downloader] DownloadError Error : {0}", error.Error);
			Console.WriteLine("[Downloader] DownloadError Description : {0}", error.Description);
			Console.WriteLine("[Downloader] DownloadError (State : {0})", error.State);
		}
		public async void TaskError(TaskError error) {

			Console.WriteLine("[Downloadanager] TaskError");
			Console.WriteLine("[Downloadanager] TaskError Id          : {0}", error.Id);
			Console.WriteLine("[Downloadanager] TaskError Error       : {0}", error.Error);
			Console.WriteLine("[Downloadanager] TaskError Description : {0}", error.Description);
			Console.WriteLine("[Downloadanager] TaskError StatusCode  : {0}", error.StatusCode);

			Download download;
			bool found = _repo.TryById(error.Id, out download);

			if (!found) {
				var invalididentifier = new DownloadError {
					Id = error.Id,
					Error = ErrorEnum.TaskError_IdentifierNotFound
				};
				await _bus.SendAsync<DownloadError> (invalididentifier);
				return;
			}

			bool failed = download.TryFail (error.StatusCode, error.Error, error.Description);
			if (!failed) {
				await _bus.SendAsync<DownloadError> (new DownloadError {
					Id = download.Id,
					State = download.State,
					Error = ErrorEnum.TaskError_InvalidState
				});
				return;
			}
			_repo.Update (download);

			await _bus.SendAsync<NotifyProgress> (new NotifyProgress {
				Url = download.Url,
				Download = download
			});

		}
		public void DownloadError(DownloadError error) {

			Console.WriteLine("[Downloadanager] DownloadError");
			Console.WriteLine("[Downloadanager] DownloadError Id          : {0}", error.Id);
			Console.WriteLine("[Downloadanager] DownloadError Error       : {0}", error.Error);
			Console.WriteLine("[Downloadanager] DownloadError Description : {0}", error.Description);
			Console.WriteLine("[Downloadanager] DownloadError State       : {0}", error.State);

		}
		public async void DownloadRejected(DownloadRejected rejected) {

			Console.WriteLine("[Downloadanager] DownloadRejected");
			Console.WriteLine("[Downloadanager] DownloadRejected Id     : {0}", rejected.Id);
			Console.WriteLine("[Downloadanager] DownloadRejected Reason : {0}", rejected.Reason);

			Download download;
			bool found = _repo.TryById(rejected.Id, out download);

			if (!found) {
				var error = new DownloadError {
					Id = rejected.Id,
					Error = ErrorEnum.DownloadRejected_IdentifierNotFound
				};
				await _bus.SendAsync<DownloadError> (error);
				return;
			}

			bool paused = download.TryPause ();
			if (!paused) {
				await _bus.SendAsync<DownloadError> (new DownloadError {
					Id = download.Id,
					State = download.State,
					Error = ErrorEnum.DownloadRejected_InvalidState
				});
				return;
			}
			_repo.Update (download);

		}
		public async void FinishedDownload (FinishedDownload finished) {

			Console.WriteLine("[Downloadanager] FinishedDownload");
			Console.WriteLine("[Downloadanager] FinishedDownload Id       : {0}", finished.Id);
			Console.WriteLine("[Downloadanager] FinishedDownload Location : {0}", finished.Location);

			Download download;
			bool found = _repo.TryById(finished.Id, out download);

			if (!found) {
				var error = new DownloadError {
					Id = finished.Id,
					Error = ErrorEnum.FinishedDownload_IdentifierNotFound
				};
				await _bus.SendAsync<DownloadError> (error);
				return;
			}

			bool progressed = download.TryFinish (finished.Location);
			if (!progressed) {
				await _bus.SendAsync<DownloadError> (new DownloadError {
					Id = download.Id,
					State = download.State,
					Error = ErrorEnum.FinishedDownload_InvalidState
				});
				return;
			}

			_repo.Update (download);

			await _bus.SendAsync<NotifyProgress> (new NotifyProgress {
				Url = download.Url,
				Download = download
			});
			await _bus.SendAsync<NotifyFinish> (new NotifyFinish {
				Url = download.Url,
				Download = download,
				FileLock = finished.FileLock
			});
		}