示例#1
0
 public ArtworkViewModel GetArtworks()
 {
     return(new ArtworkViewModel
     {
         Artworks = _repo.GetArtworks()
     });
 }
        public IActionResult Index(int page = 1)
        {
            List <Artworks>  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(model));
        }