private async Task <FormSubmission <T> > GetFormSubmission <T>(FormSubmissionRetrievalConfiguration formRetrievalData) { if (formRetrievalData == null || formRetrievalData.s3 == null || formRetrievalData.credentials == null) { throw new Exception("Could not create credentials to retrieve form submission data"); } RegionEndpoint regionEndpoint = RegionEndpoint.GetBySystemName(formRetrievalData.s3.region); SessionAWSCredentials sessionAWSCredentials = new SessionAWSCredentials( formRetrievalData.credentials.AccessKeyId, formRetrievalData.credentials.SecretAccessKey, formRetrievalData.credentials.SessionToken ); AmazonS3Client amazonS3Client = new AmazonS3Client(sessionAWSCredentials, regionEndpoint); string responseBody = ""; using (GetObjectResponse response = await amazonS3Client.GetObjectAsync(formRetrievalData.s3.bucket, formRetrievalData.s3.key, null)) using (Stream responseStream = response.ResponseStream) using (StreamReader reader = new StreamReader(responseStream)) { responseBody = reader.ReadToEnd(); } return(JsonConvert.DeserializeObject <FormSubmission <T> >(responseBody)); }
public async Task <FormSubmission <T> > GetFormSubmission <T>(long formId, string submissionId, bool isDraft) { if (String.IsNullOrWhiteSpace(submissionId)) { throw new ArgumentException("submissionId must be provided with a value"); } string url = "/forms/" + formId + "/retrieval-credentials/" + submissionId; if (isDraft) { url = "/forms/" + formId + "/download-draft-data-credentials/" + submissionId; } FormSubmissionRetrievalConfiguration formRetrievalData = await this.oneBlinkApiClient.PostRequest <FormSubmissionRetrievalConfiguration>(url); return(await GetFormSubmission <T>(formRetrievalData)); }