diff --git a/api/.DS_Store b/api/.DS_Store index bbac15d7..ea3bf5f5 100755 Binary files a/api/.DS_Store and b/api/.DS_Store differ diff --git a/api/Controllers/CromosController.cs b/api/Controllers/CromosController.cs index 5218b6d0..c40b4881 100755 --- a/api/Controllers/CromosController.cs +++ b/api/Controllers/CromosController.cs @@ -18,21 +18,25 @@ namespace api.Controllers [Route("api/[controller]")] [ApiController] public class CromosController : ControllerBase - { + { private readonly IUsersRepository _repo; private readonly DataContext context; private readonly IMapper _mapper; - public CromosController(DataContext context, IMapper mapper) + public CromosController(IUsersRepository repo,DataContext context, IMapper mapper) { this.context = context; _mapper = mapper; + _repo = repo; } // GET api/cromos/QR // GET cromos do user QR + [HttpGet("{QR}")] + public async Task GetCromos(string QR) { int soma = 0; + int somaCTF=0; var usr = await context.Users.FirstOrDefaultAsync(u => u.QRcode == QR); string[] usrCromos = usr.cromos.Substring(1).Split(","); Console.WriteLine(usrCromos[0]); @@ -58,6 +62,9 @@ namespace api.Controllers continue; else { + if(c.Id == 4 || c.Id==5 || c.Id==6 || c.Id==7 || c.Id==8 || c.Id==9 || c.Id==10 || c.Id==11 || c.Id==12 || c.Id==13 || c.Id==14 || c.Id==16){ + somaCTF += c.pontos; + } soma += c.pontos; rList.Add(toAdd); found = true; @@ -80,6 +87,17 @@ namespace api.Controllers cromosToReturn a = new cromosToReturn(); a.cromos = rList; a.pontuacao = soma; + + + var userFromRepo = await _repo.GetUser(usr.Id); + + userFromRepo.food = somaCTF; + userFromRepo.drinks = soma; + + + if (await _repo.SaveAll()){} + + return Ok(a); } diff --git a/api/Controllers/UsersController.cs b/api/Controllers/UsersController.cs index e410bd36..c59aed6f 100755 --- a/api/Controllers/UsersController.cs +++ b/api/Controllers/UsersController.cs @@ -77,6 +77,8 @@ namespace api.Controllers [Authorize(Policy = "RequireAdminRole")] [HttpGet] + + //[AllowAnonymous] public async Task GetUsers() { var users = await _repo.GetUsers(); diff --git a/api/Controllers/mvcController.cs b/api/Controllers/mvcController.cs index 80fe8465..d6da8505 100755 --- a/api/Controllers/mvcController.cs +++ b/api/Controllers/mvcController.cs @@ -8,6 +8,8 @@ using api.Dtos; using Microsoft.AspNetCore.Identity; using api.Models; using System.Net.Http; +using AutoMapper; +using System.Collections.Generic; namespace api.Controllers { @@ -15,13 +17,17 @@ namespace api.Controllers [Route("/")] public class mvcController : Controller { + + private readonly IUsersRepository _repo; private readonly DataContext _context; private readonly UserManager _userManager; - - public mvcController(DataContext context, UserManager userManager) + private readonly IMapper _mapper; + public mvcController(IUsersRepository repo, DataContext context, IMapper mapper, UserManager userManager) { + _mapper = mapper; _context = context; _userManager = userManager; + _repo = repo; } [HttpGet("/cp-ia")] [AllowAnonymous] @@ -67,6 +73,28 @@ namespace api.Controllers return View("Views/Landing/jogo.cshtml"); } + [AllowAnonymous] + [HttpGet("/ctf/top")] + public async Task getTop() + { + //para cada user calcular pontos, fazer update e devolver top 5 + + + // var users = await _repo.GetUsers(); + + // var usersToReturn = _mapper.Map>(users); + + var users = _context.Users.Select(user => new {Nome = user.fullName, Pontos = user.food }).OrderByDescending(x => x.Pontos).Take(10);; + + + + //food = soma ctf + + //drinks = soma geral + + return Ok(users); + } + [HttpGet("/level1ctf")] [AllowAnonymous] public IActionResult level1() diff --git a/api/Views/Landing/ctf.cshtml b/api/Views/Landing/ctf.cshtml index 46f81e37..28e85c45 100644 --- a/api/Views/Landing/ctf.cshtml +++ b/api/Views/Landing/ctf.cshtml @@ -61,8 +61,8 @@

Melhores classificados CTF

-

Revelados em breve

- + +

Estas pontuações refletem o somatório das pontuações dos níveis cumpridos.

@@ -327,9 +327,80 @@
+ + + + diff --git a/api/wwwroot/.DS_Store b/api/wwwroot/.DS_Store index 8c6ceff2..4ba4fa85 100755 Binary files a/api/wwwroot/.DS_Store and b/api/wwwroot/.DS_Store differ diff --git a/api/wwwroot/imgs/.DS_Store b/api/wwwroot/imgs/.DS_Store index ae335c51..be120bcd 100644 Binary files a/api/wwwroot/imgs/.DS_Store and b/api/wwwroot/imgs/.DS_Store differ diff --git a/api/wwwroot/imgs/ctf/11.png b/api/wwwroot/imgs/ctf/11.png new file mode 100644 index 00000000..a3de3c75 Binary files /dev/null and b/api/wwwroot/imgs/ctf/11.png differ