public IActionResult Galeria(int page = 1, int id = 4) { var pagination = new PagingInfoFotografias { CurrentPage = page, PageSize = PagingInfoFotografias.TAM_PAGINA, TotalItems = _context.Fotografia .Where(p => p.MiradouroId == id).Count() }; return(View( new ListaFotografias { Fotografias = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem) .OrderBy(p => p.Classificacao) .Where(p => p.MiradouroId == id) .Where(p => p.Aprovada) .Skip((page - 1) * pagination.PageSize) .Take(pagination.PageSize), pagination = pagination } )); }
public async Task <IActionResult> Apagar(int?id, int page = 1) { var fotografia = await _context.Fotografia.FindAsync(id); _context.Fotografia.Remove(fotografia); await _context.SaveChangesAsync(); // todo: informar o utilizador que a foto foi apagada com sucesso if (page == 0) { page = 1; var pagination = new PagingInfoFotografias { CurrentPage = page, PageSize = PagingInfoFotografias.TAM_PAGINA, TotalItems = _context.Fotografia.Count() }; return(View( new ListaFotografias { Fotografias = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem) .OrderBy(p => p.FotografiaId) .Skip((page - 1) * pagination.PageSize) .Take(pagination.PageSize), pagination = pagination } )); } if (auxaprovacao == 1) { int tamanho = PagingInfoFotografias.TAM_PAGINA; int totalitems = _context.Fotografia.Count(); int paginaatual; if ((int)Math.Ceiling((double)totalitems / tamanho) < page) { paginaatual = page - 1; } else { paginaatual = page; } var pagination = new PagingInfoFotografias { CurrentPage = paginaatual, PageSize = tamanho, TotalItems = totalitems }; if (auxdirecaoordena == 1) { return(View("Index", new ListaFotografias { Fotografias = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem) .OrderBy(p => EF.Property <Object>(p, auxordenar)) .Skip((paginaatual - 1) * pagination.PageSize) .Take(pagination.PageSize), pagination = pagination } )); } else { return(View("Index", new ListaFotografias { Fotografias = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem) .OrderByDescending(p => EF.Property <Object>(p, auxordenar)) .Skip((paginaatual - 1) * pagination.PageSize) .Take(pagination.PageSize), pagination = pagination } )); } } else { bool auxaprovado; if (auxaprovacao == 2) { auxaprovado = true; } else { auxaprovado = false; } int tamanho = PagingInfoFotografias.TAM_PAGINA; int totalitems = _context.Fotografia .Where(p => p.Aprovada == auxaprovado) .Count(); int paginaatual; if ((int)Math.Ceiling((double)totalitems / tamanho) < page) { paginaatual = page - 1; } else { paginaatual = page; } var pagination = new PagingInfoFotografias { CurrentPage = paginaatual, PageSize = tamanho, TotalItems = totalitems }; if (auxdirecaoordena == 1) { return(View("Index", new ListaFotografias { Fotografias = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem) .Where(p => p.Aprovada == auxaprovado) .OrderBy(p => EF.Property <Object>(p, auxordenar)) .Skip((paginaatual - 1) * pagination.PageSize) .Take(pagination.PageSize), pagination = pagination } )); } else { return(View("Index", new ListaFotografias { Fotografias = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem) .Where(p => p.Aprovada == auxaprovado) .OrderByDescending(p => EF.Property <Object>(p, auxordenar)) .Skip((paginaatual - 1) * pagination.PageSize) .Take(pagination.PageSize), pagination = pagination } )); } } //return RedirectToAction(nameof(Index)); }
public async Task <IActionResult> Aprova(int?id, int page = 1) { if (id == null) { return(NotFound()); } var fotografia = await _context.Fotografia.FindAsync(id); if (fotografia == null) { // todo: talvez alguem tenha apagado essa Hora. " mostrar uma mensagem apropriada ao utilizador" return(NotFound()); } fotografia.Aprovada = !fotografia.Aprovada; try { _context.Update(fotografia); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!FotografiaExists(fotografia.FotografiaId)) { // todo: talvez alguem apagou essa Foto // pergunta ao utilizador se quer criar um novo com os mesmos dados return(NotFound()); } else { // todo: mostrar o erro e perguntar se quer tentar outra vez throw; } } //return RedirectToAction(nameof(Index(0,"0",0,0))); if (auxaprovacao == 1) { int tamanho = PagingInfoFotografias.TAM_PAGINA; int totalitems = _context.Fotografia.Count(); int paginaatual; if ((int)Math.Ceiling((double)totalitems / tamanho) < page) { paginaatual = page - 1; } else { paginaatual = page; } var pagination = new PagingInfoFotografias { CurrentPage = paginaatual, PageSize = tamanho, TotalItems = totalitems }; if (auxdirecaoordena == 1) { return(View("Index", new ListaFotografias { Fotografias = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem) .OrderBy(p => EF.Property <Object>(p, auxordenar)) .Skip((paginaatual - 1) * pagination.PageSize) .Take(pagination.PageSize), pagination = pagination } )); } else { return(View("Index", new ListaFotografias { Fotografias = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem) .OrderByDescending(p => EF.Property <Object>(p, auxordenar)) .Skip((paginaatual - 1) * pagination.PageSize) .Take(pagination.PageSize), pagination = pagination } )); } } else { bool auxaprovado; if (auxaprovacao == 2) { auxaprovado = true; } else { auxaprovado = false; } int tamanho = PagingInfoFotografias.TAM_PAGINA; int totalitems = _context.Fotografia .Where(p => p.Aprovada == auxaprovado) .Count(); int paginaatual; if ((int)Math.Ceiling((double)totalitems / tamanho) < page) { paginaatual = page - 1; } else { paginaatual = page; } var pagination = new PagingInfoFotografias { CurrentPage = paginaatual, PageSize = tamanho, TotalItems = totalitems }; if (auxdirecaoordena == 1) { return(View("Index", new ListaFotografias { Fotografias = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem) .Where(p => p.Aprovada == auxaprovado) .OrderBy(p => EF.Property <Object>(p, auxordenar)) .Skip((paginaatual - 1) * pagination.PageSize) .Take(pagination.PageSize), pagination = pagination } )); } else { return(View("Index", new ListaFotografias { Fotografias = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem) .Where(p => p.Aprovada == auxaprovado) .OrderByDescending(p => EF.Property <Object>(p, auxordenar)) .Skip((paginaatual - 1) * pagination.PageSize) .Take(pagination.PageSize), pagination = pagination } )); } } /*ViewData["EstacaoAnoId"] = new SelectList(_context.EstacaoAno, "EstacaoAnoId", "Nome_estacao", fotografia.EstacaoAnoId); * ViewData["MiradouroId"] = new SelectList(_context.Miradouro, "MiradouroId", "Nome", fotografia.MiradouroId); * ViewData["PessoaId"] = new SelectList(_context.Set<Pessoa>(), "PessoaId", "Nome", fotografia.PessoaId); * ViewData["TipoImagemId"] = new SelectList(_context.TipoImagem, "TipoImagemId", "Descricao", fotografia.TipoImagemId); */ }
// GET: Fotografias public async Task <IActionResult> Index(int page = 1, string ordenacao = "FotografiaId", int direcaoordena = 1, int aprovacao = 1) { if (page == 0) { page = auxpage; } else { auxpage = page; } if (direcaoordena == 0) { direcaoordena = auxdirecaoordena; } else { auxdirecaoordena = direcaoordena; } if (aprovacao == 0) { aprovacao = auxaprovacao; } else { auxaprovacao = aprovacao; } if (ordenacao == "0" || ordenacao == "") { ordenacao = auxordenar; } else { auxordenar = ordenacao; } if (aprovacao == 1) { var pagination = new PagingInfoFotografias { CurrentPage = page, PageSize = PagingInfoFotografias.TAM_PAGINA, TotalItems = _context.Fotografia.Count() }; if (direcaoordena == 1) { return(View( new ListaFotografias { Fotografias = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem) .OrderBy(p => EF.Property <Object>(p, ordenacao)) .Skip((page - 1) * pagination.PageSize) .Take(pagination.PageSize), pagination = pagination, aprovacao = aprovacao, direcaoordena = direcaoordena, ordenacao = ordenacao } )); } else { return(View( new ListaFotografias { Fotografias = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem) .OrderByDescending(p => EF.Property <Object>(p, ordenacao)) .Skip((page - 1) * pagination.PageSize) .Take(pagination.PageSize), pagination = pagination, aprovacao = aprovacao, direcaoordena = direcaoordena, ordenacao = ordenacao } )); } } else { bool auxaprovado; if (aprovacao == 2) { auxaprovado = true; } else { auxaprovado = false; } var pagination = new PagingInfoFotografias { CurrentPage = page, PageSize = PagingInfoFotografias.TAM_PAGINA, TotalItems = _context.Fotografia .Where(p => p.Aprovada == auxaprovado) .Count() }; if (direcaoordena == 1) { return(View( new ListaFotografias { Fotografias = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem) .Where(p => p.Aprovada == auxaprovado) .OrderBy(p => EF.Property <Object>(p, ordenacao)) .Skip((page - 1) * pagination.PageSize) .Take(pagination.PageSize), pagination = pagination, aprovacao = aprovacao, direcaoordena = direcaoordena, ordenacao = ordenacao } )); } else { return(View( new ListaFotografias { Fotografias = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem) .Where(p => p.Aprovada == auxaprovado) .OrderByDescending(p => EF.Property <Object>(p, ordenacao)) .Skip((page - 1) * pagination.PageSize) .Take(pagination.PageSize), pagination = pagination, aprovacao = aprovacao, direcaoordena = direcaoordena, ordenacao = ordenacao } )); } } /*var guardaCulturaContext = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem); * return View(await guardaCulturaContext.ToListAsync());*/ }
public async Task <IActionResult> Votar(int page = 1, int fotoId = 4, string classificacao = "") { int classFoto = 0; var pagination = new PagingInfoFotografias { CurrentPage = page, PageSize = PagingInfoFotografias.TAM_PAGINA, TotalItems = _context.Fotografia .Where(p => p.MiradouroId == fotoId).Count() }; try { classFoto = Int32.Parse(classificacao); } catch { ModelState.AddModelError("Longitude_DD", "As coordenadas não são validas, insira apenas valores numericos!"); return(View("Galeria", new ListaFotografias { Fotografias = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem) .OrderByDescending(p => p.Classificacao) .Where(p => p.MiradouroId == fotoId) .Where(p => p.Aprovada) .Skip((page - 1) * pagination.PageSize) .Take(pagination.PageSize), pagination = pagination } )); } Fotografia foto = await _context.Fotografia.FindAsync(fotoId); float classFotoAntiga = foto.Classificacao; int nVotos = foto.N_Votos; float novaclassificacao = 0; int miradouro_id = foto.MiradouroId; novaclassificacao = (classFotoAntiga * nVotos + classFoto) / (nVotos + 1); foto.Classificacao = novaclassificacao; foto.N_Votos = nVotos + 1; _context.Update(foto); await _context.SaveChangesAsync(); return(View("Galeria", new ListaFotografias { Fotografias = _context.Fotografia.Include(f => f.EstacaoAno).Include(f => f.Miradouro).Include(f => f.Pessoa).Include(f => f.TipoImagem) .OrderByDescending(p => p.Classificacao) .Where(p => p.MiradouroId == miradouro_id) .Where(p => p.Aprovada) .Skip((page - 1) * pagination.PageSize) .Take(pagination.PageSize), pagination = pagination } )); }