public async Task <ActionResult <Person> > Validate(ValidatePersonModel aValidatePersonModel) { Person aPerson = await _personRepository.GetPerson(ObjectId.Parse(aValidatePersonModel.Passnummer)); if (aPerson != null && aPerson.Geburtstag.Date.Equals(aValidatePersonModel.Geburtsdatum.Date)) { return(Ok(aPerson)); } return(BadRequest()); }
public async Task <IActionResult> DecodeQrCode(IFormFile qrCodeInput, string returnUrl) { if (!qrCodeInput.IsImage()) { return(await QrCodeError(returnUrl)); } var vm = new ValidatePersonModel() { ReturnUrl = returnUrl }; using (var bitmap = new System.Drawing.Bitmap(qrCodeInput.OpenReadStream())) { var image = BitmapResizer.Resize(bitmap, 600, 800); var reader = new ZXing.ImageSharp.BarcodeReader <Rgba32> { Options = { PossibleFormats = new List <BarcodeFormat> { BarcodeFormat.QR_CODE } } }; var result = reader.Decode(image); if (result == null) { _logger.LogError("QR Code is invalid"); return(await QrCodeError(returnUrl)); } var user = _userManager.FindByCodeAsync(result.Text); if (user == null) { _logger.LogError("No user found for QR Code"); return(await QrCodeError(returnUrl)); } vm.User = user; } return(View("ValidatePerson", vm)); }