Esempio n. 1
0
        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 }));
        }
Esempio n. 2
0
        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;
 }