/// <inheritdoc />
        public override async Task Export(long studyId, Func <TextWriter> createOutput)
        {
            var agencyInfo = await ApiClient.GetAgencyIdentifiersAndFieldNamesMetadataAsync(AgencyName);

            Logger.LogInformation("Writing fields {@fields}", agencyInfo.Agency.Fields);
            var subjects = await ApiClient.GetConsentedSubjectsForStudyAsync(studyId);

            var details = await Task.WhenAll(
                subjects.Select(
                    GetDetailsForPerson));

            new AgencySubjectWriter(createOutput)
            .Write(
                agencyInfo.Identifiers,
                FieldNameList.Split(agencyInfo.Agency.Fields),
                details.Select(_ => new AgencyPersonDtoWrapper(_)));
        }
Example #2
0
 public FieldsCsvExporter(IApi apiClient, string[] fieldNames)
 {
     this.fieldNames = FieldNameList.Split(fieldNames);
     ApiClient       = apiClient;
 }