public IActionResult Search(string search) { int id = Autentification.GetLoggedUser(HttpContext).Id; Museums m = museumRepository.GetMuseumByAccId(id); List <Artworks> model = new List <Artworks>(); if (search != null) { model = artworkRepository.Search(search, m.Id); } else { model = artworkRepository.GetArtworksByMuseum(m.Id); } List <ArtworkInfoVM> list = new List <ArtworkInfoVM>(); foreach (Artworks x in model) { ArtworkInfoVM vm = new ArtworkInfoVM(); vm.Id = x.Id; vm.Artist = x.Artist.Name; vm.ArtistId = x.ArtistId; vm.Likes = likesRepository.GetLikes(x.Id); vm.Name = x.Name; vm.Image = imageRepository.GetArtworkImage(x.Id); if (vm.Image != null) { vm.ImageId = vm.Image.Id; } list.Add(vm); } ViewData["collections"] = collectionRepository.GetCollections(m.Id); return(View("Index", list)); }
public IActionResult Search(string search, int page = 1) { IEnumerable <Artworks> list; if (search != null) { list = artworkRepository.Search(search, null); } else { list = artworkRepository.GetArtworks(); } List <ArtworkVM> model = new List <ArtworkVM>(); const int PageSize = 12; var count = list.Count(); if (page == 1) { list = list.Skip(0).Take(PageSize).ToList(); } else { list = list.Skip((page - 1) * PageSize).Take(PageSize).ToList(); } if (count <= PageSize) { ViewBag.MaxPage = 1; } else { if (count % PageSize == 0) { ViewBag.MaxPage = (count / PageSize); } else { ViewBag.MaxPage = (count / PageSize) + 1; } } ViewBag.Page = page; ViewBag.NextPage = page + 1; foreach (Artworks x in list) { ArtworkVM vm = new ArtworkVM(); vm.Id = x.Id; vm.Artist = x.Artist.Name; vm.ArtworkType = x.ArtworkType.Name; vm.ArtworkTypeId = x.ArtworkTypeId; vm.CatalogueEntry = x.CatalogueEntry; vm.Country = x.Country.Name; vm.Image = imageRepository.GetArtworkImage(x.Id); if (vm.Image != null) { vm.ImageId = vm.Image.Id; } vm.Likes = likesRepository.GetLikes(x.Id); vm.Material = x.Material.Name; vm.Museum = x.Museum.Name; vm.MuseumId = x.MuseumId; vm.Name = x.Name; vm.Provenance = x.Provenance; vm.Style = x.Style.Name; if (Autentification.GetLoggedUser(HttpContext) != null) { Clients c = clientRepository.GetClientByUserId(Autentification.GetLoggedUser(HttpContext).Id); vm.Liked = likesRepository.IsLiked(c.Id, x.Id); } else { vm.Liked = false; } model.Add(vm); } return(View("Index", model)); }