public async Task Test_AllRandom() { var generatorFactory = new GalleryGeneratorFactory(new TagRepositoryMock(), new PictureRepositoryMock(), new GalleryRepositoryMock()); var galleryDescriptor = GalleryDescriptor.Create(10); var generator = generatorFactory.GetGalleryGenerator(galleryDescriptor); var gallery = await generator.GenerateGallery(); Assert.IsTrue(gallery.GalleryItems.Count == 10); }
public async Task TestOnlyGifs() { var generatorFactory = new GalleryGeneratorFactory(new TagRepositoryMock(), new PictureRepositoryMock(), new GalleryRepositoryMock()); var galleryDescriptor = GalleryDescriptor.Create(1, "onlygifs"); var generator = generatorFactory.GetGalleryGenerator(galleryDescriptor); var gallery = await generator.GenerateGallery(); Assert.IsTrue(gallery.GalleryItems.Count > 0); }
public AllRandomGenerator(GalleryDescriptor galleryDescriptor, IGalleryRepository galleryRepository) : base(galleryDescriptor) { if (galleryDescriptor.TagFilter.Mode != TagFilterMode.Undefined) { throw new NotSupportedException($"The '{nameof(AllRandomGenerator)}' does not support the current tag mode: {galleryDescriptor.TagFilter.Mode}"); } if (galleryDescriptor.MediaFilterMode == MediaFilterMode.OnlyGifs || galleryDescriptor.MediaFilterMode == MediaFilterMode.OnlyVideos) { throw new NotSupportedException($"The '{nameof(AllRandomGenerator)}' does not support the current media filter mode '{galleryDescriptor.MediaFilterMode}'."); } _galleryRepository = galleryRepository; }
public OnlyGifsGenerator(GalleryDescriptor galleryDescriptor, IGalleryRepository galleryRepository) : base(galleryDescriptor) { if (galleryDescriptor.TagFilter.Mode != TagFilterMode.Undefined) { throw new NotSupportedException($"The '{nameof(OnlyGifsGenerator)}' does not support the current tag mode: {galleryDescriptor.TagFilter.Mode}"); } if (galleryDescriptor.MediaFilterMode == MediaFilterMode.ExcludeGifs) { throw new NotSupportedException($"The '{nameof(OnlyGifsGenerator)}' does not support the current gif mode '{MediaFilterMode.ExcludeGifs.Name}'."); } _galleryRepository = galleryRepository; }
public async Task <GalleryResponse> GetCustomizedRandom(int itemsInGallery, string tags, string tagFilteringMode, string mediaFilterMode) { GalleryDescriptor descriptor = GalleryDescriptor.Create(itemsInGallery, mediaFilterMode); if (!string.IsNullOrWhiteSpace(tagFilteringMode)) { descriptor.SetTagFilter(tags, tagFilteringMode); } var galleryGenerator = _galleryGeneratorFactory.GetGalleryGenerator(descriptor); var aggregate = await galleryGenerator.GenerateGallery(); return(_mapper.Map <GalleryResponse>(aggregate)); }
public CustomExclusiveGenerator(GalleryDescriptor galleryDescriptor, IGalleryRepository galleryRepository, ITagRepository tagRepository) : base(galleryDescriptor) { if (galleryDescriptor.TagFilter.Mode != TagFilterMode.CustomExclusive) { throw new NotSupportedException($"The '{nameof(CustomExclusiveGenerator)}' does not support the current tag mode: {galleryDescriptor.TagFilter.Mode}"); } if (galleryDescriptor.MediaFilterMode == MediaFilterMode.OnlyGifs) { throw new NotSupportedException($"The '{nameof(CustomExclusiveGenerator)}' does not support the current gif mode '{MediaFilterMode.OnlyGifs.Name}'."); } _galleryRepository = galleryRepository; _tagRepository = tagRepository; }
public OnlyTaggedGenerator(GalleryDescriptor galleryDescriptor, ITagRepository tagRepository, IPictureRepository pictureRepository) : base(galleryDescriptor) { if (galleryDescriptor.TagFilter.Mode != TagFilterMode.OnlyTagged) { throw new NotSupportedException($"The '{nameof(OnlyTaggedGenerator)}' does not support the current tag mode: {galleryDescriptor.TagFilter.Mode}"); } if (galleryDescriptor.MediaFilterMode == MediaFilterMode.OnlyGifs) { throw new NotSupportedException($"The '{nameof(OnlyTaggedGenerator)}' does not support the current gif mode '{MediaFilterMode.OnlyGifs.Name}'."); } _tagRepository = tagRepository; _pictureRepository = pictureRepository; }
public void AddLocation() { var name = NameTextBox.Text ?? string.Empty; var location = LocationTextBox.Text ?? string.Empty; var repository = new GalleryDescriptor(name, location); var listBoxItem = GetListBoxItem(repository); List.SelectedIndex = List.Items.Add(listBoxItem); NameTextBox.Text = string.Empty; LocationTextBox.Text = string.Empty; EnableButtons(); }
public IGalleryGenerator GetGalleryGenerator(GalleryDescriptor galleryDescriptor) { var mediaFilterMode = galleryDescriptor.MediaFilterMode; var tagMode = galleryDescriptor.TagFilter.Mode; if (mediaFilterMode == MediaFilterMode.OnlyGifs) { if (tagMode == TagFilterMode.CustomInclusive || tagMode == TagFilterMode.OnlyTagged) { return(new OnlyTaggedGifsGenerator(galleryDescriptor, _tagRepository, _pictureRepository)); } return(new OnlyGifsGenerator(galleryDescriptor, _galleryRepository)); } else if (mediaFilterMode == MediaFilterMode.OnlyVideos) { return(new OnlyVideoGenerator(galleryDescriptor, _galleryRepository)); } else { if (tagMode == TagFilterMode.CustomExclusive) { return(new CustomExclusiveGenerator(galleryDescriptor, _galleryRepository, _tagRepository)); } else if (tagMode == TagFilterMode.CustomInclusive) { return(new CustomInclusiveGenerator(galleryDescriptor, _tagRepository, _pictureRepository)); } else if (tagMode == TagFilterMode.OnlyTagged) { return(new OnlyTaggedGenerator(galleryDescriptor, _tagRepository, _pictureRepository)); } else if (tagMode == TagFilterMode.OnlyUntagged) { return(new OnlyUntaggedGenerator(galleryDescriptor, _galleryRepository, _tagRepository)); } } return(new AllRandomGenerator(galleryDescriptor, _galleryRepository)); }
private ListBoxItem GetListBoxItem([NotNull] GalleryDescriptor descriptor) { Debug.ArgumentNotNull(descriptor, nameof(descriptor)); var stackPanel = new StackPanel(); stackPanel.Children.Add(new TextBlock { Text = descriptor.Name }); stackPanel.Children.Add(new TextBlock(new Italic(new Run(descriptor.Location))) { Margin = new Thickness(16, 0, 0, 0) }); var listBoxItem = new ListBoxItem { Content = stackPanel, Tag = descriptor }; return(listBoxItem); }
public GalleryGenerator(GalleryDescriptor galleryDescriptor) { _galleryDescriptor = galleryDescriptor; }