parent
3bedefafb7
commit
89d8bb5585
8 changed files with 165 additions and 9 deletions
@ -0,0 +1,55 @@ |
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Linq; |
||||
using System.Threading.Tasks; |
||||
using api.Data; |
||||
using api.Dtos; |
||||
using api.Models; |
||||
using AutoMapper; |
||||
using Microsoft.AspNetCore.Authorization; |
||||
using Microsoft.AspNetCore.Identity; |
||||
using Microsoft.AspNetCore.Mvc; |
||||
using Microsoft.EntityFrameworkCore; |
||||
|
||||
namespace api.Controllers |
||||
{ |
||||
|
||||
[Authorize] |
||||
[Route("api/[controller]")]
|
||||
[ApiController] |
||||
public class CromosController : ControllerBase |
||||
{ |
||||
private readonly DataContext context; |
||||
private readonly IMapper _mapper; |
||||
public CromosController(DataContext context, IMapper mapper) |
||||
{ |
||||
this.context = context; |
||||
_mapper = mapper; |
||||
} |
||||
|
||||
// GET api/cromos/QR |
||||
// GET cromos do user QR |
||||
[HttpGet] |
||||
public async Task<List<Cromos>> GetCromos(string QR) |
||||
{ |
||||
var usr = await context.Users.Include(a=>a.cromos).FirstOrDefaultAsync(u=>u.QRcode == QR); |
||||
var allCromos = await context.Cromos.ToListAsync(); |
||||
|
||||
List<Cromos> rList = new List<Cromos>(); |
||||
|
||||
allCromos.ForEach(delegate(Cromos c){ |
||||
usr.cromos.ForEach(delegate(int cid){ |
||||
if(c.Id == cid){ //user tem o cromo |
||||
Cromos toAdd = new Cromos{Id = c.Id,Nome=c.Nome,DescMostrar=c.DescUnlocked,QRCode=c.QRCode,img=c.img}; |
||||
rList.Add(toAdd); |
||||
}else{ //user NAO tem o cromo |
||||
Cromos toAdd = new Cromos{Id = c.Id,Nome=c.Nome,DescMostrar=c.DescLocked,QRCode=c.QRCode,img=c.img}; |
||||
rList.Add(toAdd); |
||||
} |
||||
}); |
||||
}); |
||||
return rList; |
||||
} |
||||
|
||||
} |
||||
} |
@ -0,0 +1,68 @@ |
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Linq; |
||||
using System.Threading.Tasks; |
||||
using api.Data; |
||||
using api.Dtos; |
||||
using api.Models; |
||||
using AutoMapper; |
||||
using Microsoft.AspNetCore.Authorization; |
||||
using Microsoft.AspNetCore.Identity; |
||||
using Microsoft.AspNetCore.Mvc; |
||||
using Microsoft.EntityFrameworkCore; |
||||
|
||||
namespace api.Controllers |
||||
{ |
||||
|
||||
[Authorize] |
||||
[Route("api/[controller]")]
|
||||
[ApiController] |
||||
public class ScanController : ControllerBase |
||||
{ |
||||
private readonly DataContext context; |
||||
private readonly IMapper _mapper; |
||||
public ScanController(DataContext context, IMapper mapper) |
||||
{ |
||||
this.context = context; |
||||
_mapper = mapper; |
||||
} |
||||
|
||||
// PSOT api/scan |
||||
// POST scan de QR code |
||||
[HttpPost] |
||||
public async Task<ScanReturn> doScan(QRToScan ScanData) |
||||
{ |
||||
User usr = await context.Users.Include(a=>a.cromos).FirstOrDefaultAsync(b=>b.QRcode == ScanData.UserQR); |
||||
var allUsers = await context.Users.ToListAsync(); |
||||
var allCromos = await context.Cromos.ToListAsync(); |
||||
|
||||
var userAProcurar = await context.Users.FirstOrDefaultAsync(c=>c.QRcode == ScanData.ScanQR); |
||||
|
||||
ScanReturn toReturn = new ScanReturn(); |
||||
|
||||
if(userAProcurar != null){ |
||||
_mapper.Map(toReturn.user,userAProcurar); |
||||
toReturn.tipo=1; |
||||
return toReturn; |
||||
}else{ |
||||
allCromos.ForEach(delegate(Cromos c){ |
||||
if(c.QRCode == ScanData.ScanQR){ |
||||
toReturn.tipo=0; |
||||
usr.cromos.Add(c.Id); |
||||
context.Users.Update(usr); |
||||
context.SaveChanges(); |
||||
|
||||
toReturn.resp = "Cromo Adicionado!"; |
||||
} |
||||
}); |
||||
|
||||
return toReturn; |
||||
} |
||||
|
||||
toReturn.tipo = -1; |
||||
|
||||
return toReturn; |
||||
} |
||||
|
||||
} |
||||
} |
@ -0,0 +1,16 @@ |
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.ComponentModel.DataAnnotations; |
||||
using api.Models; |
||||
|
||||
namespace api.Dtos |
||||
{ |
||||
public class QRToScan |
||||
{ |
||||
[Required] |
||||
public string UserQR{get;set;} //QR do User que ler |
||||
|
||||
[Required] |
||||
public string ScanQR{get;set;} //QR a analisar |
||||
} |
||||
} |
@ -0,0 +1,16 @@ |
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.ComponentModel.DataAnnotations; |
||||
using api.Models; |
||||
|
||||
namespace api.Dtos |
||||
{ |
||||
public class ScanReturn |
||||
{ |
||||
public int tipo{get;set;} //tipo de retorno, 0 = cromo // 1 = user |
||||
|
||||
public UserForListDto user{get;set;} //user |
||||
|
||||
public string resp{get;set;} //reposta |
||||
} |
||||
} |
Loading…
Reference in new issue