/// <summary> /// Método que vai buscar à base de dados as fotografias, atualiza o url das thumbnails e retorna numa lista as mesmas. /// </summary> /// <param name="id">Id da galeria em questão</param> /// <param name="page">Número da página</param> /// <param name="justCheckbox"></param> /// <returns>Retorna uma lista de fotografias com o url das thumbnails atualizadas</returns> public async Task <IActionResult> Thumbnails(string id, int page = 0, bool justCheckbox = false) { if (String.IsNullOrEmpty(id)) { return(Json(new { success = false, error = "O ID da galeria não é válido." })); } var photosPerRequest = _appSettings.PhotosPerRequest; int skipNum = (page - 1) * photosPerRequest; List <Fotografia> fotos = await _context.Fotografias .Include(f => f.ContaOnedrive) .Where(f => f.GaleriaFK.Equals(id)) .Skip(skipNum).Take(photosPerRequest) .ToListAsync(); // Caso já não exista mais fotos if (fotos.Count() == 0) { return(Json(new { noMorePhotos = true })); } // Refrescar o url das thumbnails await _onedrive.RefreshPhotoUrlsAsync(fotos); var response = new ThumbnailsViewModel { Fotos = fotos, Index = skipNum }; ViewData["JustCheckbox"] = justCheckbox; return(PartialView("PartialViews/_ListPhotos", response)); }
public async Task <IActionResult> Thumbnails(string ID, string Password, int Page = 0) { if (String.IsNullOrEmpty(ID)) { return(Json(new { success = false, error = "Não foi possível encontrar as fotografias." })); } var photosPerRequest = _appSettings.PhotosPerRequest; int skipNum = (Page - 1) * photosPerRequest; var partilhavel = await _context.Partilhaveis .Include(p => p.Partilhaveis_Fotografias).ThenInclude(pf => pf.Fotografia).ThenInclude(f => f.ContaOnedrive) .Where(p => p.ID.Equals(ID)) .FirstOrDefaultAsync(); if (partilhavel == null) { return(Json(new { success = false, error = "Não foi possível encontrar as fotografias." })); } if (String.IsNullOrEmpty(Password) || !partilhavel.Password.Equals(Password)) { return(Json(new { success = false, error = "Não foi possível encontrar as fotografias." })); } // Caso não existam fotos if (partilhavel.Partilhaveis_Fotografias.Count() == 0) { return(Json(new { noMorePhotos = true })); } // Lista de fotografias do partilhavel List <Fotografia> fotos = partilhavel.Partilhaveis_Fotografias .Select(pf => pf.Fotografia) .Skip(skipNum).Take(photosPerRequest) .ToList(); // Caso já não exista mais fotos if (fotos.Count() == 0) { return(Json(new { noMorePhotos = true })); } // Refrescar os thumbnails await _onedrive.RefreshPhotoUrlsAsync(fotos); var response = new ThumbnailsViewModel { Fotos = fotos, Index = skipNum }; return(PartialView("PartialViews/_ListPhotos", response)); }