public async Task <ActionResult <object> > PostRedeemIcc(ConfirmLabConfirmationIdModel confirmLabConfirmationIdModel) { // Make Icc Used, so it can only be used once var infectionConfirmationCodeEntity = await _IccService.RedeemIcc(User.Identity.Name); _DbContext.SaveAndCommit(); // POST /labresult call on App Backend bool isValid = false; try { isValid = await _AppBackendService.LabConfirmationIdIsValid(confirmLabConfirmationIdModel); } catch (Exception e) { Console.WriteLine(e); throw; } if (isValid) { return(new JsonResult(new { ok = true, status = 200 })); } return(BadRequest(new { ok = false, status = "400", message = "Invalid LabConfirmationId", payload = confirmLabConfirmationIdModel })); }
public async Task <bool> LabConfirmationIdIsValid(ConfirmLabConfirmationIdModel confirmLabConfirmationIdModel) { var backendResponse = await BackendPostRequest("/v1/labConfirm", new AuthorisationArgs(confirmLabConfirmationIdModel)); if (backendResponse == null) { return(false); } var backendResponseJson = _JsonSerializer.Deserialize <Dictionary <string, bool> >(backendResponse); return(backendResponseJson != null && backendResponseJson["valid"]); }
public AuthorisationArgs(ConfirmLabConfirmationIdModel confirmLabConfirmationIdModel) { LabConfirmationId = confirmLabConfirmationIdModel.LabConfirmationId?.Replace("-", string.Empty); DateOfSymptomsOnset = confirmLabConfirmationIdModel.DateOfSymptomsOnset; }