예제 #1
0
		public void MoviesWithSceneFileNamesAreNotDetectedAsTvEpisodes()
		{
			//Arrange
			var fileName = "Transformers.Age.Of.Extinction.2014.1080p.DVDR.NTSC-LPD.mkv";
			var factory = new MediaFactory();

			//Act
			var result = factory.CreateMediaObject(fileName);

			//Assert
			Assert.IsNotInstanceOfType(result, typeof(TvEpisode));
		}
예제 #2
0
		public void TvEpisodesWithAnXSeasonEpisodeSeperatorAndRangeOfEpisodesAreCorrectlyParsed2()
		{
			//Arrange
			var fileName = "Rocko's Modern Life - S01E03-E04 - Leap Frogs + Bedfellows HDTV-720p.mkv";

			var expectedResults = new
			{
				FileName = "Rocko's Modern Life - S01E03-E04 - Leap Frogs + Bedfellows HDTV-720p.mkv",
				ShowName = "Rocko's Modern Life",
				Extension = ".mkv",
				Episode = "03",
				EpisodeRange = "04",
				Season = "01",
				DisplayName = "Rocko's Modern Life - S01E03-E04"
			};

			var factory = new MediaFactory();

			//Act
			var obj = factory.CreateMediaObject(fileName);

			//Assert
			Assert.AreEqual(expectedResults.FileName, obj.FileName);
			Assert.AreEqual(expectedResults.ShowName, obj.Name);
			Assert.AreEqual(expectedResults.Extension, obj.Extension);
			Assert.AreEqual(expectedResults.Episode, ((TvEpisode) obj).Episode);
			Assert.AreEqual(expectedResults.EpisodeRange, ((TvEpisode)obj).EpisodeRange);
			Assert.AreEqual(expectedResults.Season, ((TvEpisode)obj).Season);
			Assert.AreEqual(expectedResults.DisplayName, obj.DisplayName);
		}
예제 #3
0
		public void TvShowsWithSceneFileNameAreDetectedAsTvEpisodes()
		{
			//Arrange
			var fileName = "The.Big.Bang.Theory.S04E03.The.Zazzy.Substitution.BluRay.1080p.Remux.AVC.DTS-HDMA.5.1-BluHD.mkv";
			var factory = new MediaFactory();

			//Act
			var result = factory.CreateMediaObject(fileName);

			//Assert
			Assert.IsInstanceOfType(result, typeof(TvEpisode));
		}
		private void downloadListOnOnAdd(object sender, ObservedListEventArgs observedListEventArgs)
		{
			var item = observedListEventArgs.Item as FtpListItem;

			if (item != null && _viewModel.DownloadList.All(x => x.Item.FullName != item.FullName))
			{
				if (_factory == null)
				{
					_factory = new MediaFactory();
				}

				MainWindowDownloadList itemToAdd;
				var status = observedListEventArgs.IsPriority ? "Found - Priority" : "Found";

				try
				{
					var media = _factory.CreateMediaObject(item.Name);

					itemToAdd = new MainWindowDownloadList
					{
						Item = item,
						Status = status,
						ParsedName = media.DisplayName,
						ParsedType = media.TypeName
					};
				}
				catch
				{
					itemToAdd = new MainWindowDownloadList
					{
						Item = item,
						Status = status,
						ParsedName = "",
						ParsedType = ""
					};
				}

				var firstFound = _viewModel.DownloadList.FirstOrDefault(x => x.Status == "Found");
				var index = _viewModel.DownloadList.IndexOf(firstFound);

				if (observedListEventArgs.IsPriority && index >= 0)
				{
					Application.Current.Dispatcher.Invoke(delegate
					{
						_viewModel.DownloadList.Insert(index, itemToAdd);
					});
				}
				else
				{
					Application.Current.Dispatcher.Invoke(delegate
					{
						_viewModel.DownloadList.Add(itemToAdd);
					});
				}
			}

			foreach (
				var expiredItem in
					_viewModel.DownloadList.Where(x => x.LastUpdated <= DateTime.Now.AddDays(-1) && x.Status == "Moved").ToList())
			{
				Application.Current.Dispatcher.Invoke(delegate
				{
					_viewModel.DownloadList.Remove(expiredItem);
				});
			}
		}