public IActionResult Edit(GalleryItemViewModel galvm) { if (ModelState.IsValid) { GalleryItem gallery = galleryItemService.GetGalleryItem(galvm.Id); gallery.Title = galvm.Title; gallery.Description = galvm.Description; gallery.Position = galleryItemService.CountGalleryItem() + 1; gallery.AddedBy = galvm.AddedBy; gallery.GalleryId = galvm.GalleryId; gallery.AddedDate = galvm.AddedDate; gallery.ModifiedBy = User.Identity.Name ?? "username"; gallery.ModifiedDate = DateTime.Now; gallery.Video = galvm.Video; gallery.Photo = galvm.Photo; gallery.Meta1 = galvm.Meta1; galleryItemService.UpdateGalleryItem(gallery); galleryItemService.SaveGalleryItem(); galleryItemService.UpdateCategories(gallery.Id, galvm.categoriesHidden); return(RedirectToAction("Index")); } var galleryR = galleryItemService.GetGalleryItem(galvm.Id); ViewBag.CategoryList = galleryItemCategoryService.GetGalleryItemCategories(); ViewBag.CheckList = galleryR.GalleryItemGalleryItemCategories; ViewBag.GalleryList = new SelectList(galleryService.GetGalleries(), "Id", "Name"); return(View(galvm)); }
public IActionResult Create() { ViewBag.CategoryList = galleryItemCategoryService.GetGalleryItemCategories(); ViewBag.GalleryList = new SelectList(galleryService.GetGalleries(), "Id", "Name"); var galleryItem = new GalleryItemViewModel(); return(View(galleryItem)); }
public GalleryItemPage(GalleryItemViewModel viewModel) { InitializeComponent(); BindingContext = viewModel; Browser.IsVisible = false; Browser.Source = new Uri("https://www.youtube.com/embed/" + viewModel.Item.VideoId); Browser.GoForward(); }
async Task PrepareViewModels(GalleryItemViewModel vm) { ViewModel = vm; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(ViewModel))); Images.Clear(); Comments.Clear(); Tags.Clear(); TagBarVisibility = Visibility.Collapsed; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(TagBarVisibility))); if (vm.IsAlbum) { var album = vm.Item as GalleryAlbum; foreach (var i in album.Images) { Images.Add(new ImageViewModel(i)); } } else { Images.Add(new ImageViewModel(vm.DisplayImage)); } foreach (var t in vm.Tags) { Tags.Add(new TagViewModel(t)); } if (Tags.Count > 0) { TagBarVisibility = Visibility.Visible; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(TagBarVisibility))); } // The front page model only contains the first 3 images. If there's more, we would need to request them. // Turns out not always. if (vm.IsAlbum && vm.ImageCount > Images.Count) { var fullAlbum = await ApiClient.Client.GetGalleryAlbumAsync(vm.Id); for (int i = Images.Count; i < fullAlbum.ImageCount; i++) { Images.Add(new ImageViewModel(fullAlbum.Images[i])); } } var comments = await ApiClient.Client.GetGalleryCommentsAsync(vm.Id); Comments = new ObservableCollection <CommentViewModel>(CommentViewModelFactory.BuildCommentViewModels(comments)); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Comments))); }
public void ThrowInvalidOperationException_WhenModelStateIsInvalid() { // Arrange var galleryServiceMock = new Mock <IGalleryImageService>(); var userServiceMock = new Mock <IUserService>(); var mappingServiceMock = new Mock <IMappingService>(); var utilsMock = new Mock <IUtilitiesService>(); var controller = new GalleryController(galleryServiceMock.Object, mappingServiceMock.Object, userServiceMock.Object, utilsMock.Object); controller.ViewData.ModelState.AddModelError("asdasda", "asdasdasd"); var model = new GalleryItemViewModel(); // Act & Assert Assert.Throws <InvalidOperationException>(() => controller.Comment(Guid.NewGuid(), model)); }
protected override async void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); if (e.Parameter is GalleryItemDetailsNavigationParameter navParams) { GalleryDetailsSidebarItemSource itemSource = new GalleryDetailsSidebarItemSource(navParams.GalleryItems); GalleryVm = new IncrementalLoadingCollection <GalleryDetailsSidebarItemSource, GalleryItemViewModel>(itemSource); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(GalleryVm))); await PrepareViewModels(navParams.Item); } else if (e.Parameter is string id && !string.IsNullOrWhiteSpace(id)) { GalleryItemViewModel vm = new GalleryItemViewModel(await ApiClient.Client.GetGalleryItemAsync(id)); GalleryDetailsSidebarItemSource itemSource = new GalleryDetailsSidebarItemSource(null); GalleryVm = new IncrementalLoadingCollection <GalleryDetailsSidebarItemSource, GalleryItemViewModel>(itemSource); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(GalleryVm))); await PrepareViewModels(vm); } }
public ActionResult Comment(Guid itemId, GalleryItemViewModel model) { if (!this.ModelState.IsValid) { throw new InvalidOperationException(); } var userId = this.User.Identity.GetUserId(); this.galleryService.AddComment(userId, model.NewCommentContent, itemId); var image = this.galleryService.GetGalleryImageById(itemId); model = this.mappingService.Map <GalleryItemViewModel>(image); var user = this.userService.GetById(userId); model.CurrentUser = user; model.ProfilePicSize = AppConstants.GalleryProfilePicSize; return(this.PartialView("_CommentBoxPartial", model)); }
public void CallGetGalleryImageById_WhenParamsAreValid() { // Arrange var galleryServiceMock = new Mock <IGalleryImageService>(); var userServiceMock = new Mock <IUserService>(); var mappingServiceMock = new Mock <IMappingService>(); var utilsMock = new Mock <IUtilitiesService>(); var controller = new GalleryController(galleryServiceMock.Object, mappingServiceMock.Object, userServiceMock.Object, utilsMock.Object); var image = new GalleryImage(); galleryServiceMock.Setup(x => x.GetGalleryImageById(It.IsAny <Guid>())).Returns(image); var model = new GalleryItemViewModel(); mappingServiceMock.Setup(x => x.Map <GalleryItemViewModel>(image)).Returns(model); var ids = new Tuple <Guid, Guid>(Guid.NewGuid(), Guid.NewGuid()); galleryServiceMock.Setup(x => x.GetSurroundingImageIds(It.IsAny <GalleryImage>())).Returns(ids); var controllerContext = new Mock <ControllerContext>(); var user = new Mock <IPrincipal>(); user.Setup(p => p.IsInRole("admin")).Returns(true); user.SetupGet(x => x.Identity.Name).Returns("username"); controllerContext.SetupGet(x => x.HttpContext.User).Returns(user.Object); controller.ControllerContext = controllerContext.Object; var userModel = new User(); userServiceMock.Setup(x => x.GetById(It.IsAny <string>())).Returns(userModel); galleryServiceMock.Setup(x => x.IsImageLiked(It.IsAny <string>(), It.IsAny <Guid>())).Returns(true); // Act controller.PopulateModal(Guid.NewGuid()); // Assert galleryServiceMock.Verify(x => x.GetGalleryImageById(It.IsAny <Guid>()), Times.Once); }
public void RenderPartialViewWithCorrectModel_WhenParamsAreValid() { // Arrange var galleryServiceMock = new Mock <IGalleryImageService>(); var userServiceMock = new Mock <IUserService>(); var mappingServiceMock = new Mock <IMappingService>(); var utilsMock = new Mock <IUtilitiesService>(); var controller = new GalleryController(galleryServiceMock.Object, mappingServiceMock.Object, userServiceMock.Object, utilsMock.Object); var controllerContext = new Mock <ControllerContext>(); var user = new Mock <IPrincipal>(); user.Setup(p => p.IsInRole("admin")).Returns(true); user.SetupGet(x => x.Identity.Name).Returns("username"); controllerContext.SetupGet(x => x.HttpContext.User).Returns(user.Object); controller.ControllerContext = controllerContext.Object; galleryServiceMock.Setup(x => x.AddComment(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Guid>())); var image = new GalleryImage(); galleryServiceMock.Setup(x => x.GetGalleryImageById(It.IsAny <Guid>())).Returns(image); var model = new GalleryItemViewModel(); mappingServiceMock.Setup(x => x.Map <GalleryItemViewModel>(image)).Returns(model); var userModel = new User(); userServiceMock.Setup(x => x.GetById(It.IsAny <string>())).Returns(userModel); // Act & Assert controller.WithCallTo(x => x.Comment(Guid.NewGuid(), model)) .ShouldRenderPartialView("_CommentBoxPartial") .WithModel <GalleryItemViewModel>(x => x == model); }
public IActionResult Edit(long id) { GalleryItem gallery = galleryItemService.GetGalleryItem(id); ViewBag.CategoryList = galleryItemCategoryService.GetGalleryItemCategories(); ViewBag.CheckList = gallery.GalleryItemGalleryItemCategories; ViewBag.GalleryList = new SelectList(galleryService.GetGalleries(), "Id", "Name"); GalleryItemViewModel galvm = new GalleryItemViewModel(); galvm.Photo = gallery.Photo; galvm.GalleryId = gallery.GalleryId; galvm.IsPublished = gallery.IsPublished; galvm.Description = gallery.Description; galvm.Position = gallery.Position; galvm.Meta1 = gallery.Meta1; galvm.Title = gallery.Title; galvm.Video = gallery.Video; galvm.AddedBy = gallery.AddedBy; galvm.AddedDate = gallery.AddedDate; galvm.ModifiedBy = gallery.ModifiedBy; galvm.ModifiedDate = gallery.ModifiedDate; ViewBag.FileName = gallery.Photo ?? gallery.Video; return(View(galvm)); }
public GalleryItemDetailsNavigationParameter(GalleryItemViewModel item, IncrementalItemsSource <GalleryItemViewModel> galleryItems) { Item = item; GalleryItems = galleryItems; }