public ActionResult Index(Guid key, Guid?assessmentKey = null) { var issuer = WebConfigurationManager.AppSettings["WsFederationIssuer"]; var realm = WebConfigurationManager.AppSettings["WsFederationRealm"]; var baseAddress = WebConfigurationManager.AppSettings["IdentityServerExternalSignInUrl"]; //var passiveRedirectEnabled = WebConfigurationManager.AppSettings["WsFederationPassiveRedirectEnabled"]; //var requireHttps = WebConfigurationManager.AppSettings["WsFederationRequireHttps"]; var ehrId = WebConfigurationManager.AppSettings["EHRId"]; var now = DateTime.UtcNow; // "/IdsrvDev/issue/wsfed?wa=wsignin1.0&wtrealm=https://localhost:44302/&wctx=rm=0&id=passive&ru=/Patient/Index/73FD9AF1-6341-4533-A772-A1BF00E5678E&wct=2013-05-19T02:28:00Z" //var returnUrl =@"/IdsrvDev/issue/wsfed?wa=wsignin1.0&wtrealm=https%3a%2f%2flocalhost%3a44302%2f&wctx=rm%3d0%26id%3dpassive%26ru%3d%252fPatient%252fIndex%252f73FD9AF1-6341-4533-A772-A1BF00E5678E&wct=2013-05-19T02%3a28%3a00Z"; var returnUrl = CertSignService.BuildReturnUrl(issuer, realm, "/Patient/Index/", key.ToString(), now); var testString = string.Format("PatientId={0}&EhrId={1}&ReturnUrl={2}&UserId={3}&UserName={4}&UserEmail={5}&Timestamp={6}&AssessmentId={7}", key, ehrId, returnUrl, "Leo.Smith", "Leo Smith", "*****@*****.**", now.ToString(CultureInfo.InvariantCulture), (assessmentKey.HasValue ? assessmentKey.ToString() : string.Empty)); var signature = CertSignService.SignCertificate(testString, ehrId + "Cert"); // Note: by convention, signing certificate name is the EHRId+"Cert" var model = new RequestModel { Url = baseAddress, EhrId = ehrId, ReturnUrl = returnUrl, PatientId = key, AssessmentId = assessmentKey, UserId = "Leo.Smith", UserName = "******", UserEmail = "*****@*****.**", Timestamp = now.ToString(CultureInfo.InvariantCulture), Token = Convert.ToBase64String(signature) }; return(View(model)); }
public async Task <ActionResult> CreateAssessment(string id) { var httpRequest = new HttpClient(); httpRequest.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); var authHeaderString = "UserId=123&UserName=Fred Jones&[email protected]&PatientId=" + id; var signature = CertSignService.SignCertificate(authHeaderString); authHeaderString += "&Token=" + Convert.ToBase64String(signature); httpRequest.DefaultRequestHeaders.Add("SSOAuth", authHeaderString); var response = await httpRequest.PostAsync(BaseUri + "api/Assessment/Post/" + id, new StringContent ( "" )); if (response.StatusCode == HttpStatusCode.OK) { var key = (await response.Content.ReadAsAsync <KeyResult> ()).Key; var patient = _createdPatients.First(p => p.PatientKey == id); patient.AssessmentKeys.Add(key); return(RedirectToAction("Index")); } return(RedirectToAction("Index", new { errorMessage = "Error Creating Assessment." })); }
public async Task <ActionResult> GetAssessmentData(string assessmentId) { var httpRequest = new HttpClient(); httpRequest.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); var id = _createdPatients.First(p => p.AssessmentKeys.Any(a => a == assessmentId)).PatientKey; var authHeaderString = "UserId=123&UserName=Fred Jones&[email protected]&PatientId=" + id; var signature = CertSignService.SignCertificate(authHeaderString); authHeaderString += "&Token=" + Convert.ToBase64String(signature); httpRequest.DefaultRequestHeaders.Add("SSOAuth", authHeaderString); var response = await httpRequest.GetAsync(BaseUri + "api/Assessment/" + assessmentId); if (response.StatusCode == HttpStatusCode.OK) { var assessment = await response.Content.ReadAsStringAsync(); return(View("Index", new HomeViewModel { Patients = _createdPatients, ErrorMessage = null, AssessmentData = assessment, BaseUri = BaseUri })); } return(RedirectToAction("Index", new { errorMessage = "Error Getting Assessment Data." })); }
// // GET: /Patient/ public ActionResult Index(string id, string assessmentId = null) { var timestamp = DateTime.Now.ToString(); var testString = "PatientId=" + id + "&UserId=123&UserName=Fred Jones&[email protected]&Timestamp=" + timestamp + "&AssessmentId=" + assessmentId ?? string.Empty; var signature = CertSignService.SignCertificate(testString); var model = new RequestModel { Url = HomeController.BaseUri + "SingleSignOn/", PatientId = id, AssessmentId = assessmentId, UserId = "123", UserName = "******", UserEmail = "*****@*****.**", Timestamp = timestamp, Token = Convert.ToBase64String(signature) }; return(View(model)); }
public async Task <ActionResult> CreatePatient(string firstName, string lastName, string dateOfBirth, string gender) { var httpRequest = new HttpClient(); httpRequest.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); var authHeaderString = "UserId=123&UserName=Fred Jones&[email protected]"; var signature = CertSignService.SignCertificate(authHeaderString); authHeaderString += "&Token=" + Convert.ToBase64String(signature); httpRequest.DefaultRequestHeaders.Add("SSOAuth", authHeaderString); //TODO: Pilot Only lastName = firstName = "X"; dateOfBirth = "1/1/2001"; gender = "Female"; var response = await httpRequest.PostAsJsonAsync(BaseUri + "api/Patient/", new PatientDto { Name = new PersonName(firstName, lastName), DateOfBirth = DateTime.Parse(dateOfBirth), Gender = new LookupDto { Code = gender } }); if (response.StatusCode == HttpStatusCode.OK) { var key = (await response.Content.ReadAsAsync <KeyResult> ()).Key; _createdPatients.Add(new PatientViewModel { PatientKey = key, PatientName = firstName + " " + lastName }); return(RedirectToAction("Index")); } return(RedirectToAction("Index", new { errorMessage = "Error Creating Patient." })); }