private async Task DeleteQrCode(ScanQrCodeDto scanQrCodeDto) { QrCode qrCode = await _context.QrCode.FindAsync(scanQrCodeDto.QrCode); _context.QrCode.Remove(qrCode); await _context.SaveChangesAsync(); }
private async Task UpdateToPositive(ScanQrCodeDto scanQrCodeDto) { Citizen citizen = (from Citizen c in _context.Citizens where c.CitizenID == scanQrCodeDto.citizen select c).SingleOrDefault(); citizen.Is_Positive = true; citizen.Is_Exposed = false; await _context.SaveChangesAsync(); }
private async Task InsertCitizenQrCode(ScanQrCodeDto scanQrCodeDto) { CitizenQrCode citizen = new CitizenQrCode { QrCodeId = scanQrCodeDto.QrCode, Timestamp = DateTime.Now, CitizenId = scanQrCodeDto.citizen, }; _context.CitizenQrCode.Add(citizen); await _context.SaveChangesAsync(); }
public async Task ScanQrCode(ScanQrCodeDto scanQrCodeDto) { await using var transaction = await _context.Database.BeginTransactionAsync(); try { System.Diagnostics.Debug.WriteLine("Scan Qr Code"); QrCode qrCode = await _context.QrCode.Include(qr => qr.Participant).FirstOrDefaultAsync(x => x.QrCodeID == (scanQrCodeDto.QrCode)); ParticipantType participantType = qrCode.Participant.Participant_Type; switch (participantType) { case ParticipantType.Doctor: System.Diagnostics.Debug.WriteLine("Qr Code du doctor scanné"); await DeleteQrCode(scanQrCodeDto); await UpdateToPositive(scanQrCodeDto); await ToNotify(scanQrCodeDto.citizen); break; case ParticipantType.Establishment: System.Diagnostics.Debug.WriteLine("Qr Code de l'etablisement scanné"); await InsertCitizenQrCode(scanQrCodeDto); break; default: break; } await _context.SaveChangesAsync(); await transaction.CommitAsync(); } catch (Exception exc) { await transaction.RollbackAsync(); throw new Exception(exc.Message); } }
public async Task <ActionResult <ScanQrCodeDto> > scanQrCode(ScanQrCodeDto scanQrCodeDto) { if (_qrCodesRepository.QrCodeExists(scanQrCodeDto.QrCode) == false) { return(BadRequest(new { message = "qrCode doesn't exist" })); } if (_qrCodesRepository.CitizenExists(scanQrCodeDto.citizen) == false) { return(BadRequest(new { message = "Citizen doesn't exist" })); } try { await _qrCodesRepository.ScanQrCode(scanQrCodeDto); } catch (DbException exc) { return(BadRequest(new { message = "erreur lors du scan " + exc.Message })); } return(scanQrCodeDto); }