ENEI2019-Public/api/Controllers/ScanController.cs

69 lines
2.0 KiB
C#
Raw Normal View History

2019-03-14 18:10:59 +00:00
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)
{
2019-03-16 16:32:37 +00:00
User usr = await context.Users.FirstOrDefaultAsync(b=>b.QRcode == ScanData.UserQR);
2019-03-14 18:10:59 +00:00
var allUsers = await context.Users.ToListAsync();
var allCromos = await context.Cromos.ToListAsync();
var userAProcurar = await context.Users.FirstOrDefaultAsync(c=>c.QRcode == ScanData.ScanQR);
2019-03-16 16:32:37 +00:00
ScanReturn toReturn = new ScanReturn{tipo = -1};
2019-03-14 18:10:59 +00:00
if(userAProcurar != null){
2019-03-16 19:17:19 +00:00
UserForListDto ru = new UserForListDto();
_mapper.Map(userAProcurar,ru);
toReturn.user = ru;
2019-03-14 18:10:59 +00:00
toReturn.tipo=1;
return toReturn;
}else{
allCromos.ForEach(delegate(Cromos c){
if(c.QRCode == ScanData.ScanQR){
toReturn.tipo=0;
2019-03-16 16:32:37 +00:00
usr.cromos = usr.cromos + "," + c.Id;
2019-03-14 18:10:59 +00:00
context.Users.Update(usr);
context.SaveChanges();
toReturn.resp = "Cromo Adicionado!";
}
});
return toReturn;
}
2019-03-16 19:17:19 +00:00
//return toReturn;
2019-03-14 18:10:59 +00:00
}
}
}